¿Cuál es la diferencia entre su -
y bash -l
?
Tengo este problema:
:/etc/profile.d # su - No se puede abrir la pantalla "pantalla predeterminada" Directorio: /raíz Jueves 28 de noviembre 11:23:57 CET 2013
Ahora trato de averiguar por qué aparece este mensaje.
:~ # cerrar sesión :/etc/profile.d # bash -x -l + prueba -f /proc/montajes + caso "`/bin/ls -l /proc/$$/exe`" en ++ /bin/ls -l /proc/17167/exe + es=golpe + leer -t 1 ar ...
En el segundo resultado no tengo señales del mensaje "no se puede abrir la pantalla". Entonces, ¿cuál es la diferencia?
Respuesta1
El primer comando inicia sesión como root; la opción -
significa, desde su Manpage
:
-l, --login Proporciona un entorno similar al que el usuario esperaría si hubiera iniciado sesión directamente.
El segundo comando, bash -l
, hacenoinicie sesión como root. Es cierto que la -l
opción significa (nuevamente del bash Manpage
):
-l Hacer que bash actúe como si hubiera sido invocado como un shell de inicio de sesión
Sin embargo, esto se refiere a un different user
, en este caso a usted mismo en lugar de a root. Por lo tanto, el bash -l
comando mantiene la cookie mágica del MIT que permite el control de su sesión X, mientras que su -c
no es capaz de hacerlo y, como no tiene la cookie mágica del MIT adecuada, no puede tomar el control de la sesión X.
Si desea solucionar este problema, inserte esta declaración
export XAUTHORITY=/home/your_name/.Xauthority
en el archivo /root/.bashrc, y podrá abrir GUI como root incluso cuando esté solicitando en lugar de utilizar un shell de inicio de sesión adecuado.