Pourquoi le mot de passe 'sudo' est-il différent du mot de passe 'su root'

11

Sur ma machine personnelle, je tape souvent sudodevant certaines commandes afin d'accomplir des tâches administratives. J'avais espéré éviter de faire cela tout au long de la journée, en tapant su rootet en fournissant le même mot de passe que je fais habituellement sudo. Cependant, les deux mots de passe ne sont pas identiques (je ne sais pas comment me connecter su root). Exécute-t-il une commande avec sudoune connexion différente de la connexion avec su rootet exécute-t-elle la même commande?

Je pense sudoet je suis su rootle même, car lorsque je tape sudo whoami, j'obtiens root, par opposition à l' whoamiendroit où j'obtiens mon nom d'utilisateur.

Trevor Hickey
la source
Je suis tombé sur ce fil plus ancien, car il était lié à une question que j'avais posée. Les réponses sont très instructives mais laissent une question. Sur une machine personnelle (un utilisateur), comment obtenir un mot de passe différent pour root selon que vous utilisez sudo ou su root? N'y a-t-il pas un mot de passe root unique, défini lorsque Linux est installé?
fixer1234
@ fixer1234 Comme expliqué dans la réponse de John1024 , lorsque vous utilisez sudo, le système vous demande votre mot de passe pour vérifier votre identité, puis vérifie /etc/sudoerssi vous êtes autorisé à exécuter sudo. Lorsque vous utilisez su, le système vous demande de saisir le mot de passe de l'utilisateur vers lequel vous passez . (Je sais que c'est maintenant une très vieille question, mais je voulais ajouter une clarification pour le bénéfice des futurs téléspectateurs.)
anonymoose
@anonymoose, cette question concernait la machine personnelle de l'OP. En règle générale, lorsque vous installez Linux sur votre propre machine, vous savez si vous avez donné à root un mot de passe différent de celui de votre utilisateur normal. La question indique que l'OP a été surpris de découvrir que root avait un mot de passe différent.
fixer1234
1
@ fixer1234 L'OP n'a peut-être pas défini de mot de passe root pour commencer. Le programme d'installation d'Ubuntu ne demande pas de mot de passe root , et je suis sûr que d'autres distributions ne le font pas.
anonymoose

Réponses:

17

Contrairement à ce que leur utilisation la plus commune vous conduirait à penser, suet sudone sont pas seulement destiné à l' exploitation forestière (ou effectuer des actions) en tant que root.

suvous permet de 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 pour l'utilisateur cible que vous essayez de changer.

sudoest un peu différent. L'utilisation sudovous permet d'exécuter certaines commandes (ou toutes, selon la configuration) en tant que quelqu'un d'autre. Votre propre identité est utilisée pour déterminer quels types de commandes sudos'exécuteront 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 interne. C'est pourquoi sudodoit vérifier votre propre identité plutôt que celle de l'utilisateur cible.

En d'autres termes, essayer de suconvaincre quelqu'un que vous n'êtes pas, c'est comme tenter de facturer vos achats sur une carte de crédit volée pendant l'utilisation, sudoc'est comme vendre la voiture de votre ami par procuration.

Quant à ce que vous essayez de faire, simplement sudo su root, ou encore plus simplement sudo su, saisissez 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 le proxy légal qu'il vous a donné :). Il suppose bien sûr que la sudoconfiguration vous permet d'exécuter suavec des privilèges élevés.

En outre, les systèmes qui sont préconfigurés avec sudoaccès ont généralement le compte root désactivé (pas de mot de passe root), vous pouvez l'activer en utilisant la passwdcommande après être devenu root via sudo su.

Joseph R.
la source
Pour un utilisateur à domicile, recommanderiez-vous de définir un mot de passe root en plus d'avoir un utilisateur avec des privilèges (comme dans sudo)?
Royi
3

sudoest utilisé pour augmenter temporairement les autorisations des utilisateurs au niveau racine, tandis que su rootest utilisé pour créer un nouveau shell avec root en tant qu'utilisateur;

Dave
la source
2

Il est configurable * mais, par défaut, "sudo" vous demande votre mot de passe. Il essaie juste de s'assurer que c'est bien vous, pas quelqu'un qui utilise votre clavier pendant que vous prenez 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, "sudo" vous demande le mot de passe de root ou, si vous avez spécifié un autre utilisateur avec l'option "-u", le mot de passe de cet utilisateur.

John1024
la source
1

Pour le bénéfice de certains nouveaux venus dans cette recherche, il existe une méthode simple pour aller en root jusqu'à ce que vous quittiez:

     sudo -iE

Vous gardera interactif et gardera votre environnement mais maintenant, en tant que root.

fcm
la source