J'ai vu de nombreux commentaires ici dans Ask Ubuntu concernant la préférence d'utilisation sudo -s
plutôt que sudo su
.
Pour moi, ces deux commandes font exactement la même chose. Mais pourquoi est-ce sudo -s
censé être mieux?
command-line
sudo
su
fitojb
la source
la source
sudo -i
ousudo su
vaut mieux quesudo -s
pour les raisons mentionnées ici: ubuntuforums.org/showpost.php?p=6188826&postcount=4 Aussi: il s'agit d'un doublon possible de superuser.com/questions/29/…Réponses:
Je pense que ce
sudo -s
n'est pas "mieux", c'est juste différent.sudo -s
conserve votre répertoire $ HOME, donc lorsque vous démarrez des programmes, ils utiliseront vos fichiers de configuration (et non root), etc. Inconvénient: ils peuvent également changer la propriété de vos fichiers dans le répertoire $ HOME, un exemple typique est le
.Xauthority
fichier, mais je n'ont jamais rencontré de problème avec ça.sudo su
ousudo -i
les programmes utiliseront le répertoire personnel de la racine et ses fichiers de configuration. Cela peut être plus intuitif, mais cela signifie également qu'il n'utilisera aucune configuration que vous auriez définie pour vous-même (alias, historique de bash, ...).
la source
Parce
sudo -s
que ne changera pas vos variables d'environnement, en particulier$HOME
, qui resterontHOME=/home/USER
. Si vous utilisez,sudo su
cela changera,HOME=/root
ce qui peut avoir des effets secondaires négatifs lorsque les programmes que vous démarrez tentent d'accéder au répertoire personnel de votre utilisateur.Donc, fondamentalement, c'est comme
sudo
vsgksudo
lors de l'exécution de programmes graphiques.la source
Mis à part les différences déjà mentionnées avec les variables d'environnement, je trouve
sudo su
stupide et inutile parce que vous demandezsudo
à exécuter ensu
tant que root et lui demandez d'exécuter un shell en tant que root. Pourquoi demander à un programme de demander à un programme de vous donner un shell racine, alors que vous pouvez simplement demander au premier programme de vous donner ce shell? Est-ce important dans un sens pratique? Non, je suis juste pédant.la source
sudo su
pour être root, oui, allez-ysudo -i
, par exemple. Mais elle aide quand vous voulez devenir un autre utilisateur:sudo su - myuser
.sudo -i
changera de/root
répertoire etsudo su
restera dans le répertoire que vous êtes.sudo -u myuser
.Je ne serais pas d'accord avec d'autres réponses lorsque l'on considère les cas où vous souhaitez vous connecter en tant qu'utilisateur n'ayant pas de shell. C'est un cas très courant avec des utilisateurs affectés à des services.
L'utilisation de "sudo su" démarrera le shell spécifié par l'utilisateur. Cependant, dans le cas d'un utilisateur affecté au processus serveur, le shell est / usr / bin / false et la journalisation échouera. Au lieu de cela, vous devez entrer en tant que:
qui vous connectera et cd à son chemin d'accueil, même si l'utilisateur n'a pas de shell assigné
la source