Quais são as desvantagens de ter um ponto em um nome de usuário?

25

Um aluno acabou de perguntar qual seria a desvantagem de ter um ponto ( . ) no nome do usuário. Por exemplo: john.doe

Como isso afetará o sistema ou qualquer aplicativo para esse assunto?

    
por Luis Alvarado 15.01.2014 / 01:34

3 respostas

34
sobre nomes de usuário:

  

[...] Para ser portátil entre os sistemas em conformidade com o padrão IEEE Std 1003.1-2001, o valor é composto de caracteres do conjunto de caracteres de nome de arquivo portátil. O hífen não deve ser usado como o primeiro caractere de um nome de usuário portátil.

... onde o conjunto de caracteres do nome do arquivo portátil é:

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
a b c d e f g h i j k l m n o p q r s t u v w x y z
0 1 2 3 4 5 6 7 8 9 . _ -

Além disso, a página de manual do arquivo /etc/adduser.conf afirma:

   VALID NAMES
          adduser and addgroup enforce conformity to IEEE Std 1003.1-2001,
          which  allows  only  the following characters to appear in group
          and user names: letters, digits, underscores, periods, at  signs
          (@) and dashes. The name may not start with a dash. The "$" sign
          is allowed at the end of usernames (to conform to samba).

          An additional  check  can  be  adjusted  via  the  configuration
          parameter NAME_REGEX to enforce a local policy.

No entanto,

Embora ambas as especificações pareçam incluir o ponto, o Ubuntu (pelo menos no meu 13.04) parece recusá-lo:

⊳ sudo adduser as.df
adduser: Please enter a username matching the regular expression configured
via the NAME_REGEX[_SYSTEM] configuration variable.  Use the '--force-badname'
option to relax this check or reconfigure NAME_REGEX.

O padrão NAME_REGEX no Ubuntu é (da /etc/adduser.conf manpage):

^[a-z][-a-z0-9]*$
  • Começando com uma letra minúscula e qualquer número de traços, letras minúsculas ou dígitos. Não há _ , @ ou . .

Então,

Em conclusão, um ponto . pode ser usado para um nome de usuário do Ubuntu, o NAME_REGEX só precisa ser alterado em /etc/adduser.conf . Visto que está em conformidade com POSIX, não deve haver nenhum problema em ter um . no nome de usuário com qualquer programa compatível com POSIX.

Para ativar um ponto nos nomes de usuário

  1. Execute este comando em um terminal:

    sudo nano /etc/adduser.conf
    
  2. Localize esta linha (perto do final do arquivo)

    #NAME_REGEX="^[a-z][-a-z0-9]*$"
    

    e substitua por

    NAME_REGEX='^[a-z][-.a-z0-9]*$'
    

    Observe que - deve permanecer como o primeiro caractere na expressão de colchete [...] , caso contrário, ele é tratado como especificando um intervalo a-z .

  3. Pressione Ctrl + X , então Y , depois Digite .

Referências:

por kiri 15.01.2014 / 03:28
3

Aplicativos que leem nomes de usuário podem usar um regex que assume que seu nome de usuário segue as regras e, portanto, não pode manipular seu nome de usuário.

    
por Jo-Erlend Schinstad 15.01.2014 / 01:48
2

Marc Haber explica uma possível desvantagem no bug da Debian # 604242 (Permitir pontos no nome de usuário por padrão):

  

Ter pontos no nome de usuário cria alguns problemas com scipts usando    chown , que ainda aceita pontos como separador entre o nome do usuário e   nome do grupo. Se chown ainda aceitar pontos, haverá scripts usando   essa notação, que será quebrada se um nome de usuário contiver um ponto.

     

Eu recomendaria manter o padrão atual (que pode ser   sobrescrito pela configuração local) até chown ter parado de aceitar   pontos como separador.

E chown ainda aceita o ponto como separador, embora não esteja mais documentado. Eu concordo que a compatibilidade POSIX deve prevalecer, e eu de fato emprego nomes de usuários contendo pontos em vários sistemas sem nenhum efeito adverso.

    
por Ferenc Wágner 17.05.2018 / 13:49

Tags