Cuando trabajo en la línea de comando, a menudo cambio a sudo usando sudo -i. Sin embargo, mi directorio de trabajo cambia automáticamente a /root. Nunca quiero ir allí; ¡Quiero quedarme donde estaba! ¿Cómo puedo conseguir esto?
25

sudo -iufunciona para mí ubuntuforums.org/…sudo -itodavía está dañado por los env env del usuario. La única forma de evitar esto es usarlosu -l.Si desea usar
su, hay una manera de permanecer en el mismo directorio.Que está pasando aqui:
su - user= iniciar sesión comouser-clo que significa "ejecutar un comando en el nuevo shell del usuario"-c "cd `pwd`"el comando que damos es cambiar al directorio actual (`pwd`), pero debido a que usamos las comillas inversas entre comillas dobles, elpwdcomando se evalúa antes de ejecutar elsucomando, de modo que realmente cambiemos al directorio en el que estamos AHORA como el antiguo usuario.-c 'cd `pwd`'ejecutaría elpwdcomando en el nuevo shell, por lo que esto evaluaríacd /root, lo que, por supuesto, no logrará nada.El único problema aquí es que el nuevo shell sale justo después de ejecutar el comando, por lo que agregamos:
-c "cd `pwd`; bash"lo que significa "ejecutarbash(nuevo shell) después de ejecutar elcdcomando. El shell bash no se cierra hasta que cerramos la sesión.Tenga en cuenta que puede reemplazar
`pwd`con$(pwd). Funcionalmente son iguales, pero la abundancia de caracteres tipo comillas puede ser difícil de leer.fuente
Me he enfrentado al mismo problema y no se me permite ejecutar nada más que
sudo su - devuseren el servidor de desarrollo, así que esto es lo que se me ocurrió:Sube un árbol de procesos y comprueba si el usuario propietario del proceso cambió.
fuente