su ou sudo mantendo / removendo certas variáveis de ambiente

1

Eu gostaria de poder fazer login como outro usuário e manter a maioria, mas não todo o meu ambiente. Especificamente, gostaria de definir $HOME para o valor correto para o novo usuário, mas mantenha provavelmente todo o resto. Se eu usar sudo -E , todo o meu ambiente permanecerá o mesmo, incluindo $HOME . Se eu usar sudo -E su , isso quase funciona, mas por alguma razão não preserva $ZDOTDIR , que é especificamente uma das variáveis que eu quero manter.

Alguém sabe uma solução conveniente para isso, ou por que uma das poucas variáveis que é apagada com sudo -E su é $ZDOTDIR ? Obrigado.

    
por William Hatch 01.03.2015 / 05:40

1 resposta

1

Como as configurações de sudoers variam entre sistemas operacionais, é difícil prever o que funcionaria para você.

sudo -EH o parâmetro H tenta definir $ HOME para o valor do usuário alvo, mas isso não preservaria $ ZDOTDIR.

Ou adicione a linha abaixo ao final dos sudoers usando visudo. Isso diz ao sudo para manter as variáveis listadas a partir do ambiente atual. Nesse caso, você usaria sudo sem comutadores.

Defaults        env_keep += "ZDOTDIR OTHERVAR1 OTHERVAR2 [...]"
    
por 01.03.2015 / 07:39