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 adduserNAME_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_REGEXcomprueba 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:usery 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/myy user/bin(probablemente) no existen. Además, /etc/passwdtendría dos :más de lo necesario.
Editar:
los adduserusos /^[_.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_REGEXno 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_REGEXes el nombre permitido regex, no el nombre no permitido regex ... es decir, si un nombre coincide,NAME_REGEXentonces es válido.NAME_REGEXen/etc/adduser.conf, y el incorporado en la prohíbe por defecto_.