Sudo su vs su linux

24

Si j'entre le mot de passe à l' suinvite, cela ne fonctionne pas pendant que je le fais sudo su. De plus, lorsqu'une commande est exécutée à l'aide de sudo (command), sudo l'exécute automatiquement par root par défaut (puisque la page de manuel indiquesudo, sudoedit - execute a command as another user

michaelxu@michaelxu-server:~$ su
Password:
su: Authentication failure
michaelxu@michaelxu-server:~$ sudo su
[sudo] password for michaelxu:
root@michaelxu-server:/home/michaelxu# exit
agz
la source

Réponses:

41

C'est parce que sudemande le mot de passe de l'utilisateur que vous changez (qui est par défaut root) tout en sudodemandant le mot de passe de votre propre compte d'utilisateur et vérifie si vous êtes autorisé à exécuter la commande.

Lorsque vous exécutez, sudo suvous demandez sudod'exécuter la commande en sutant que root, ce qui vous donne le shell root. Si vous utilisez uniquement, suvous devrez connaître le mot de passe de l'utilisateur cible pour y avoir accès.

L'utilisation sudosans paramètres implique que vous souhaitez utiliser root. Si vous souhaitez exécuter la commande en tant qu’autre utilisateur, essayezsudo -u <username> <command>

Renan
la source
7
Une autre information importante pour comprendre la commande associée sudo su otheruserest celle qui supermet à la racine de basculer vers n'importe quel utilisateur sans entrer son mot de passe, tandis que les utilisateurs non root qui s'exécutent sudoivent entrer le mot de passe de l'utilisateur cible. sudo sus'exécute donc en sutant que root, ce qui vous permet d'obtenir un shell pour un autre utilisateur sans connaître son mot de passe (tant qu'il est autorisé par sudoers).
Lie Ryan
Alors, quel serait mon mot de passe root pour la commande "su"? Comment se fait-il que ce ne soit pas le mot de passe que j'ai défini au début de l'installation?
agz
Parce que votre distribution ne l'a probablement pas défini. Vous pouvez définir un mot de passe root en cours d'exécution sudo passwd(fournissez d'abord votre mot de passe utilisateur, puis choisissez un nouveau mot de passe root).
Renan
Donc, pour le moment, il n'y a pas de mot de passe? ... Donc, fondamentalement, root n'est qu'un compte que les sudoers peuvent utiliser pour apporter des modifications aux fichiers racine?
agz
pas seulement cela, il existe de nombreux autres services qui doivent s'exécuter en tant que root (vérifier ps aux).
Renan
17

susupports pour s grise (ou s ubstitute) u ser. Sans nom d'utilisateur donné, il passe par défaut à la racine. Il vous demande le mot de passe de l'utilisateur vers lequel vous passez.

sudoest utilisé pour exécuter une commande en tant que root (c'est-à-dire avec des autorisations root) ou en tant qu'autre utilisateur. Il vous demande votre mot de passe et vérifie que vous êtes autorisé à utiliser sudo.

Lorsque vous tapez su, vous demandez de basculer vers root et le mot de passe demandé est le mot de passe root. Lorsque vous tapez sudo su, vous demandez d'exécuter la commande pour basculer vers root en tant que root , donc le mot de passe demandé est le vôtre.

ForeverWintr
la source
1

... et pour résoudre le problème de ne pas pouvoir utiliser 'su' seul, sudo vers un shell root, et définir un mot de passe pour root, avec 'chpass'.

Nevin Williams
la source