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, HOMEcontinuará apontando para o diretório inicial, mesmo que o programa esteja sendo executado comoroot . Consequentemente, geditvã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 sudofront-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 sudodiretamente para executar um aplicativo gráfico como gedit, pode executar:
sudo -H gedit
O -Hsinalizador sudodefine HOMEpara apontar para roota 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 sudofront-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 .Xauthoritya 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 rootdetida .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 chowntodos 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.