¿Hay alguna manera de ver la variable de entorno de otro usuario? Quiero hacer eso como root, así que supongo que los permisos no serán un problema.
Para el usuario mismo, uso echo $PATHo set | grep PATH(o setcuando no recuerdo el nombre de la variable). ¿Cuál sería una instrucción similar para otro usuario?
Por lo que vale, estoy en Ubuntu Server 13.04.

echo $MAIL, pero pensé que podría haber un acceso directo..forward)? Los usuarios a menudo establecen algunas variables en sus.profileu otros archivos de configuración, y no hay forma de enumerarlas todas de manera confiable. De nuevo, ¿qué problema estás tratando de resolver?Respuestas:
Otra opción es usar
env. Ejecute esto comoroot:Por ejemplo
fuente
HOME=/root. Ese es el directorio inicial de la raíz, pero es no mi directorio estándar. Si desea conocer el entorno que obtendría un usuario en particular cuando inicie sesión, debe ejecutar los scripts de inicio del shell de inicio de sesión de este usuario en particular (y recuerde que su shell de inicio de sesión puede ser diferente de su shell de inicio de sesión).rootinicia sesión desde el administrador de inicio de sesión? Funciona bien si me dejo caer en un tty e inicio sesión comoroot.env | grep HOMEy obtengoHOME=/home/uwe; Ejecutosuy luego una vez másenv | grep HOMEy obtengoHOME=/root, luego corrosudo -u uwe env | grep HOMEy sigo obteniendoHOME=/root.xtermlugar de mi terminal habitual) y obtuve el resultado esperado.sudoestablece la variable INICIO solo si la-Hopción está presente o si la entrada correspondiente/etc/sudoersestá establecida. Parece que nuestros archivos sudoers difieren. De todos modos, probablemente sea una buena idea usar-Haquí, y posiblemente también-i.Para un usuario, puede hacer lo siguiente:
Lista $ PATH de todos los usuarios:
@Camil Staps
. ~/.profileEs un truco que aprendo de mi persona favorita, Peteris Krumins. Explicó el truco aquí . Tal vez la versión bash posterior tenía construcción con opciónNON_INTERACTIVE_LOGIN_SHELLS.fuente
$PATHtambién funciona sin la. ~/.profile;parte: ¿para qué sirve?$PATHincluso sin abastecimiento~/.profile, pero es casi seguro que no sea el que deseas (= el valor que este usuario vería cuando iniciara sesión). Incluso el abastecimiento~/.profileno es totalmente confiable, ya que el usuario puede usar un shell cuyo archivo de inicio es diferente~/.profile.~/.profileabsoluto. Pero en cualquier caso, el comportamiento desudose puede configurar bastante en/etc/sudoers(vea mi discusión con terdon), por lo que cuando nuestros sistemas se comportan de manera diferente, probablemente sea causado por diferencias en los archivos de configuración.desde la raíz puede
su -al usuario y luego grep la variable de entorno que desea ver:su - <username> -c 'echo $PATH'fuente
runuser -l <username> -c "env | grep <var>" | cut -d '=' -f 2funciona bien para mí. Si no es root, necesita prefijar el comando consudo.