Petite introduction rapide et minimaliste à « sudo » pour pouvoir faire les apt-get update/upgrade du matin depuis un compte standard (non-root), sans faire un « su » à chaque fois. Il s’agit à travers cet exemple de montrer le B-A.BA de « sudo ».
D’abord, l’installer :
apt-get install sudo
Ensuite, il faut paramétrer le fichier « /etc/sudoers
» (sudoers <=> ceux qui peuvent faire du sudo).
Afin de garantir le bon état de ce fichier, il est recommandé/obligatoire d’utiliser la commande « visudo » (appelée depuis n’importe où et sans argument), commande qui pose un verrou sur le fichier.
Voici un exemple commenté permettant d’autoriser un groupe d’utilisateurs non-root à faire notamment un « apt-get xxx
» sans avoir à être root (disons, à connaître son mot de passe et/ou devoir se logger root).
Attention, une étourderie dans ce fichier et c’est la porte ouverte au n’importe quoi.
# /etc/sudoers # # This file MUST be edited with the 'visudo' command as root. # ^^^^ puisque je vous le disais ! # See the man page for details on how to write a sudoers file. # User_Alias ADMINS = mon_compte, manu, larcenet # On crée un groupe ADMINS qui contient quelques utilisateurs qui auront des autorisation particulières Host_Alias LOC = localhost, 127.0.0.1, mon_hostname, un_alias # On crée un groupe de machines depuis lesquelles on autorisera le lancement de telle ou telle commande Cmnd_Alias REBOOT_AND_CO = /sbin/halt, \ /sbin/shutdown, \ /sbin/reboot # On crée un premier groupe de commandes # Le \ sert à indiquer que le groupe continue sur la ligne suivante. La virgule marque la fin de la commande autorisée. Cmnd_Alias APTGET = /usr/bin/apt-get # Un autre groupe de commande Cmnd_Alias DIVERS = /usr/sbin/iftop # Encore un ADMINS LOC = NOPASSWD: APTGET # Les utilisateurs du groupe ADMINS peuvent lancer depuis les machines du groupe LOC les commandes du groupe APTGET sans avoir besoin de mot de passe. Voyez la doc pour tous les mots-clefs possibles. ADMINS LOC = NOPASSWD: DIVERS # User privilege specification root ALL=(ALL) ALL # Et le root peut tout faire depuis n'importe où
Il faut noter que lorsqu’on déclare une commande, exemple APT-GET = /usr/bin/apt-get
, ça sous-entend « tout ce qui commence textuellement par apt-get
. Vous pourriez restreindre par exemple avec ça :
Cmnd_Alias APTGET_RESTREINT = /usr/bin/apt-get install
Pigé ? Bon, ben yapuka.