En primer lugar, no lo use sudo su
. No está mal, es peligroso ni nada, es poco elegante y sin sentido . Está ejecutando dos programas separados para hacer un trabajo fácilmente manejado por uno. Si desea iniciar un shell como root, sudo
puede hacerlo por usted.
Si desea iniciar un shell de inicio de sesión (eso es lo que sudo su -
hace), use sudo -i
. Eso, sin embargo, dado que inicia un shell de inicio de sesión, lo llevará al directorio de inicio de la raíz de forma predeterminada.
Para iniciar un shell normal sin inicio de sesión, puede usar sudo -s
. Eso iniciará un shell raíz para usted y lo mantendrá en el directorio desde donde lo ejecutó:
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
Entonces, la forma de iniciar un shell raíz y permanecer en el mismo directorio es sudo -s
.
sudo -s
no ejecuta el perfil del usuario objetivo porque no es un shell de inicio de sesión. Entonces, tal vez la verdadera pregunta es si hay una manera de obtener un shell de inicio de sesiónsudo
, pero sin cambiar el directorio. Probablemente no.