23 votes

Linux - utiliser "su -" mais garder le répertoire courant

Quand je le fais su - pour accéder à root, mon répertoire courant est mis à la place de celui de root. Existe-t-il un moyen de conserver le répertoire actuel dans lequel je me trouvais, comme par exemple sudo -s . Ou est-ce que la réponse est d'utiliser sudo ?

5 votes

Veuillez noter que je ne veux pas paraître impoli, mais pourquoi ce problème n'est pas résolu par "man su" ?

1 votes

@Rory s'il vous plaît lisez le commentaire de Myrrdyn

0 votes

J'aime utiliser sudo su -c "zsh" Dans mon cas, cela me permet de rester dans le répertoire et la charge actuels. zsh comme Shell avec l'utilisateur root. ctrl+d après et vous revenez à l'utilisateur actuel. Pour ce qui est du répertoire, cela fonctionne directement sur centos pour moi, mais peut-être qu'ajouter ` && cd $(pwd)` dans la commande passée pourrait faire l'affaire.

2voto

David Pashley Points 22851

Si vous utilisez "su", cela fait un Shell interactif. C'est la même chose que "sudo -s". "su -" crée un Shell de connexion, qui remplacera l'environnement. "sudo -i" est l'équivalent de sudo. Si vous essayez d'obtenir un Shell interactif, vous devriez toujours utiliser la forme sudo -i (ou su -), ou il est possible de se retrouver avec des permissions de fichiers bizarres dans le répertoire personnel d'un utilisateur.

1voto

Vous devez modifier le source de su pour que ce travail soit fait. il y a un appel chdir dans une procédure d'initialisation des variables d'environnement. commentez les états qui incluent cet appel. et maintenant, vous pouvez faire "su -" mais garde le répertoire courant.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X