
Configuré un script en mi cuenta no root .bash_profile en mi máquina centos Linux para cambiar mi PS1 después de sudo su, pero debido a que sudo su en realidad es para crear una nueva sesión, el script, por supuesto, se detiene y mi PS1 permanece igual a pesar de que mi .bash_profile dice que lo cambiemos, no hay nada de malo aquí, pero ¿hay algún método para ejecutar un comando (en mi caso, cambiar mi PS1) después de sudo su? Intenté poner el script también en .bashrc y lo mismo.
Respuesta1
En mi opinión, se apila sudo
y su
crea un desastre.
Para mí, la forma más confiable de crear el entorno correcto para root, que incluye la configuración de la RUTA correcta y otras configuraciones de los archivos relevantes /root/
essudo -i
Por favor lea las páginas del manual.man su
yman sudo
porque hay muchas sutilezas con PATH y otras variables de sesión y entorno que se cambian o no de forma predeterminada o mediante interruptores específicos.
Tenga en cuenta la diferencia entre su -
y su
, por ejemplo, el hecho de que normalmente sudo está configurado /etc/sudoers
para suprimir ciertas variables de entorno...
Esta mesa(y el artículo completo) ofrece algunas diferencias de lo que a primera vista parecen ser comandos similares:
corrupted by user's
HOME=/root uses root's PATH env vars
sudo -i Y Y[2] N
sudo -s N Y[2] Y
sudo bash N Y[2] Y
sudo su Y N[1] Y
[1] PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
probably set by /etc/environment
[2] PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/X11R6/bin