Quand su et sudo utilisent-ils des mots de passe différents?


12

Je peux exécuter n'importe quoi en utilisant sudo; mon mot de passe est accepté. Mais chaque fois que j'essaie de le faire à supartir d'un shell, il échoue avec:

su: mot de passe incorrect

Quel peut être le problème?

Réponses:


22

susignifie utilisateur substitut et s'il est appelé sans aucun argument, vous deviendrez le superutilisateur. Vous devez donc saisir le mot de passe root.

C'est une sorte de peu pratique si beaucoup de gens ont besoin d'utiliser des commandes pour l'administration du système ou des choses similaires avec des droits d'utilisateur étendus. Vous ne voulez tout simplement pas que les gens aient des droits illimités en partageant tous le même mot de passe root.

La solution à ce type de problèmes est sudo(" utilisateur substitut "). Cela vous permettra de spécifier les commandes que quelqu'un peut invoquer et de définir les autorisations. Car sudovous n'avez pas besoin d'entrer le mot de passe root, mais le mot de passe de l'utilisateur qui essaie d'appeler une commande sudo.

Certaines distributions ont l'utilisateur root désactivé pour des raisons de sécurité. Cela pourrait être une explication pour laquelle vous n'êtes pas en mesure d'utiliser su. Dans ce cas, pour obtenir un shell avec les privilèges root, utilisez sudo -s;-)


5
Il est recommandé de faire ce dernier bit comme sudo su -lorsque le tiret signifie définir l'environnement en fonction du profil de connexion de l'utilisateur (dans ce cas, root). Cela offre généralement une légère augmentation de la sécurité de PATH mais ne protège toujours pas contreecho hi > /dev/my_critical_filesystem
msw

aaah oublié celui-ci :-) merci pour l'ajout!
echox

@echox: Alors, y a-t-il une différence entre $ scriptet $ sudo script? L'utilisateur est le même dans les deux cas.
Lazer

sudo allows a permitted user to execute a command as the superuser or another user, as specified in the sudoers file.- de l'homme sudo. Habituellement, le script sera invoqué avec les privilèges root. Voilà la différence.
echox

1
@Chris: malheureusement, cela est nécessaire si vous souhaitez hériter de tout l'environnement utilisateur root, y compris son PATH. Soit dit en passant, je viens de découvrir que "sudo -s", que j'ai commenté ci-dessus mais que j'ai maintenant supprimé, est plus équivalent à "sudo su", sans le tiret: aucun changement à CWD, aucun changement à PATH.
Warren Young

7

La commande su sans options sera par défaut pour vous permettre de devenir l'utilisateur root. Il ne demande pas votre mot de passe, mais le mot de passe root.

La commande sudo vous demande toujours votre mot de passe.


2
en remarque, si vous utilisez Ubuntu, le mot de passe root est verrouillé par défaut, donc vous ne connaissez peut-être pas le mot de passe root help.ubuntu.com/community/RootSudo
phunehehe

3
"La commande sudo vous demande toujours votre mot de passe." En fait, c'est configurable. Il peut également être configuré pour demander le mot de passe root ou le mot de passe de l'utilisateur cible (ou pas de mot de passe du tout).
sepp2k, le
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.