Contrairement à ce que leur utilisation la plus courante laisserait penser, su
et sudo
ne sont pas seulement destinés à se connecter (ou à effectuer des actions) en tant que root.
su
vous permet d'échanger votre identité avec celle de quelqu'un d'autre. Pour cette raison, lorsque vous tapez su
, le système doit vérifier que vous disposez des informations d'identification de l'utilisateur cible auquel vous essayez de vous connecter.
sudo
est un peu différent. Utilisation de sudo
vous permet d'exécuter certaines commandes (ou toutes, selon la configuration) comme quelqu'un d'autre. Votre propre identité est utilisée pour déterminer quels types de commandes sudo
fonctionnera pour vous sous l'identité de quelqu'un d'autre :si vous êtes un utilisateur de confiance (dans le sens où l'administrateur système vous fait confiance), vous aurez plus de liberté que, disons, un stagiaire. C'est pourquoi sudo
doit vérifier votre propre identité plutôt que celle de l'utilisateur cible.
En d'autres termes, essayer de su
à quelqu'un que vous n'êtes pas, c'est comme tenter de débiter vos achats sur une carte de crédit volée tout en utilisant sudo
c'est comme vendre la voiture de votre ami par procuration légale.
Quant à ce que vous essayiez de faire, juste sudo su root
, ou encore plus simplement sudo su
et tapez votre mot de passe utilisateur habituel. Cela reviendrait à peu près à remplacer les informations d'identification de la carte de crédit de votre ami par les vôtres en utilisant la procuration légale qu'il vous a donnée :). Il suppose bien sûr le sudo
la configuration vous permet d'exécuter su
avec des privilèges élevés.
En outre, les systèmes préconfigurés avec sudo
l'accès a généralement le compte root désactivé (pas de mot de passe root), vous pouvez l'activer en utilisant le passwd
commande après être devenu root via sudo su
.
Il est paramétrable* mais, par défaut, "sudo" vous demande votre mot de passe. Il essaie simplement de s'assurer que c'est vous, et non quelqu'un qui utilise votre clavier pendant que vous preniez un café.
En revanche, "su root" vous demande le mot de passe root.
*Si targetpw dans /etc/sudoers est faux (par défaut), "sudo" vous demande votre mot de passe. Si c'est vrai, alors "sudo" vous demande le mot de passe root ou, si vous avez spécifié un autre utilisateur avec l'option "-u", le mot de passe de cet utilisateur.
sudo
est utilisé pour élever temporairement les autorisations des utilisateurs au niveau racine, alors que su root
est utilisé pour créer un nouveau shell avec root comme utilisateur ;