La principale différence entre ces commandes réside dans la manière dont elles restreignent l'accès à leurs fonctions.
su
(ce qui signifie "utilisateur supplé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 sera le même mot de passe. Si vous devez révoquer les autorisations d'administrateur de l'un des utilisateurs, vous devez modifier le mot de passe root et le transmettre uniquement aux personnes qui doivent conserver l'accès - en désordre.
sudo
(hmm ... quel est le mnémonique? Super-User-DO?) est complètement différent. Il utilise un fichier de configuration (/ etc / sudoers) qui répertorie les utilisateurs autorisés à exécuter des actions spécifiques (commandes d'exécution en tant qu'utilisateur root, etc.). Lorsqu'il est appelé, il demande le mot de passe de l'utilisateur qui l'a lancé - pour garantir 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
aucun mot de passe n’est défini, c’est-à-dire qu’il est impossible de se connecter directement en tant que root.
De plus, /etc/sudoers
permet de spécifier des options supplémentaires - par exemple l' utilisateur X est seulement capable d'exécuter le programme Y , etc.
La sudo su
combinaison souvent utilisée fonctionne comme suit: sudo
vous demande d' abord votre mot de passe et, si vous y êtes autorisé, appelle la commande suivante ( su
) en tant que super-utilisateur. Comme il su
est appelé par root
, il ne vous est pas demandé de saisir le mot de passe de l'utilisateur cible. Donc, sudo su
vous permet d'ouvrir un shell en tant qu'autre utilisateur (y compris root), si vous êtes autorisé à accéder au superutilisateur par le /etc/sudoers
fichier.
su user
pour vous connecter à partir de shells non fiables, maissu - user
. Voir unix.stackexchange.com/q/7013/8250