Soluzione 1:
Più specificamente, lo standard POSIX ("Portable Operating System Interface for Unix") (IEEE Standard 1003.1 2008) afferma:
3.437 Nome utente
Una stringa utilizzata per identificare un utente; vedere anche Database utenti. Per essere portabile su sistemi conformi a POSIX.1-2017, il valore è composto da caratteri del set di caratteri del nome file portabile. Il
<hyphen-minus>
carattere non deve essere utilizzato come primo carattere di un nome utente portatile.
3.282 Set di caratteri del nome file portatile
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 . _ -
Qualsiasi nome utente conforme a questo standard è conforme a POSIX e dovrebbe essere sicuro.
Soluzione 2:
Il mio consiglio è di seguire lo standard consigliato dal NAME_REGEX predefinito. In realtà puoi inserire quasi qualsiasi cosa in un nome utente sotto *NIX, ma potresti riscontrare strani problemi con il codice della libreria che fa supposizioni. Caso in questione:
http://blog.endpoint.com/2008/08/on-valid-unix-usernames-and-ones-sanity.html
La mia domanda per te:hai molti nomi di dominio che si scontrerebbero tra loro se eliminassi la punteggiatura insolita? Ad esempio, hai entrambi i nomi di dominio "QUALITY-ASSURANCE" e QUALITYASSURANCE"? In caso contrario, potresti semplicemente adottare una politica che prevede l'eliminazione dei caratteri insoliti e l'utilizzo di ciò che rimane come nome utente.
Inoltre, puoi utilizzare la sezione "nome reale" del campo GECOS nelle informazioni di /etc/passwd per memorizzare il nome di dominio originale, non modificato, e gli script potrebbero estrarlo abbastanza facilmente.