Então, por que o sublinhado foi considerado um caractere ruim para nomes de usuário no Debian (e possivelmente outras distribuições) enquanto foi removido do adduser
NAME_REGEX do Ubuntu no Ubuntu?
POSIX especifica o uso de um conjunto portátil de caracteres para nomes de usuários e grupos.
_ - .
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.
A adição dessa restrição evita interferências com outras ferramentas do sistema, que podem interpretar caracteres especiais. Pense na variável $PATH
quando tiver um usuário com o nome my:user
e adicione seu diretório inicial 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 :
mais dois do que o necessário.
Edit: O
Debian adduser
(versão 3.110) usa /^[_.A-Za-z0-9][-\@_.A-Za-z0-9]*\$?$/
para verificar nomes de usuário, _
é permitido desde NAME_REGEX
que não o proíba.
_
não:
..._
é permitido por padrão, consulte a edição. Dei um exemplo do personagem proibido:
para mostrar os possíveis problemas com ele.Uma pergunta semelhante já foi respondida aqui
Teoricamente, você pode usar quase qualquer caractere ASCII desejado como nome de usuário, mas, para evitar algum tipo de erro, como o mencionado no artigo acima, é possível definir a expressão regular que evita determinados problemas.
fonte
:
uma nova linha ou um caractere nulo em um nome de usuário, mesmo se editar/etc/passwd
(ou na maioria dos outros bancos de dados de usuários) manualmente.Estou usando o Debian Squeeze e consegui criar um usuário com sublinhado
adduser user_1
,. Por que você diz que eles não são permitidos?fonte
NAME_REGEX
é o nome permitido regex, não o nome não permitido regex ... ou seja, se um nome corresponderNAME_REGEX
, será válido.NAME_REGEX
em/etc/adduser.conf
, e as built-in proíbe padrão_
.