Entonces, ¿por qué se ha considerado el guión bajo como un mal carácter para los nombres de usuario en Debian (y posiblemente otras distribuciones) mientras se ha eliminado de adduser
NAME_REGEX en Ubuntu?
POSIX especifica el uso de un conjunto portátil de caracteres para los nombres de usuarios y grupos.
_ - .
son caracteres permitidos, NAME_REGEX
comprueba si el nombre de usuario solo contiene caracteres especificados. Los desarrolladores de distribución definen, si se deniegan más caracteres. Ubuntu, por ejemplo, prohíbe el uso de .
forma predeterminada.
Agregar esta restricción evita la interferencia con otras herramientas del sistema, que pueden interpretar caracteres especiales. Piense en la variable $PATH
, cuando tenga un usuario con el nombre my:user
y agregue su directorio de inicio a $PATH
:
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:
/home/my:user/bin
Los directorios /home/my
y user/bin
(probablemente) no existen. Además, /etc/passwd
tendría dos :
más de lo necesario.
Editar:
los adduser
usos /^[_.A-Za-z0-9][-\@_.A-Za-z0-9]*\$?$/
de Debian (versión 3.110) para verificar nombres de usuario, _
están permitidos siempre que NAME_REGEX
no lo prohíban.
_
no:
..._
está permitido por defecto, ver la edición. Di un ejemplo del personaje prohibido:
para mostrar los posibles problemas con él.Una pregunta similar ya ha sido respondida aquí
Teóricamente, puede usar casi cualquier carácter ASCII que desee como nombre de usuario, pero, para evitar algún tipo de error, como el mencionado en el artículo anterior, puede establecer esa expresión regular que evite ciertos problemas.
fuente
:
una nueva línea o un carácter nulo en un nombre de usuario incluso si edita/etc/passwd
(o la mayoría de las demás bases de datos de usuarios) a mano.Estoy usando Debian Squeeze y he logrado crear un usuario con subrayado,
adduser user_1
. ¿Por qué dices que no están permitidos?fuente
NAME_REGEX
es el nombre permitido regex, no el nombre no permitido regex ... es decir, si un nombre coincide,NAME_REGEX
entonces es válido.NAME_REGEX
en/etc/adduser.conf
, y el incorporado en la prohíbe por defecto_
.