"Un shell de inicio de sesión interactivo se inicia después de un inicio de sesión exitoso, utilizando / bin / login, leyendo el archivo / etc / passwd. Esta invocación de shell normalmente lee / etc / profile y su equivalente privado ~ / .bash_profile al inicio.
Un shell interactivo sin inicio de sesión normalmente se inicia en la línea de comandos utilizando un programa de shell (por ejemplo, [prompt] $ / bin / bash) o mediante el comando / bin / su. También se inicia un shell interactivo sin inicio de sesión con un programa de terminal como xterm o konsole desde un entorno gráfico. Este tipo de invocación de shell normalmente copia el entorno principal y luego lee el archivo ~ / .bashrc del usuario para obtener instrucciones adicionales de configuración de inicio. "
Http://www.linuxfromscratch.org/blfs/view/6.3/postlfs/profile.html
Por lo tanto, no pondría las variables de entorno en bashrc, porque no solo va en contra de una convención común, sino que también extrañará sus variables de bashrc al invocar un terminal desde un entorno gráfico de escritorio.
En Redhat en el /etc/profile
encontré este comentario:
"Las funciones y los alias de todo el sistema deben ir en / etc / bashrc. Las variables de entorno personal y los programas de inicio deben ir a ~ / .bash_profile. Las funciones y los alias personales deben ir a ~ / .bashrc".
Entonces, si desea establecer variables de entorno en función del usuario, hágalo en el archivo .bash_profile del usuario.
Dirigiéndome a la .bash_profile
leí:
"Variables de entorno personal y programas de inicio.
Los alias y funciones personales deben ir en ~ / .bashrc. Las variables de entorno de todo el sistema y los programas de inicio están en / etc / profile. Los alias y funciones de todo el sistema están en / etc / bashrc ".
Conclusión
Si solo desea que la raíz vea los programas que residen, por ejemplo, en / sbin
agregaría esa ruta al .bash_profile
archivo raíz . Pero si desea que cada usuario pueda ver lo que la raíz programas específicos están instalados en su caja me gustaría poner /sbin
en /etc/.profile
. Ahora cada usuario puede usar la finalización de pestañas para buscar programas específicos de raíz y elevar los derechos si es necesario.
Caso especial: SSH
Cuando se inicia ssh con una línea de comandos, se inicia un shell de inicio de sesión interactivo. Pero en este caso /etc/profile
no se lee. Cuando definí variables de entorno en el .bash_profile
archivo de cada usuario, funcionó con ssh.
~/.profile
es otra opción válida también