Je veux créer des comptes d'utilisateurs nommés d'après un nom de domaine. adduser se plaint que les noms d'utilisateur doivent correspondre à l' NAME_REGEX
expression régulière.
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.
Je peux ajouter les utilisateurs utilisant useradd sans se plaindre. Y a-t-il une raison pour laquelle je ne devrais pas modifier l'expression régulière afin de permettre .
, -
et _
?
Quels personnages vont causer des problèmes et ne devraient pas être autorisés dans les noms d'utilisateurs?
C'est la valeur par défaut NAME_REGEX
.
NAME_REGEX="^[a-z][-a-z0-9]*\$"
linux
user-accounts
Ed Haber
la source
la source
NAME_REGEX
accepte déjà-
tant que ce n'est pas le premier caractère..
? Considérons un utilisateur nommé.
ou..
. Ensuite,rm
cet utilisateur nommé..
.rm
n'est pas la commande à utiliser lors de la suppression d'un utilisateur. Je conviens que ce..
n'est pas un nom raisonnable pour des raisons similaires, maisrm
n'en fait pas partie.Réponses:
Je vous conseille de suivre la norme recommandée par défaut par NAME_REGEX. Vous pouvez réellement mettre presque n'importe quoi dans un nom d'utilisateur sous * NIX, mais vous pouvez rencontrer des problèmes étranges avec le code de bibliothèque qui pose des hypothèses. Exemple:
http://blog.endpoint.com/2008/08/on-valid-unix-usernames-and-ones-sanity.html
Ma question est la suivante: avez-vous beaucoup de noms de domaine qui se heurteraient si vous supprimiez la ponctuation inhabituelle? Par exemple, avez-vous les noms de domaine "QUALITY-ASSURANCE" et QUALITYASSURANCE "? Dans le cas contraire, vous pouvez simplement adopter une politique consistant à supprimer les caractères inhabituels et à utiliser ce qui reste en tant que nom d'utilisateur.
Vous pouvez également utiliser la section "nom réel" du champ GECOS dans les informations / etc / passwd pour stocker le nom domaain d'origine non modifié et les scripts peuvent l'extraire assez facilement.
la source
Plus spécifiquement, la norme POSIX ("Interface de système d'exploitation portable pour Unix") (norme IEEE 1003.1 2008) stipule :
3.431 Nom d'utilisateur
3.278 Jeu de caractères de nom de fichier portable
Tout nom d'utilisateur conforme à cette norme est conforme à POSIX et doit être sûr.
la source
ALL UPPERCASE CHARACTERS
.)On peut déduire de NAME_REGEX que tout, sauf un à z en majuscules et minuscules et le nombre compris entre 0 et 9, serait mauvais.
la source
-
est également accepté (mais pas en tant que premier caractère.) Notez également que, par défaut, les majuscules ne sont pas acceptées (il n'y a pas d'g
indicateur, niA-Z
inclus dans l'NAME_REGEX
expression régulière fournie par l'OP.NAME_REGEX="^[a-z][-a-z0-9]*\$"