Al operar un shell bash estándar en un servidor, el indicador de PS1 termina de manera predeterminada en $ para usuarios no root y # para root.
ES DECIR:
ubuntu@server:~$ sudo su
root@server:/home/ubuntu#
¿Por qué es esto?
Respuesta1
Históricamente, el shell Bourne /bin/sh original se usaría $
como indicador normal y #
para el indicador del usuario root (y csh usaría %
). Esto hizo que fuera bastante fácil saber si estaba ejecutando como superusuario o no.
#
También es el carácter de comentario, por lo que cualquiera que vuelva a ingresar datos a ciegas no ejecutará ningún comando real.
Los shells más modernos (por ejemplo, ksh, bash) continúan con esta distinción $
y, #
aunque es menos importante, cuando puedes establecer valores más complicados como el nombre de usuario, el nombre de host y el directorio :-)
Respuesta2
Tradición.
El estándar POSIX dice(énfasis mío):
PS1
Esta variable se utiliza para indicaciones interactivas. Históricamente, el "superusuario" ha recibido un mensaje de
#
. Dado que no es necesario que los privilegios sean monolíticos, es difícil definir qué privilegios deben provocar el mensaje alternativo.Sin embargo, a un usuario suficientemente poderoso se le debe recordar ese poder mediante un mensaje alternativo.
Ver tambiénesta respuestaa prácticamente la misma pregunta en el foro SuperUser.