Eu quero criar contas de usuário nomeadas após um nome de domínio. adduser reclama que os nomes de usuário precisam corresponder à NAME_REGEX
expressão regular.
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.
Eu posso adicionar os usuários usando useradd sem reclamar. Existe uma razão que eu não deveria modificar a expressão regular para permitir .
, -
e _
?
Quais caracteres causarão problemas e não devem ser permitidos nos nomes de usuários?
Esse é o padrão NAME_REGEX
.
NAME_REGEX="^[a-z][-a-z0-9]*\$"
linux
user-accounts
Ed Haber
fonte
fonte
NAME_REGEX
já aceita-
desde que não seja o primeiro caractere..
? Considere um usuário chamado.
ou..
. Então,rm
esse usuário nomeou..
.rm
não é o comando a ser usado ao excluir um usuário. Concordo que..
não é um nome sensato por razões semelhantes, masrm
não é um deles.Respostas:
Meu conselho é que você siga o padrão recomendado pelo NAME_REGEX padrão. Você pode colocar praticamente qualquer coisa em um nome de usuário em * NIX, mas pode encontrar problemas estranhos com o código da biblioteca que faz suposições. Caso em questão:
http://blog.endpoint.com/2008/08/on-valid-unix-usernames-and-ones-sanity.html
Minha pergunta para você: você tem muitos nomes de domínio que colidiriam entre si se você removesse a pontuação incomum? Por exemplo, você tem "QUALITY-ASSURANCE" e QUALITYASSURANCE "como nomes de domínio? Caso contrário, você pode simplesmente adotar uma política de remover caracteres incomuns e usar o que resta como nome de usuário.
Além disso, você pode usar a seção "nome real" do campo GECOS nas informações / etc / passwd para armazenar o nome de domínio original não modificado e os scripts podem extraí-lo com bastante facilidade.
fonte
Mais especificamente, o padrão POSIX ("Interface de sistema operacional portátil para Unix") (IEEE Standard 1003.1 2008) declara :
3.431 Nome de Usuário
3.278 Conjunto de caracteres de nome de arquivo portátil
Qualquer nome de usuário que esteja em conformidade com este padrão é compatível com POSIX e deve ser seguro.
fonte
ALL UPPERCASE CHARACTERS
.)No NAME_REGEX, pode-se deduzir que tudo, exceto a a z, em maiúsculas e minúsculas e o número de 0 a 9, seria ruim.
fonte
-
também é aceito (apenas não como o primeiro caractere). Observe também que, por padrão, maiúsculas não são aceitas (não hág
sinalizador nem estãoA-Z
incluídas noNAME_REGEX
regex fornecido pelo OP.NAME_REGEX="^[a-z][-a-z0-9]*\$"