Solución 1:
Más específicamente, el estándar POSIX ("Portable Operating System Interface for Unix") (Estándar IEEE 1003.1 2008) establece:
3.437 Nombre de usuario
Una cadena que se utiliza para identificar a un usuario; véase también Base de datos de usuarios. Para que sea portátil entre sistemas que cumplan con POSIX.1-2017, el valor se compone de caracteres del conjunto de caracteres del nombre de archivo portátil. El <hyphen-minus>
carácter no se debe utilizar como el primer carácter de un nombre de usuario portátil.
3.282 Conjunto 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 es compatible con POSIX y debe ser seguro.
Solución 2:
Mi consejo para usted es que siga el estándar recomendado por NAME_REGEX predeterminado. En realidad, puede poner casi cualquier cosa en un nombre de usuario bajo *NIX, pero puede encontrar problemas extraños con el código de la biblioteca que hace suposiciones. Caso en cuestión:
http://blog.endpoint.com/2008/08/on-valid-unix-usernames-and-ones-sanity.html
Mi pregunta para usted:¿tiene muchos nombres de dominio que chocarían entre sí si eliminara la puntuación inusual? Por ejemplo, ¿tiene tanto "GARANTÍA DE CALIDAD" como "GARANTÍA DE CALIDAD" como nombres de dominio? De lo contrario, simplemente podría adoptar una política de eliminar los caracteres inusuales y usar lo que queda como nombre de usuario.
Además, podría usar la sección "nombre real" del campo GECOS en la información de /etc/passwd para almacenar el nombre de dominio original sin modificar, y los scripts podrían extraerlo con bastante facilidad.