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

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

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

Eu executei sudo supara mudar para o usuário root e adicionei exportao seu .bashrcarquivo. Então eu os recarreguei com source.

Agora, quando executo envno rootmodo, ele possui variável de ambiente. No entanto, quando eu saio e executo, sudo envisso não acontece.

Porque isso está acontecendo?

Responder1

sudoexecuta programas em seu próprio ambiente limitado (consulte a seção AMBIENTE do manual man sudo). Ele não é usado implicitamente bashpara executar programas, portanto ~/.bashrcnã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 alias ou função para fazer qualquer uma dessas coisas por padrão.

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

Responder2

entrada sudoers como abaixo

%DBTEAM     ALL = (oracle) NOPASSWD: ALL

DBTEAM --> Nome do Grupo

oracle -> nome de usuário oracle

mudar para usuário alvo sem variável de ambiente sudo -s -u oracle

mude para usuário alvo com variável de ambiente sudo -i -u oracle

informação relacionada