Lorsque je travaille sur nos machines RHEL, j'utilise sudo su -
pour passer en mode root. Un jour, une faute de frappe m'a fait taper sudo su --
à la place - il me semble que tout était pareil qu'avec un seul trait d'union, sauf que j'étais dans le même dossier qu'avant d'émettre la commande (avec un seul trait d'union je me retrouve dans /root
).
Y a-t-il d'autres différences ? Est-il sûr de l'utiliser dans des scénarios où je sais que je veux travailler dans le même répertoire ?
Réponse acceptée :
Lorsque vous fournissez un double trait d'union, l'expérience que vous aurez est identique à si vous veniez d'exécuter sudo su
sans trait d'union.
Passer un seul trait d'union est identique à passer -l
ou --login
. La page de manuel pour su
décrit le comportement comme :
Fournissez un environnement similaire à ce à quoi l'utilisateur s'attendrait s'il s'était connecté directement.
Cela inclut la définition de votre répertoire sur votre répertoire personnel et la définition d'un tas d'autres variables d'environnement.
Le passage d'un double trait d'union à une commande est généralement utilisé pour marquer la fin des indicateurs de ligne de commande et le début des arguments non indicateurs. Par exemple, si vous exécutez touch -R
vous recevrez une erreur indiquant que -R n'est pas une option pour touch
, mais si vous exécutez touch -- -R
il créera un fichier nommé -R
. C'est le cas de nombreux outils en ligne de commande (ls -R
fera un ls
récursif alors que ls -- -R
effectuera un ls
sur un fichier ou un répertoire nommé -R
.
Donc, pour conclure, lorsque vous passez seulement --
à su
il ignore essentiellement le --
et agir comme si vous n'aviez réussi aucune option.