Por que os sublinhados não são permitidos em nomes de usuários em algumas distros (Debian, por exemplo)?

8

Então por que o sublinhado foi considerado um caractere ruim para nomes de usuários no Debian (e possivelmente outras distribuições) enquanto foi removido do NAME_REGEX de adduser no Ubuntu?

    
por Sam 27.01.2011 / 12:11

3 respostas

7

especifica o uso de um portátil set 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.

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.

    
por 27.01.2011 / 13:33
3

Uma pergunta semelhante já foi respondida aqui

Teoricamente, você pode usar quase qualquer caractere ASCII que quiser como nome de usuário, mas, para evitar algum tipo de bugs, como o mencionado no artigo acima, você pode definir essa expressão regular que evita certos problemas.

Espero que ajude ...

    
por 27.01.2011 / 13:11
0

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?

    
por 27.01.2011 / 12:27

Tags