J'ai récemment basculé sur Ubuntu et j'ai observé une chose lorsque j'utilise la commande suivante pour passer à l'utilisateur root.
Sudo su - root
Cela me prend directement à la maison de root (/root
), alors je perds ma place dans le système de fichiers (le répertoire dans lequel j'ai exécuté cette commande). Est-il possible de passer à la racine sans perdre le répertoire en cours?
Tout d'abord, n'utilisez pas Sudo su
. Ce n'est pas faux, ni dangereux ou quoi que ce soit, c'est juste inélégant et inutile . Vous exécutez deux programmes distincts pour effectuer un travail facilement géré par un seul. Si vous voulez démarrer un shell en tant que root, Sudo
peut le faire pour vous.
Si vous souhaitez démarrer un shell de connexion (c'est ce que fait Sudo su -
), utilisez Sudo -i
. Cependant, comme il démarre un shell de connexion, vous serez redirigé vers le répertoire de base de root.
Pour démarrer un shell standard sans connexion, vous pouvez utiliser Sudo -s
. Cela créera un shell racine pour vous et vous gardera dans le répertoire à partir duquel vous l'avez exécuté:
terdon@tpad ~ $ pwd
/home/terdon
terdon@tpad ~ $ Sudo -i ## changes directory
[root@tpad ~]# pwd
/root
[root@tpad ~]# logout
terdon@tpad ~ $ Sudo -s ## doesn't change directory
[root@tpad terdon]# pwd
/home/terdon
Donc, la façon de démarrer un shell racine et de rester dans le même répertoire est Sudo -s
.
C'est très simple. Il suffit de taper
Sudo su
au lieu de
Sudo su - root
Cela vous gardera dans le même dossier que root.