J'utilise ubuntu 10.04.
Je remarque qu'après avoir exécuté " sudo -s " dans le terminal, l'invite est passée de
" XXX @ XXX "
à
" root @ XXX ",
semble avoir changé en privilège root.
Mais quand je vérifie la documentation de la commande "sudo" ici , cela explique une autre histoire de "sudo -s", quelqu'un peut-il m'expliquer ce que fait " sudo -s " exactement?
sudo
n'est pas spécifique à Ubuntu ...Réponses:
Les deux ne sont pas vraiment incompatibles - la
sudo
commande change toujours d'utilisateur, soit en root, soit en l'utilisateur que vous spécifiez avec le-u
commutateur. La seule-s
chose à faire est de fournir un raccourci pour démarrer un shell en tant qu'utilisateur. C'est vraiment équivalent à:sauf qu'il se repliera probablement sur
/bin/sh
ou quelque chose s'ilSHELL
n'est pas défini.la source
sudo -s
exécute le shell spécifié dans votre$SHELL
variable d'environnement en tant que superutilisateur / root. Vous pouvez spécifier un autre utilisateur à l'aide de-u
.La
$SHELL
variable d'environnement contient le chemin d'accès au shell de connexion par défaut de l'utilisateur. Le paramètre réel du programme shell par défaut se trouve généralement dansetc/passwd
. Selon ce que vous avez fait dans votre session actuelle, la variable $ SHELL peut ne pas contenir le programme shell que vous utilisez actuellement. Si vous vous connectez automatiquement avec zsh par exemple, mais que vous invoquez ensuite bash, $ SHELL ne changera pas de/bin/zsh
.Affichez le programme utilisateur et shell actuel:
echo $(whoami) is logged in and shell is $0
whoami
imprime le nom d'utilisateur sous lequel l'utilisateur travaille.$0
contient le nom / chemin du programme en cours d'exécution (programme shell dans ce cas).la source
Du manuel:
Plus sérieusement, les sudo -s exécutent une variable d'environnement shell. Puisque vous n'avez ajouté aucune variable, il s'exécute comme spécifié dans passwd, et vous connectez donc en tant que root.
la source
-u
option pour l'apprendre. Mais pour quelqu'un qui ne connaît passudo
, ils ne sauraient pas regarder-u
.Jetez un oeil à ce post de superutilisateur:
Quelle est la différence entre les commandes "su -s" et "sudo -s"?
Soit dit en passant, votre message devrait être déplacé vers le superutilisateur (ou askubuntu comme indiqué dans les commentaires)!
la source
Il semble qu'il crée une autre instance du shell au-dessus du shell actuel, mais avec les privilèges root. Je parie qu'après avoir fait
sudo -s
si vous tapez exit, vous reviendrez au shell d'origine.la source
sudo -s vous permet d'exécuter une commande pour laquelle vous êtes pré-autorisé [voir / etc / sudoers], éventuellement en vous demandant de confirmer votre ID actuel.
la source