Bem, talvez seja uma fantasia, mas há várias pessoas dizendo a mesma coisa:
Por que devo usar o gksudo para Gtk? aplicativos em vez de sudo?
Existem outras ocasiões, no entanto, em que os efeitos colaterais podem ser tão leves quanto as extensões do Firefox não se estragarem ou tão extremas quanto a impossibilidade de efetuar login, pois as permissões da autoridade do .ICE foram alteradas.
Por que os usuários nunca devem usar o sudo normal iniciar aplicativos gráficos?
Suponha que você esteja executando o gedit (um editor de texto gráfico) como root. Se você executar o sudo gedit, o HOME continuará apontando para o seu diretório pessoal, mesmo que o programa esteja sendo executado como root. Consequentemente, o gedit gravará arquivos de configuração como root em seu diretório inicial. Isso às vezes resultará na configuração dos arquivos pertencentes a root e, portanto, inacessíveis a você (quando você executar o programa posteriormente como você mesmo e não como root).
Como executar uma GUI programar como um usuário diferente (Debian)?
Primeiro, não use sudo ou su para mudar os usuários para executar um processo gráfico, ou você está sujeito a ter problemas no final da linha (~ /. O proprietário de mudança de autoridade é um problema notável). Em vez disso, crie um atalho que use o seguinte comando:
Executando o Sudo Graficamente
Bem, para ser perfeitamente honesto, a maior parte do tempo não é. Para muitas aplicações, você pode executá-las de maneira inadequada - usando o sudo para aplicações gráficas e não vê efeitos colaterais adversos.
...
Esses erros ocorrem porque, às vezes, quando sudo
inicia um aplicativo, ele é iniciado com privilégios de root, mas usa o arquivo de configuração do usuário.
Este arquivo de mensagens também pode ser do seu interesse.
Então, vamos testá-lo.
2 novas caixas virtuais. Ubuntu 14.04. Nunca corra o firefox neles. O que acontecerá quando eu executar o comando sudo firefox
?
tim@Hairy14CVB:~$ sudo firefox
(process:4857): GLib-CRITICAL **: g_slice_set_config: assertion 'sys_page_size == 0' failed
...
[email protected]:2192:13
Este é o mesmo (ou pelo menos muito semelhante) para ambas as caixas virtuais. Enquanto o firefox estava rodando, eu instalei uma extensão do youtube - uma em destaque. Então fechei o firefox e verifiquei a saída.
tim@Hairy14CVB:~$ ls -la .ICEauthority
-rw------- 1 tim tim 1336 Jun 4 21:31 .ICEauthority
Bem, .ICEauthority
está bem! No entanto ...
tim@Hairy14CVB:~$ ls -la | grep root
drwxr-xr-x 3 root root 4096 Jun 1 20:49 ..
drwx------ 3 root root 4096 Jun 5 22:41 .dbus
drwx------ 4 root root 4096 Jun 5 22:41 .mozilla
3 coisas na minha pasta pessoal ( /home/tim/
) são de propriedade da raiz ( ..
, .dbus
e .mozilla
). Este é o mesmo (ou pelo menos muito semelhante) para ambas as caixas virtuais.
Então, isso importa. Eu não tinha certeza, então eu corri o firefox, assim:
tim@Hairy14CVB:~$ firefox
(process:4959): GLib-CRITICAL **: g_slice_set_config: assertion 'sys_page_size == 0' failed
Error: Access was denied while trying to open files in your profile directory.
E esse erro desagradável:
Para a saída completa do terminal (incluindo o babble firefox), veja estes dois pastebins, aqui e aqui .
Eu ainda posso rodar o firefox como root pelo caminho. Mas agora mais arquivos foram alterados:
tim@Hairy14VB:~$ ls -la | grep root
drwxr-xr-x 4 root root 4096 Jun 3 19:46 ..
drwx------ 3 root root 4096 Jun 5 22:55 .adobe
drwx------ 3 root root 4096 Jun 5 22:40 .dbus
drwx------ 3 root root 4096 Jun 5 22:55 .macromedia
drwx------ 4 root root 4096 Jun 5 22:40 .mozilla
Foi porque carreguei uma imagem para imgur.com? Não tenho certeza.
Como consertei isso? %código%. Eu não entendo, mas internet disse para fazê-lo, e é uma caixa virtual tão yolo .
sudo chown -R tim:tim /home/tim/
E isso consertou. Agora a saída é apenas o arquivo chown
:
tim@Hairy14VB:~$ ls -la | grep root
drwxr-xr-x 4 root root 4096 Jun 3 19:46 ..
E isso é o mesmo no meu computador real. Ah, e no meu virtualbox do Kubuntu:
tim@Hairy14VB:~$ ls -la | grep root
drwxr-xr-x 3 root root 4096 May 16 14:10 ..
Que eu nunca executei um comando sudo. Então tudo está bem. Apenas não execute ..
em um aplicativo GUI.
Teste final: execute-o com os sinalizadores sudo
e -H
:
sudo -H firefox
e
sudo -i firefox
E boas notícias! Ainda assim, a única "coisa" de raiz é -i
. E posso executar ..
sem raiz.
O OP quer que eu fale sobre o Gedit.
eu corri
sudo gedit
Em seguida, instalamos alguns plugins aleatórios. Esta foi a saída:
tim@Hairy14VB:~$ ls -la | grep root
ls: cannot access .gvfs: Permission denied
drwxr-xr-x 4 root root 4096 Jun 3 19:46 ..
Observe que nem consigo ver a propriedade de firefox
, então fiz isso:
tim@Hairy14VB:~$ sudo ls -la | grep root
drwxr-xr-x 4 root root 4096 Jun 3 19:46 ..
dr-x------ 2 root root 0 Jun 6 10:05 .gvfs
Portanto, a execução de .gvfs
altera um arquivo no meu diretório inicial para o root.
Ainda consigo abrir o gedit, mas desta vez recebo algum lixo:
(gedit:7422): Gtk-WARNING **: Attempting to read the recently used resources file at '/home/tim/.local/share/recently-used.xbel', but the parser failed: Failed to open file '/home/tim/.local/share/recently-used.xbel': Permission denied.
E isso sugere que há outro arquivo ( sudo gedit
) que foi alterado. Eu acho que esta é a lista de arquivos usada recentemente e (sorte acho) agora não tenho mais a minha lista de arquivos usados recentemente:
Deve haver um arquivo chamado ~.local/share/recently-used.xbel
.