Os aplicativos gráficos geralmente armazenam configurações e outros dados específicos do usuário em arquivos de configuração gravados na pasta inicial do usuário . Os principais aplicativos de mecanismo usados para determinar o que eles devem usar como pasta pessoal do usuário é a HOME
variável de ambiente . (Você pode inspecionar você mesmo echo $HOME
).
Suponha que você esteja executando gedit
(um editor de texto gráfico) como root
. Se você executar sudo gedit
, HOME
continuará apontando para o diretório inicial, mesmo que o programa esteja sendo executado comoroot
. Consequentemente, gedit
vão escrever arquivos de configuração comoroot
em seu diretório home. Este , por vezes, resultará nos arquivos de configuração a ser detidas porroot
e, portanto, inacessíveis para você (quando posteriormente executar o programa como a si mesmo e não como root
). Isso acontece principalmente quando o aplicativo precisa criar um novo arquivo de configuração. Os arquivos criados recentemente, por padrão, pertencem ao usuário que os cria (quem, nesse caso root
, não é você).
Essa é a principal razão pela qual você deve executar aplicativos gráficos com um sudo
front-end gráfico e não com um straight sudo
. No Ubuntu e na maioria de seus derivados (incluindo Xubuntu e Lubuntu), a interface gráfica padrão é gksu
/gksudo
. No Kubuntu é kdesudo
. (Depende do ambiente da área de trabalho que está sendo usado.)
Se você deseja usar sudo
diretamente para executar um aplicativo gráfico como gedit
, pode executar:
sudo -H gedit
O -H
sinalizador sudo
define HOME
para apontar para root
a pasta pessoal (que é /root
).
Isso ainda não resolverá automaticamente a propriedade .Xauthority
, copiando-a para uma pasta temporária (essa é outra coisa que os sudo
front-end gráficos cuidam de você). Porém, no evento infreqüente que .Xauthority
é inacessível, você receberá um erro dizendo que é e poderá corrigir o problema excluindo-o ( sudo rm ~/.Xauthority
), pois ele é regenerado automaticamente. Portanto, proteger .Xauthority
a propriedade e as permissões é menos importante do que proteger a propriedade e as permissões dos arquivos de configuração.
Em contraste com a root
detida .Xauthority
, quando os arquivos de configuração se tornam propriedade como root
, nem sempre é tão óbvio qual é o problema (porque programas gráficos, muitas vezes, correr, mas não funciona muito bem, e saída de erros úteis para o console). E, às vezes, é um aborrecimento maior para corrigir, especialmente se você estiver em uma situação em que deseja que um ou mais arquivos em seu diretório pessoal sejam de propriedade de alguém que não seja você (porque você não poderá corrigi-lo simplesmente inserindo recursivamente chown
todos os arquivos) de volta para si mesmo).
Portanto, sudo
(pelo menos sem -H
) não deve ser usado para executar um aplicativo gráfico, a menos que você esteja familiarizado com o funcionamento interno do aplicativo e tenha certeza de que ele nunca tenta gravar nenhum arquivo de configuração.