Linux, sudo env no tiene variable de entorno mientras que el usuario root sí la tiene

Linux, sudo env no tiene variable de entorno mientras que el usuario root sí la tiene

Tengo RHEL 7 y quiero configurar una variable de entorno para sudo.

Lo ejecuté sudo supara cambiar al usuario root y lo agregué exporta su .bashrcarchivo. Luego los he recargado con source.

Ahora, cuando ejecuto enven rootmodo, tiene una variable de entorno. Sin embargo, cuando salgo y ejecuto, sudo envno es así.

¿Por qué sucede esto?

Respuesta1

sudoejecuta programas en su propio entorno limitado (consulte la sección ENTORNO del manual man sudo). No se utiliza implícitamente bashpara ejecutar programas, por lo que ~/.bashrcno 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 sudoerspara 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

información relacionada