Que coisas ruins específicas acontecem quando o gedit é usado com o sudo?

10

Eu li esta resposta explicando que "às vezes" o root pode possuir algo no /home/$USERdiretório.

Alguém pode dar um exemplo de como provar isso. Apenas dê um caso de teste quando algo realmente ruim acontecer, quando eu corro

sudo gedit /etc/rc.local

editar arquivo e salvar.

Eu recebi muitos votos negativos tentando ajudar o OP e os comentários foram inundados ao dizer que é um crime executar o gedit com o sudo.

Alguém pode dar um exemplo real?

Expliquei claramente por que essa pergunta não é duplicada. Não há resposta específica para o gedit para a pergunta vinculada.

E é importante explicar por que o amplamente utilizado sudo gedité ruim, ou não realmente, etc.

Pilot6
fonte
2
Sempre usei com sudo, nunca tive um problema. Boa pergunta.
Dario Salvati
1
@ Wilf, o nano gosta de escrever ~ / .nano_history que, se você executá-lo com o sudo, faz com que o arquivo seja de propriedade do root, portanto, quando você executa o nano sem o sudo, reclama que não pode acessar o arquivo. Um simples sudo chowncorrige isso.
Psusi
1
No que diz respeito ao rc.local, esse é um script em nível de execução, ele deve pertencer ao root, portanto o sudo não tem efeito nele. Experimente com ~ / .bashrc. Eu não acho que o shell aceitará esse arquivo se ele pertence ao root e deve regredir para as configurações padrão. Mas isso é apenas uma sugestão. Volto amanhã, veja como essa pergunta é #
Sergiy Kolodyazhnyy 5/15
1
Para a maioria dos editores, não é a abertura, está pressionando SALVAR. A maioria dos editros também salva as configurações em algum lugar; portanto, se você modificar as configurações, elas serão atualizadas.
Wilf
2
Pelo que vale, apenas edito no local para usá-lo -Hquando o vejo.
muru 6/06/2015

Respostas:

11

Tanto quanto sudo gedit, nada de terrível, apenas práticas ruins, especialmente nos últimos tempos. Quanto mais difícil seria sugerir sudo -H gedit?

-H,--set-home Solicite que a política de segurança defina a variável de ambiente HOME para o diretório inicial especificado pela entrada do banco de dados de senha do usuário de destino. Dependendo da política, esse pode ser o comportamento padrão.

O que acontece?

Você recebe alguns arquivos de propriedade raiz na sua pasta pessoal. Um ( recently-used.xbel) provavelmente retornará à propriedade do usuário. Isso pode acontecer quando um arquivo é excluído e recriado. Para ver o que sudo geditmudou, execute find ~ -user root -group roote veja o que é retornado. Por padrão, isso deve ser nada.

Com esse comando, você poderá ver alguns arquivos pertencentes ao root. Um seria um novo .file, .gvfse mais cedo ou mais tarde uma propriedade de raiz ~/.cache/dconfe o mencionado acima recently-used.xbel.

Portanto, nada de 'o céu está falhando', mas ainda assim. Agora, houve relatos de que o uso continuado causa outros problemas, mas não reivindicamos o que não vejo aqui.

Observe também que a partir da 13.10 a sudo geditusará a configuração do gedit do usuário em vez da configuração do gedit do root. Novamente, apenas uma prática ruim; por que continuar fazendo isso ou sugerir que outros o façam?

