Quais são as vantagens do 'sudo' padronizar para manter $ HOME? [fechadas]

3

Esta questão é um efeito colateral de Default owners / permissões de arquivos no diretório inicial do usuário e após uma pesquisa que encontrou este Q & amp; A no Unix e Linux SE .

Quando você usa

sudo command 

apenas um punhado de variáveis de ambiente é preservado, por razões de segurança (embora este ponto aqui seja debatido ... mas bem). É uma questão de padrões de configuração decidir se $HOME é preservado ou não; no Ubuntu, por padrão, ele é preservado e você precisa usar sudo -H para não preservá-lo (e configurá-lo para o usuário de destino).

Verifique (tenha cuidado ao citar, não queremos que $HOME seja resolvido antes de chamar sudo !):

[romano:~] % sudo bash -c 'echo $HOME'
/home/romano
[romano:~] % sudo -H bash -c 'echo $HOME'
/root

Eu posso ver que preservar $HOME tem o possível efeito negativo que você pode usar sudo whatever e se o programa gravar ou modificar arquivos em $HOME (configuração, qualquer que seja) você terminará com um arquivo de propriedade root e subsequentemente não modificável pelo usuário normal.

Isso pode causar estragos especialmente com novos usuários ... nós temos um pouco de loops de login devido a um .Xauthority de propriedade da raiz devido a um (reconhecidamente louco) sudo startx em um emulador de terminal em X, ou não modificável configurações devido a um sudo dconf-editor equivocado e assim por diante.

Do outro lado, não vejo efeitos positivos. Então agora estou correndo com

Defaults        always_set_home

no meu /etc/sudoers (1) , verificando-o:

[romano:~] % sudo bash -c 'echo $HOME'
/root

A pergunta: Quais são os efeitos positivos da preservação de $HOME por padrão, se houver?

Notas de rodapé

(1) Sempre, sempre, edite /etc/sudoers com visudo e com um terminal (melhor um VC) com um shell sudo -i em execução. Você será grato quando cometer algum erro ao se desligar dos poderes do superusuário.

    
por Rmano 11.09.2015 / 19:42

1 resposta

1

Você está correto ao apontar possíveis problemas com sudo e aplicativos que gravam arquivos em $HOME .

A razão para esse comportamento não seria realmente uma escolha consciente do desenvolvedor, mas mais do que não ser realmente necessário para os propósitos pretendidos para os quais sudo foi concebido pela primeira vez: para uso com aplicativos mais simples no estilo unix alguma entrada e retornar alguma saída de uma maneira previsível e, em seguida, retornar. Inicialmente, não teria sido projetado para lidar com aplicativos maiores que são executados de forma interativa e gerenciam seus próprios arquivos.

Como corretamente apontado, sudo -i <command> é bom para qualquer aplicativo que seja interativo (pense no i como interativo , mesmo embora não seja isso que significa. -i tem mais benefícios teóricos sobre -H em que o ambiente do usuário alvo, por exemplo .profile , é lido também.

Há também gksudo <command> para aplicativos interativos gráficos, mas sudo -i <command> funciona bem o suficiente para esses também.

Se você não quiser digitar sudo -i <command> o tempo todo, você pode criar um script / alias, eu acho.

    
por thomasrutter 14.09.2015 / 02:45

Tags