Linux, o sudo env não tem variável de ambiente enquanto o usuário root tem

0

Eu tenho o RHEL 7 e quero definir uma variável de ambiente para o sudo.

Eu executei sudo su para alternar para usuário root e adicionei export ao arquivo .bashrc . Então eu os recarreguei com source .

Agora, quando executo o env no modo root , ele tem uma variável de ambiente. No entanto, quando eu sair e executar sudo env , isso não acontece.

Por que isso está acontecendo?

    
por Mr.D 28.09.2017 / 11:34

1 resposta

1

sudo executa programas em seu próprio ambiente limitado (consulte a seção AMBIENTE do manual man sudo ). Ele não usa implicitamente bash para executar programas, portanto ~/.bashrc não é executado, embora você possa invocá-lo explicitamente:

sudo bash --rcfile=~root/.bashrc -c ProgramAndParameters

Você pode definir uma variável de ambiente na string de execução:

sudo variable=value ProgramAndParameters

Você pode usar um apelido ou função para fazer qualquer um desses por padrão.

Como alternativa, você pode adicionar um arquivo de ambiente a /etc/sudoers (consulte man sudoers para obter mais informações).

    
por 28.09.2017 / 12:48