web-dev-qa-db-fra.com

Quelle est la différence entre "su" avec et sans trait d'union?

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?

85
user574183

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).

81
paulsm4

su - démarre un shell de connexion pour root. Pour les différences par rapport à un shell normal, voir ce site par exemple.

3
Lars Kotthoff