Tengo RHEL 7 y quiero configurar una variable de entorno para sudo.
Lo ejecuté sudo su
para cambiar al usuario root y lo agregué export
a su .bashrc
archivo. Luego los he recargado con source
.
Ahora, cuando ejecuto env
en root
modo, tiene una variable de entorno. Sin embargo, cuando salgo y ejecuto, sudo env
no es así.
¿Por qué sucede esto?
Respuesta1
sudo
ejecuta programas en su propio entorno limitado (consulte la sección ENTORNO del manual man sudo
). No se utiliza implícitamente bash
para ejecutar programas, por lo que ~/.bashrc
no se ejecuta, aunque puedes invocarlo explícitamente:
sudo bash --rcfile=~root/.bashrc -c ProgramAndParameters
Puede configurar una variable de entorno en la cadena de ejecución:
sudo variable=value ProgramAndParameters
Puede utilizar un alias o una función para realizar cualquiera de estas acciones de forma predeterminada.
Alternativamente, puede agregar un archivo de entorno /etc/sudoers
(consulte man sudoers
para obtener más información).
Respuesta2
entrada de sudoers como se muestra a continuación
%DBTEAM ALL = (oracle) NOPASSWD: ALL
DBTEAM --> Nombre del grupo
Oracle --> nombre de usuario de Oracle
cambiar al usuario de destino sin variable de entorno
sudo -s -u oracle
cambiar al usuario objetivo con variable de entorno
sudo -i -u oracle