50 votos

¿Qué caracteres debería usar o no usar en los nombres de usuario en Linux?

Quiero crear cuentas de usuario con nombre de dominio. adduser se queja de que los nombres de usuario deben coincidir con el NAME_REGEX expresión regular.

adduser: Please enter a username matching the regular expression configured
via the NAME_REGEX configuration variable.  Use the `--force-badname'
option to relax this check or reconfigure NAME_REGEX.

Puedo añadir a los usuarios usando useradd sin queja alguna. ¿Hay alguna razón por la que no debería modificar la expresión regular para permitir . , - y _ ?

¿Qué personajes causarán problemas y no deberían estar permitidos en los nombres de usuario?

Este es el valor por defecto NAME_REGEX .

NAME_REGEX="^[a-z][-a-z0-9]*\$"

2 votos

Tenga en cuenta que NAME_REGEX ya acepta - siempre que no sea el primer carácter.

0 votos

¿Por qué no añadir . ? Considere un usuario llamado . o .. . Entonces, rm ese usuario llamado .. .

2 votos

@Jon eso no es un problema ya que rm no es el comando que se debe utilizar para eliminar un usuario. Estoy de acuerdo .. no es un nombre sensato por razones similares, pero rm no es uno de ellos.

33voto

HopelessN00b Puntos 38607

Más específicamente, el El estándar POSIX ("Portable Operating System Interface for Unix") (Estándar IEEE 1003.1 2008) establece :


3.431 Nombre de usuario

Una cadena que se utiliza para identificar a un usuario; véase también Base de datos de usuarios. Para ser portátil a través de sistemas conformes a POSIX.1-2008, el valor se compone de caracteres del conjunto de caracteres del nombre de archivo portátil. El <hyphen> no debe utilizarse como el primer carácter de un nombre de usuario portátil.


3.278 Juego de caracteres de nombre de archivo portátil

The set of characters from which portable filenames are constructed.

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
a b c d e f g h i j k l m n o p q r s t u v w x y z
0 1 2 3 4 5 6 7 8 9 . _ -

Cualquier nombre de usuario que cumpla con este estándar cumple con el POSIX, y debería ser seguro.

7 votos

Aunque esto es cierto, generalmente está mal visto tener caracteres en mayúsculas en los nombres de usuario: la gente ya tiene suficientes problemas con las contraseñas que distinguen mayúsculas y minúsculas, y hacer que tengan que recordar las mayúsculas y minúsculas en sus nombres de usuario es darles una patada en el trasero. (Excepción: Cuando la convención de tu nombre de usuario es ALL UPPERCASE CHARACTERS .)

2 votos

A partir de POSIX.1-2017, esas definiciones se han movido un poco. 3.431 Nombre de usuario es ahora 3.437 Nombre de usuario y el juego de caracteres del nombre de archivo portátil 3.278 es ahora 3.282 Juego de caracteres del nombre de archivo portátil

2 votos

@voretaq7 Lo que me parece legítimo es conservar en un nombre de usuario, pero hacer que los inicios de sesión no distingan entre mayúsculas y minúsculas. Así, un nombre de usuario podría ser CatInTheHat, pero iniciar sesión especificando catinthehat o catintheHAT o lo que sea.

29voto

dthrasher Puntos 10641

Mi consejo para ti es que sigas el estándar recomendado por el NOMBRE_REGEX por defecto. En realidad puedes poner casi cualquier cosa en un nombre de usuario bajo *NIX pero puedes encontrar problemas extraños con el código de la biblioteca que hace suposiciones. Un ejemplo de ello:

http://blog.endpoint.com/2008/08/on-valid-unix-usernames-and-ones-sanity.html

Mi pregunta es: ¿tiene muchos nombres de dominio que colisionarían entre sí si quitara la puntuación inusual? Por ejemplo, ¿tiene como nombres de dominio "CALIDAD-ASEGURO" y "CALIDAD-ASEGURO"? Si no es así, podría adoptar simplemente una política de eliminación de los caracteres inusuales y utilizar lo que queda como nombre de usuario.

Además, podrías usar la sección de "nombre real" del El campo del GECOS en la información de /etc/passwd para almacenar el nombre de dominio original, sin modificar, y scripts podría extraerlo bastante fácilmente.

0 votos

Lo que me preocupa es el hecho de encontrarme con errores inesperados y aleatorios. Puedo eliminar fácilmente los puntos y seguir sin que se produzcan conflictos de nombres, pero el - podría causar un problema. Sin embargo, es bastante improbable.

0 votos

Así que el sistema debian que estoy utilizando está usando un usuario www-data. Así que parece que - debería estar bien para ser utilizado en los nombres de usuario.

0 votos

En realidad, ¡esa expresión regular permite "-" en los nombres de usuario! La primera letra tiene que ser a-z, pero las siguientes letras de los nombres de usuario pueden ser '-', a-z, o 0-9.

0voto

Jeff Hillman Puntos 3333

Del NOMBRE_REGEX se puede deducir que todo lo que no sea de la a a la z en mayúsculas y minúsculas y el número del 0 al 9 sería malo.

0 votos

La palabra que buscas es "deducido".

1 votos

mira la regex de nuevo, - También hay que tener en cuenta que por defecto no se aceptan las mayúsculas (no hay g ni tampoco A-Z incluido en el NAME_REGEX regex proporcionado por el OP. NAME_REGEX="^[a-z][-a-z0-9]*\$"

1 votos

@SherylHohman En realidad querías decir "no hay i flag...", supongo.

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: