Réponses:
POSIX spécifie l'utilisation d'un ensemble portable de caractères pour les noms d'utilisateur et de groupe.
_ - .
sont des caractères autorisés, NAME_REGEX
vérifie si le nom d'utilisateur ne contient que des caractères spécifiés. Les développeurs de distribution définissent, si d'autres caractères sont refusés. Ubuntu, par exemple, interdit l'utilisation de .
par défaut.
L'ajout de cette restriction évite les interférences avec d'autres outils système, qui peuvent interpréter des caractères spéciaux. Pensez à la variable $PATH
, lorsque vous avez un utilisateur avec le nom my:user
et ajoutez votre répertoire personnel à $PATH
:
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:
/home/my:user/bin
Les répertoires /home/my
et user/bin
n'existeraient (probablement) pas. En outre, /etc/passwd
aurait deux de :
plus que nécessaire.
Edit: les utilisations de
Debian adduser
(version 3.110) /^[_.A-Za-z0-9][-\@_.A-Za-z0-9]*\$?$/
pour vérifier les noms d'utilisateur _
sont autorisées tant que NAME_REGEX
cela ne l'interdit pas.
_
est autorisé par défaut, voir la modification. J'ai donné un exemple du personnage interdit :
pour montrer les problèmes possibles avec lui.
Une question similaire a déjà été répondue ici
Théoriquement, vous pouvez utiliser presque n'importe quel caractère ASCII que vous souhaitez comme nom d'utilisateur, mais, pour éviter certains types de bogues, comme celui mentionné dans l'article ci-dessus, vous pouvez définir cette expression régulière qui évite certains problèmes.
:
une nouvelle ligne ou un caractère nul dans un nom d'utilisateur même si vous modifiez /etc/passwd
(ou la plupart des autres bases de données utilisateur) à la main.
J'utilise Debian squeeze et je réussi à créer un utilisateur avec underscore, adduser user_1
. Pourquoi dites-vous qu'ils ne sont pas autorisés?
NAME_REGEX
est le nom autorisé regex, pas le nom non autorisé regex ... c'est-à-dire si un nom correspond NAME_REGEX
alors il est valide.
NAME_REGEX
dans /etc/adduser.conf
, et par défaut dans défend intégré _
.
_
ne pas:
...