O primeiro comando registra você como root; a opção -
significa, do su Manpage
:
-l, --login Provide an environment similar to what the user would expect had the user logged in directly.
O segundo comando, bash -l
, não faz o login como root. É verdade que a opção -l
significa (novamente a partir do bash Manpage
):
-l Make bash act as if it had been invoked as a login shell
No entanto, isso se refere a um different user
, neste caso você mesmo em vez de raiz. Assim, o comando bash -l
mantém o magic cookie do MIT que permite o controle da sua sessão X, enquanto o su -c
não é capaz de fazer isso e, como você não tem o magic cookie do MIT apropriado, não pode assumir o controle do Sessão X.
Se você quiser contornar este problema, insira esta declaração
export XAUTHORITY=/home/your_name/.Xauthority
no arquivo /root/.bashrc, e você será capaz de abrir GUIs como root mesmo quando estiver su'ing ao invés de usar um shell de login apropriado.