Tengo un usuario, por ejemplo user1
, que tiene modificaciones a su .bash_profile
, uno de ellos el cambio de la PATH
, por ejemplo: export PATH=/some/place:$PATH
. Este cambio funciona bien si inicio sesión como user1
o hago un su - user1
.
Pero si trato de ejecutar un comando a través de su
como root
, por ejemplo:
su -c test.sh oracle
(prueba contiene echo $PATH
)
No parece tener el modificado PATH
(o la raíz PATH
, para el caso). También he intentado copiar .bash_profile
a .profile
, en vano.
¿Por qué está pasando esto?
rhel
environment-variables
su
Usuario nulo
fuente
fuente
su
Respuestas:
Usar
su
sin-l
o-
comienzabash
como un shell interactivo, pero sin inicio de sesión, que no lee ninguno de los archivos que especificó. Utilice el-l
o-
la opción o poner la configuración relevante en/root/.bashrc
.Resumen rápido de archivos de configuración:
-l
/--login
) es el/etc/profile
primero, y luego el primero que encuentra de:~/.bash_profile
,~/.bash_login
, y~/.profile
.-i
) lee/etc/bash.bashrc
y~/.bashrc
, en ese orden (a menos que se use la--rcfile
opción y le indique que busque en otro lado).-l
o-i
, leen el archivo especificado en laBASH_ENV
variable de entorno.sh
un shell de inicio de sesión, se leerá/etc/profile
y~/.profile
, en ese orden.sh
un no inicio de sesión interactivo, lee el archivo especificado enENV
.fuente
Bash se comporta de manera diferente dependiendo de si cree que es un shell de inicio de sesión, es decir, el primer shell que se ejecuta cuando inicia sesión en un sistema. Solo se lee
.bash_profile
si es un shell de inicio de sesión. Si coloca elPATH
código de.bashrc
cambio en su lugar, se ejecutará para todos los shells de bash interactivos, no solo para los shells de inicio de sesión.fuente
Si usa el entorno Gnome en Scientific Linux 6 (o presumiblemente RHEL 6), inicie un terminal. Vaya a
Edit
->Profile Preferences
->"Title and Command"
pestaña. Asegúrese de que la casilla de verificación "Ejecutar comando como un shell de inicio de sesión" esté marcada. Descubrí que la aplicación de terminal Gnome está ignorando mi a.bash_profile
menos que haga esto.fuente