Linux - Utiliser la commande 'su'

baissaoui Messages postés 497 Date d'inscription jeudi 2 septembre 2021 Statut Webmaster Dernière intervention 22 mars 2024 - 21 juin 2022 à 12:52
Document initial créé par Jipicy



Préambule

La commande "su" (Switch User, appelée plus communément (à tort semble-t-il) "Super Utilisateur" ) permet d'ouvrir une session avec l'ID (IDentifiant) d'un autre utilisateur, ou de démarrer un nouveau shell de connexion.

Se connecter sous un autre ID utilisateur avec "su"

su toto

Après avoir entré votre mot de passe, vous êtes connecté en tant qu'utilisateur "toto", vous êtes toujours dans le même répertoire de travail que précédemment et vous bénéficiez des réglages par défaut de l'utilisateur précédent (shell de connexion, variables d'environnement, permissions diverses...)

Démarrer un nouveau shell de connexion avec "su -"

su - toto

La présence du tiret "-" force le démarrage d'un nouveau shell de connexion, avec ajustement des variables d'environnement et de tous les réglages par défaut selon les préférences de l'utilisateur.
C'est pour ces raisons évidentes qu'il est conseillé lorsque vous vous connectez en tant que super utilisateur "root", d'utiliser la commande :
su -
plutôt que :
su
.

Revenir au shell précédent

Taper la commande "exit" ou la combinaison de touches "Ctrl-d" pour fermer le shell courant et revenir au précédent.

Observation : si la ligne de commande n'est pas vide Ctrl-d efface le caractère courant

Suspendre le shell du compte root

Grâce à la commande suspend on peut suspendre le shell root et le placer en arrière-plan.
La commande fg permet de le reprendre.
ccm@debian:~$ su
Password:
debian:/home/ccm# suspend

[1]+ Stopped su
ccm@debian:~$ fg
su
debian:/home/ccm#

Notes

-Si vous tapez la commande "exit" ou "Ctrl-d" à partir du shell de connexion original (initial), vous vous trouvez déconnecté du système (Unix - GNU/Linux).
-Si vous étiez connecté (dans un shell) en tant que root et que vous tapez la commande "su user", le système n'exigera pas de mot de passe.