_ - .
são caracteres permitidos, NAME_REGEX
verifica se o nome de usuário contém apenas caracteres especificados. Os desenvolvedores de distribuição definem se outros caracteres forem negados. O Ubuntu, por exemplo, proíbe o uso de .
por padrão.
Adicionar essa restrição evita a interferência com outras ferramentas do sistema, o que pode interpretar caracteres especiais. Pense na variável $PATH
, quando você tiver um usuário com o nome my:user
e adicione seu diretório pessoal a $PATH
:
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:
/home/my:user/bin
Os diretórios /home/my
e user/bin
provavelmente não existiriam. Além disso, /etc/passwd
teria dois :
a mais do que o necessário.
Editar:
O adduser
(versão 3.110) do Debian usa /^[_.A-Za-z0-9][-\@_.A-Za-z0-9]*\$?$/
para verificar nomes de usuários, _
é permitido desde que NAME_REGEX
não o proíba.