Elevation de Privilege - Unix

Sudo permet de lancer des commandes en tant qu'un autre utilisateur.

Pour connaitre les droits sudo de votre compte, il faut lancer la commande sudo -l. Il est parfois demandé de saisir votre mot de passe.

sudo -l
L'utilisateur user1 peut utiliser les commandes suivantes sur target-host :
    (ALL) NOPASSWD: /usr/bin/find
    user2 NOPASSWD: /usr/bin/python3 /home/user2/run.py

La première ligne est: (ALL) NOPASSWD: /usr/bin/find
Il est possible de lancer la commande /usr/bin/find en tant que n'importe quel utilisateur du serveur, en particulier root.

sudo /usr/bin/find  

user2 NOPASSWD: /usr/bin/python3 /home/user2/run.py Il est ici possible de lancer la commande '/usr/bin/python3 /home/user2/run.py' en tant que user2.
Pour celà on utilise la commande 'sudo' avec le flag '-u user2'

sudo -u user2 /usr/bin/python3  /home/user2/run.py 

Si l'option NOPASSWD est définie, vous n'avez pas à saisir de mots de passe. Sinon, la commande sudo demande le mot de passe du compte courant. Si vous être entré par un webshell, ou une connection ssh avec clef privée, il faudra se débrouiller pour connaitre le mot de passe.