web-dev-qa-db-fra.com

Comment passer à l'utilisateur root tout en restant dans le même répertoire

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?

8
Hammad Hassan

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.

15
terdon

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.

7
Joo Nice