Eu tenho o RHEL 7 e quero definir a variável de ambiente para o sudo.
Eu executei sudo su
para mudar para o usuário root e adicionei export
ao seu .bashrc
arquivo. Então eu os recarreguei com source
.
Agora, quando executo env
no root
modo, ele possui variável de ambiente. No entanto, quando eu saio e executo, sudo env
isso não acontece.
Porque isso está acontecendo?
Responder1
sudo
executa programas em seu próprio ambiente limitado (consulte a seção AMBIENTE do manual man sudo
). Ele não é usado 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 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 sudoers
para 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