Hay una pregunta reciente con respecto a varios administradores de sistemas que funcionan como root, y sudo bash -l
se hizo referencia a ella.
Busqué esto en google y SE, pero no entiendo la diferencia entre sudo bash -l
y sudo -i
.
De las páginas de manual para bash y sudo parece que la diferencia puede ser que sudo bash -l
ejecuta ~ / .bash_profile, ~ / .bash_login y ~ / .profile, y ~ / .bash_logout del usuario root, pero al probarme a mí mismo parece que ejecuta el .bashrc del usuario normal y no el root. Es posible que haya entendido mal a qué usuario hace referencia la expresión ~ en las páginas de manual. Se agradecería la aclaración de la diferencia y los escenarios de uso.
También añadir a @ johnshen64 responder me di cuenta de que la
sudo -i
invocación actualiza la$USERNAME
variable de entorno aroot
ycd ~
al inicio del usuario como tal;Sin embargo, for no
sudo bash -l
$USERNAME
es molestado y el directorio de trabajo no cambia. (aunque esto no es coherente con otros usuarios, vea los comentarios ...)Entonces, presumiblemente, no está obteniendo exactamente el mismo conjunto
~/.bashrc
o no está en el mismo orden, etc.(mi caja podría haber estado un poco desordenada por mis
.bashrc
retoques, así que YMMV)fuente
echo $USERNAME
devuelve root las dos veces (en mi escritorio ubuntu y centos 5.2). PWD es como informas sin embargo.