Je répète simplement les réponses de @dr01 et de @OneK car il leur manque tous les deux quelques petits détails :
su - username
- Demande au système de démarrer une nouvelle session de connexion pour l'utilisateur spécifié. Le système exigera le mot de passe pour l'utilisateur "nom d'utilisateur" (même si c'est le même que l'utilisateur actuel).sudo su - username
fera de même, mais demandera d'abord au système d'être élevé en mode super utilisateur, après quoisu
ne demandera pas le mot de passe de "nom d'utilisateur" car un super utilisateur est autorisé à se transformer en n'importe quel autre utilisateur sans connaître son mot de passe. Cela étant dit,sudo
en lui-même applique la sécurité en vérifiant le/etc/sudoers
fichier pour s'assurer que l'utilisateur actuel est autorisé à obtenir des autorisations de super utilisateur, et éventuellement vérifier le mot de passe de l'utilisateur actuel.
Je voudrais également dire que pour obtenir une session de connexion super utilisateur, veuillez utiliser sudo -i
(ou sudo -s
) comme sudo su -
est tout simplement idiot :sa demande sudo
pour donner des autorisations de super utilisateur à su
de sorte que su
peut démarrer un shell de connexion pour le super utilisateur - lorsque sudo
peut obtenir le même résultat mieux par lui-même.
Avoir des droits de superutilisateur, sudo su - username
vous connectera (dans un shell de connexion) en tant que $username
sans demander de mot de passe, tandis que su - username
demandera le mot de passe de $username
.
sudo su - username
fait la même chose que su - username
:exécute un shell de connexion en tant que username
.
su - username
exécuter en tant que root et sudo su - username
ne nécessite pas de connaître le nom d'utilisateur le mot de passe de (car ils sont exécutés avec des privilèges élevés), tandis que su - username
exécuter comme un utilisateur normal a besoin de le savoir.