======sudo======
**sudo** est un utilitaire qui permet d'exécuter une commande sous un autre utilisateur de la machine.
Installation :
aptitude install sudo
Par défaut, sous Debian, on a ce genre de configuration :
cat /etc/sudoers
[..]
# Allow members of group sudo to execute any command
%sudo ALL=(ALL:ALL) ALL
... qui permet à tout utilisateur membre du groupe sudo de lancer des commandes en tant que root (en re-saisissant son mot de passe) ainsi : ''sudo ''.
Attention : il faut toujours utiliser la commande **visudo** pour éditer la configuration de sudo, sous peine de bloquer le système en cas d'erreur de syntaxe !
Exemple de configuration :
vi /etc/sudoers/apache
# permettre a l'utilisateur apache de lancer s1 et s2 en tant que admin,
# à partir de n'importe quelle machine (ALL) et sans saisir de mot de passe
Cmnd_Alias HTTP_SCRIPTS = /scripts/s1.sh, /scripts/s2.sh
apache ALL=(admin)NOPASSWD: HTTP_SCRIPTS
Les différentes options / cas d'utilisation :
# lancer une commande en tant que admin
sudo -u admin
# lancer une commande en tant que root
sudo
# se connecter (obtenir un shell) en tant que root
sudo -i
# afficher les droits sudo de l'utilisateur apache
sudo -l -U apache
======Tips======
=====Lancer plusieurs commandes=====
Pour lancer plusieurs commandes avec un seul ''sudo'' :
sudo -s -- 'whoami; whoami'
root
root
# La précédente option "-s" ne fonctionne pas toujours ;
# en alternative, lancer un shell qui exécute les commandes :
sudo -- sh -c 'whoami; whoami'
root
root
=====Demander le mot de passe root=====
Par défaut un utilisateur doit saisir son propre mot de passe pour lancer une commande comme root (à condition qu'il en ait le droit !) ; pour lui demander de saisir le mot de passe root il faut ajouter la ligne de configuration suivante (avec ''visudo'') :
Defaults:toto rootpw
toto ALL=(ALL:ALL) ALL
:x
# ->
toto@srv $ sudo -i
[sudo] password for root:
root@srv #