Réponses:
Ils peuvent fournir des fonctionnalités proches de la même chose, mais il semble que 'sudo -i' soit plus léger et conserve quelques références utiles dans votre environnement.
Vous pouvez voir les processus supplémentaires en regardant 'ps auxf' (f vous donne une vue sur la forêt)
sudo -i donne cet arbre de processus
jkrauska 4480 0.0 0.0 76828 1656 ? S 23:38 0:00 | \_ sshd: jkrauska@pts/0
jkrauska 4482 0.0 0.0 21008 3816 pts/0 Ss 23:38 0:00 | \_ -bash
root 4675 0.6 0.0 19512 2260 pts/0 S+ 23:42 0:00 | \_ -bash
sudo su - donne cet arbre de processus
jkrauska 4480 0.0 0.0 76828 1656 ? S 23:38 0:00 | \_ sshd: jkrauska@pts/0
jkrauska 4482 0.0 0.0 21008 3816 pts/0 Ss 23:38 0:00 | \_ -bash
root 4687 0.5 0.0 43256 1488 pts/0 S 23:42 0:00 | \_ su -
root 4688 0.5 0.0 19508 2252 pts/0 S+ 23:42 0:00 | \_ -su
Notez qu'ils partent du même processus bash pid, 4482, mais que su - semble engendrer une autre étape.)
Votre premier «sudo» élève déjà votre niveau d'accès à root. L'exécution de su sans spécifier de nom d'utilisateur dans sudo change l'utilisateur actuel en root deux fois.
Une autre façon d'enquêter est d'exécuter les deux commandes avec strace -f.
strace -f -o sudoi sudo -i
contre
strace -f -o sudosu sudo su -
Si vous différez ces deux straces, vous verrez plus d'exeve en cours d'exécution pour sudo su -.
Encore une chose.
sudo -i conserve les variables d'environnement supplémentaires définies par SUDO.
SUDO_USER=jkrauska
SUDO_UID=1000
SUDO_COMMAND=/bin/bash
SUDO_GID=1000
sudo su - clobbers ces variables.
Réponse: Non, ce ne sont pas les mêmes.
Réponse longue: sudo et su - sont des programmes différents qui accomplissent la même tâche, c'est-à-dire qui vous élèvent aux privilèges root.
su était le moyen de facto de devenir root sur les systèmes Linux. Cependant, il était toujours nécessaire de séparer les privilèges et de laisser des informations d'audit derrière. De plus, quand vous faites su - tout ce que vous faites est fait en tant que root et il est dangereux d'avoir autant de puissance. Voici où sudo est venu à la rescousse.
sudo a certaines caractéristiques que su n'a pas. L'élément clé de sudo est sa capacité à exécuter "une" commande en tant que root, puis à abandonner les privilèges à l'utilisateur normal. Exemple: supprimez un fichier appartenant à root.
sudo rm /root/someFile
Cette commande effacera le fichier car sudo vous élèvera à la racine chaque fois que vous utiliserez la commande sudo avant une autre commande. La prochaine commande que vous avez exécutée sera exécutée comme un utilisateur normal (sauf si vous ajoutez la commande sudo au début). Cela vous permet d'accomplir une tâche administrative, puis de supprimer immédiatement les privilèges pour vous aider à éviter les conditions dangereuses.
sudo offre également d'autres avantages comme la restriction de l'ensemble de programmes qu'un utilisateur peut exécuter, les commandes de journaux exécutées sous sudo et d'autres choses. Pour plus d'informations sudo en bref
Quand vous faites su - ou sudo -i, vous faites la même chose. Cela devient root, mais gardez à l'esprit que su et sudo sont complètement différents et vous fournissent différents outils en tant qu'administrateur système. Personnellement, je ne lance JAMAIS su - et ma politique pam l'interdit , ne permettant à personne de l'exécuter. Dans mes systèmes, vous devez toujours utiliser sudo à cause des avantages supplémentaires.
Plus d'informations: Utilisation et activation de sudo
su
peut également exécuter une seule commande:su -c 'command ...'
sudo -i
et sudo su -
, pas entre sudo
et su
.
sudo su -
inutile?