Altere o perfil do terminal Gnome (Bash) ao mudar para usuários diferentes no mesmo terminal (por exemplo, root)

1

É possível alterar o perfil de um terminal ao trocar de usuário no mesmo terminal?

Na verdade, meu objetivo é mudar o terminal para um perfil que indica para mim que é um terminal como 'root' e que é melhor ter muito cuidado. É claro que sempre tomo muito cuidado com o root e, para melhorar ainda mais, quero alterar o perfil do terminal para que ele mostre claramente que estou usando um terminal que possui privilégios de root.

Portanto, para maior clareza: não quero criar um atalho para abrir um terminal bash com um determinado perfil, estou pensando em algumas edições para .bashrc que detectam uma alteração de usuário e podem alternar para um perfil.

Isso é possível, e se sim, como? ;)

    
por Sander 22.12.2011 / 09:41

4 respostas

1

Você só precisa editar o arquivo .bashrc para root user e adicionar lá o que você precisa para ter esse perfil diferente.

Por exemplo, é comum definir PS1 em .bashrc para fornecer um prompt diferente (um que termina com # em vez de $ ) para informar ao usuário que ele está em um terminal raiz. Na verdade, acho que esse deve ser o comportamento padrão, então você deve ter esse prompt diferente já.

    
por jcollado 22.12.2011 / 10:12
1

Se você estiver usando su , você pode adicionar a opção -, -l or --login ao comando para "Fornecer um ambiente semelhante ao que o usuário esperaria se o usuário efetuasse login diretamente." Tudo de acordo com o su man-page. Essas opções carregarão os novos usuários .bashrc ou qualquer arquivo aplicável ao shell que está sendo carregado.

Por exemplo, su - mudará para a raiz do usuário com as mesmas configurações, como se estivesse logado diretamente como root em um terminal.

Para mais informações, consulte man su .

    
por Zoke 22.12.2011 / 12:25
1

Eu sou preguiçoso, eu uso o mesmo .bashrc para root e meu usuário. A principal razão é que eu gosto de definir um número de aliases (cp -I, etc).

Adicione isto para definir seu prompt:

if [[ $EUID == 0 ]] ; then
    PS1='\[3[01;31m\]\u\[3[01;30m\]@\[3[01;34m\]\h\[3[01;30m\]:\[3[01;34m\]\w\[3[00m\]$' #RED
else
    PS1='\[3[01;32m\]\u\[3[01;30m\]@\[3[01;34m\]\h\[3[01;30m\]:\[3[01;34m\]\w\[3[00m\]$' #Green

   # Comment out the above and uncomment the below for a blue user name.
   # PS1='\[3[01;34m\]\u\[3[01;30m\]@\[3[01;34m\]\h\[3[01;30m\]:\[3[01;34m\]\w\[3[00m\]$' #Blue
fi

O if [[ $EUID == 0 ]] define seu nome de usuário para vermelho se estiver executando como root.

Veja: link para dicas / opções adicionais.

    
por Panther 22.12.2011 / 18:26
1

adicione as seguintes linhas a .bashrc

if [ $(id -u) -eq 0 ];
then # you are root, set red colour prompt
  PS1="\w# "
else # normal
  PS1="\w$ "
fi

você também pode personalizar o PS1 em este

    
por rzjfr 10.02.2013 / 01:33