====== sudo ====== Lien: *http://lea-linux.org/cached/index/Admin-admin_env-sudo.html ===== finalité ===== Permettre a de simple **''user''**, d'executer des taches en tant que **''root''**. Comme il est dit [[http://www.lea-linux.org/cached/index/Dev-suid_scripts.html|là]] , le fait de fixer le "suid" d'un script, ne rend pas ce scripte executable pas tout le monde en tant que "root" ! (quel con!) ==== en pratique ==== Initialement, c'est parce que je veus autoriser l'utilisateur **"snmp"** (du daemon **"snmpd"**) a superviser des éléments de la machine, notamment le RAID. ===== installation ===== # aptitude update # aptitude install sudo On a un nouveau fichier ici: # ls /etc/sudoers -lart -r--r----- 1 root root 458 2008-08-26 16:49 /etc/sudoers Mais il faudra l'editer **exclusivement** avec la commande **''visudo''**. ===== config ===== Initialement, le fichier est comme ça: # cat /etc/sudoers # /etc/sudoers # # This file MUST be edited with the 'visudo' command as root. # # See the man page for details on how to write a sudoers file. # Defaults env_reset # Host alias specification # User alias specification # Cmnd alias specification # User privilege specification root ALL=(ALL) ALL Et c'est trés bien. On va autoriser le user "snmp" et moi-même, a démarrer un petit scripte qui retourne l'etat du RAID.\\ On tape **''visudo''** et on fait en sorte d'avoir un truc comme ca: # User alias specification User_Alias MONITOR=thierry,snmp # Cmnd alias specification Cmnd_Alias SCRIPTMON=/root/prod/snmpd/raidmon # User privilege specification root ALL=(ALL) ALL MONITOR ALL=NOPASSWD:SCRIPTMON Traduction:\\ les **"users"** appartenant au groupe **"MONITOR"** sont autorisés a utilisé les commandes déclarés dans **"SCRIPTMON"** .\\ Le **"NOPASSWD"** permet d'eviter une demande de mot de passe.\\ Le **"ALL="** autorise tous les hotes (reseaux)... mais comment sans connexion ? (passons) Le **"(ALL)"** , quand il existe, donne la liste des "run as user"... a défaut, c'est **"root"**. (voir la doc) On aurait pu faire: thierry ALL=NOPASSWD:/root/prod/snmpd/raidmon snmp ALL=NOPASSWD:/root/prod/snmpd/raidmon Mais c'est caca.\\ En déclarant des "groupes", on peut facilement ajouter/retirer des **"users"** (au groupe "MONITOR") et ajouter/retirer des commandes (au groupe "SCRIPTMON").