doug
fonte
1
Às vezes, agora também aproveito a oportunidade para mostrar aos usuários como usar o nano, pois é fácil e, na maioria das vezes, pode suplantar o gedit. Existem alguns casos em que o gedit ainda é melhor que o nano, mesmo para aqueles que sabem usar. Também sudo gedit pode levar a sudo nautilus que provavelmente é pior .. (Aqui eu tenho um pkexec habilitado gedit, mas isso é além do escopo desta discussão
Doug
@wjandrea, soa bem, editado
doug
12

Bem, talvez seja uma fantasia, mas há várias pessoas dizendo a mesma coisa:

  • Por que devo usar o gksudo para aplicativos Gtk em vez do sudo?

    Há outros momentos, no entanto, em que os efeitos colaterais podem ser tão leves quanto as extensões do Firefox que não aderem ou tão extremas quanto a impossibilidade de efetuar logon porque as permissões da sua autoridade .ICE foram alteradas.

  • Por que os usuários nunca devem usar o sudo normal para 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 diretório inicial, mesmo que o programa esteja sendo executado como root. Conseqüentemente, o gedit gravará os arquivos de configuração como root no diretório inicial. Às vezes, isso resulta em arquivos de configuração pertencentes ao root e, portanto, inacessíveis a você (quando você executa o programa posteriormente como você e não como root).

  • Como executar um programa GUI como um usuário diferente (Debian)?

    Primeiramente, não use sudo ou su para alterar os usuários para executar um processo gráfico, ou você pode ter problemas na linha (~ / .ICEautoridade de alteração de proprietário é um problema notável). Em vez disso, crie um atalho que use o seguinte comando:

  • Executando o Sudo graficamente

    Bem, para ser perfeitamente honesto, na maioria das vezes não é. Para muitos aplicativos, você pode executá-los de maneira inadequada - usando o sudo para aplicativos gráficos e sem efeitos colaterais adversos.

    ...

    Esses erros ocorrem porque, algumas vezes, ao sudoiniciar um aplicativo, ele é iniciado com privilégios de root, mas usa o arquivo de configuração do usuário.

    Esse arquivo de mensagens também pode ser do seu interesse.

Então, vamos testá-lo.

2 novas caixas virtuais. Ubuntu 14.04. Nunca execute 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

É o mesmo (ou pelo menos muito semelhante) para as duas caixas virtuais. Enquanto o Firefox estava em execução, 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, .ICEauthorityestá bem! Contudo...

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/) pertencem à raiz ( .., .dbuse .mozilla). É o mesmo (ou pelo menos muito semelhante) para as duas caixas virtuais.

Então, isso importa. Eu não tinha certeza, então executei 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 feio:

insira a descrição da imagem aqui

Para obter a saída completa do terminal (incluindo o tagarela do firefox), veja estas duas caixas de pasta, aqui e aqui .

Eu ainda posso executar o Firefox como root a propósito. 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

Isso foi porque eu carreguei uma imagem no imgur.com? Não tenho certeza.

Como eu consertei isso? chown. Eu não entendo, mas a 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:

tim@Hairy14VB:~$ ls -la | grep root
drwxr-xr-x  4 root root  4096 Jun  3 19:46 ..

E é o mesmo no meu computador atual. Ah, e na minha caixa virtual do Kubuntu:

tim@Hairy14VB:~$ ls -la | grep root
drwxr-xr-x  3 root root  4096 May 16 14:10 ..

No qual eu nunca executei um comando sudo. Então está tudo bem. Apenas não execute sudoem um aplicativo GUI.

Teste final: execute-o com -Hos -isinalizadores e:

sudo -H firefox

e

sudo -i firefox

E boas notícias! Ainda assim, a única "coisa" raiz é ... E eu posso correr firefoxsem root.


O OP quer que eu fale sobre o Gedit.

Eu corri

sudo gedit

Em seguida, instalou 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 eu não consigo nem ver a propriedade do mesmo, .gvfsentã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 sudo geditaltera um arquivo no meu diretório pessoal para root.

Ainda consigo abrir o gedit, mas desta vez pego 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 ( ~.local/share/recently-used.xbel) que foi alterado. Acho que esta é a lista de arquivos usados ​​recentemente e (suposição) agora não tenho mais minha lista de arquivos usados ​​recentemente:

Deve haver um arquivo chamado output2.txt.save2. Meus pronomes são He / Him

Tim
fonte
1
Você escreveu tudo, menos a resposta para a pergunta. Apenas dê um caso de teste com o gedit. Devo sinalizar como "não uma resposta"? Ou "muito má qualidade", embora longo)))?
Pilot6
5
@ Pilot6 - na questão Can anyone give an example how to prove it ..... Can anyone give a real example?- e isso vincula coisas anteriores e dá um exemplo do que pode acontecer com o firefox como root - Devo sinalizar seu comentário 'não construtivo', pois não consigo achar 'estranhamente mal-humorado'? ser bom venha :)
Wilf
1
Ah, por favor, não use, ls -la|grep rootmas find . -uid 0oufind . -user root
solsTiCe
1
@ Pilot6 ok, eu editei para incluir algumas coisas sobre o gedit. Eu não acho que isso acrescenta nada para a minha resposta, mas parece que você quer assim ...
Tim
4
As citações e os exemplos detalhados tornam isso super útil! Estou feliz por você ter adicionado o Gedit, mas concordo com o @Wilf de que ele era bom mesmo antes. Não são apenas exemplos do Gedit que eu (deliberadamente) não incluí . Se as pessoas quiserem, posso adicionar uma breve nota sobre o "às vezes", mas realmente acho que essa pergunta é separada e votei para reabrir . Se reabrirmos isso, tentarei adicionar outra resposta com mais detalhes sobre o Gedit, mas essa ainda será a resposta mais útil para a maioria das pessoas.
Eliah Kagan