La principale différence entre ces commandes réside dans la manière dont elles restreignent l’accès à leurs fonctions.
su
(qui signifie "utilisateur remplaçant" ou "utilisateur de commutateur") - fait exactement cela, il démarre une autre instance de shell avec les privilèges de l'utilisateur cible. Pour vous assurer que vous avez le droit de le faire, il vous demande le mot de passe de l'utilisateur cible . Donc, pour devenir root, vous devez connaître le mot de passe root. Si plusieurs utilisateurs de votre ordinateur doivent exécuter des commandes en tant que root, ils doivent tous connaître le mot de passe root. Notez que ce mot de passe sera identique. Si vous devez révoquer les autorisations d'administrateur de l'un des utilisateurs, vous devez changer le mot de passe root et ne le communiquer qu'aux personnes qui ont besoin de garder l'accès - désordonné.
sudo
(hmm ... qu'est-ce que le mnémonique? Super-User-DO?) est complètement différent. Il utilise un fichier de configuration (/ etc / sudoers) qui répertorie les utilisateurs ayant des droits sur des actions spécifiques (commandes exécutables en tant que root, etc.). Invoqué, il demande le mot de passe de l'utilisateur qui l'a lancé - pour s'assurer que la personne au terminal est vraiment le même "Joe" qui est répertorié dans /etc/sudoers
. Pour révoquer les privilèges d'administrateur d'une personne, il vous suffit de modifier le fichier de configuration (ou de supprimer l'utilisateur d'un groupe répertorié dans cette configuration). Cela se traduit par une gestion beaucoup plus propre des privilèges.
En conséquence, dans de nombreux systèmes basés sur Debian, root
user n'a pas de mot de passe défini - c'est-à-dire qu'il n'est pas possible de se connecter directement en tant que root.
De plus, /etc/sudoers
permet de spécifier des options supplémentaires - c’est-à-dire que l’utilisateur X ne peut exécuter que le programme Y, etc.
La combinaison sudo su
souvent utilisée fonctionne comme suit: first sudo
vous demande votre mot de passe et, si vous êtes autorisé à le faire, appelle la commande suivante ( su
) en tant que superutilisateur. Comme su
est appelé par root
, vous n'avez pas besoin d'entrer le mot de passe de l'utilisateur cible. Ainsi, sudo su
vous permet d'ouvrir un shell en tant qu'autre utilisateur (y compris root), si vous êtes autorisé à accéder en super-utilisateur par le fichier /etc/sudoers
.