Je suis un nouveau venu dans le terminal Linux et je ne sais pas trop quelle est la différence entre su
avec un tiret et su
sans trait d'union, par exemple: su - username
contre su username
.
J'ai jeté un œil dans la documentation , mais cela n’a pas été mentionné. Est-ce que quelqu'un pourrait m'aider s'il vous plaît?
La différence entre "-" et "pas de trait d'union" est que ce dernier conserve votre environnement existant (variables, etc.); le premier crée un nouvel environnement (avec les paramètres de l'utilisateur réel, pas les vôtres).
https://wiki.archlinux.org/index.php/Su
Le trait d'union a deux effets:
1) bascule du répertoire en cours vers le répertoire de base du nouvel utilisateur (par exemple, vers/root dans le cas de l'utilisateur root) en vous connectant en tant qu'utilisateur
2) remplace les variables d'environnement par celles du nouvel utilisateur, comme indiqué par leur ~/.bashrc. En d’autres termes, si le premier argument de su est un trait d’union, le répertoire et l’environnement actuels seront modifiés de la manière attendue si le nouvel utilisateur s’était réellement connecté à une nouvelle session (au lieu de simplement reprendre une session existante).
su -
démarre un shell de connexion pour root. Pour les différences par rapport à un shell normal, voir ce site par exemple.