Operando um shell bash padrão em um servidor, o prompt PS1 termina com $ para usuários não-root e # para root.
Ou seja:
ubuntu@server:~$ sudo su
root@server:/home/ubuntu#
Por que é isso?
Responder1
Historicamente, o shell Bourne /bin/sh original seria usado $
como prompt normal e #
para o prompt do usuário root (e csh usaria %
). Isso tornou muito fácil saber se você estava executando como superusuário ou não.
#
também é o caractere de comentário, portanto, qualquer pessoa que reinsira dados cegamente não executará nenhum comando real.
Shells mais modernos (por exemplo, ksh, bash) continuam esta distinção $
e #
embora seja menos importante quando você pode definir valores mais complicados, como nome de usuário, nome de host, diretório :-)
Responder2
Tradição.
O padrão POSIX diz(minha ênfase):
PS1
Esta variável é usada para prompts interativos. Historicamente, o "superusuário" recebeu um aviso de
#
. Como os privilégios não precisam ser monolíticos, é difícil definir quais privilégios devem causar o prompt alternativo.No entanto, um usuário suficientemente poderoso deve ser lembrado desse poder por meio de um prompt alternativo.
Veja tambémesta respostapara praticamente a mesma pergunta no fórum SuperUser.