
Estou usando o Ubuntu-10.04 e o bash. Quero entrar no root e alterar meu prompt para caracteres sublinhados em vermelho para refletir que estou no root. No prompt do bash, se eu digitar:
$ sudo bash
então eu entro no root, mas meu prompt não muda. Em /root/.bashrc
eu tenho:
RED="\[\033[0;31m\]"
UNDERLINE="\[\033[4m\]"
DEFAULT="\[\033[0m\]"
export PS1=$RED$UNDERLINE'\u@\h:\w\$'$DEFAULT' '
no entanto, este arquivo não está sendo lido. Para que seja lido tenho que digitar no prompt:
# . /root/.bashrc
o que eu não quero ter que fazer. Como faço para configurá-lo para que, quando eu entrar no root, /root/.bashrc
ele seja executado automaticamente?
Responder1
Primeiro, é
sudo root
mesmo um comando válido? (sudo -s
ousudo -i
seria.)Eu prefiro editar meuter
.bashrc
em vez de root. Você pode ter, por exemplo,if (( $UID == 0 )); then PS1="$RED$UNDERLINE" else PS1="$GREEN" fi PS1="$PS1\u@\h:\w\$$DEFAULT "
Você pode usar
sudo -i
para fazer com que os rcfiles do root sejam lidos em vez dos seus.
Responder2
Parece que o sudo está configurado para usar as variáveis de ambiente dos usuários originais e não as novas.
Você define env_reset and env_keep options in /etc/sudoers
ou redefine explicitamente as variáveis de ambiente para as do usuário de destino com -H
:
sudo -H -u root