Por que limitar o tamanho máximo do nome de usuário a 8 caracteres?


13

Ao longo de minha humilde carreira em TI, geralmente vejo o tamanho do nome de usuário limitado (geralmente para 8 caracteres). Isso ocorre em uma variedade de sistemas, incluindo o Active Directory e aplicativos de banco de dados.

Existe uma razão para isso? Existem práticas recomendadas com relação à criação de nome de usuário?


1
Boa pergunta, mas estremeço toda vez que vejo o termo "melhores práticas". Não existe esse animal.
John Gardeniers

Respostas:


14

É uma limitação dos sistemas Unix herdados, e do serviço de diretório NIS em particular. Normalmente, essa restrição existe apenas se a organização estiver tentando manter os nomes de usuários consistentes em todos os aplicativos (o que geralmente é uma boa ideia).


1
+1, o menor denominador comum causa muitas dessas restrições. O AD pode suportar 256 nomes de usuário de caracteres, mas esse servidor Solaris 7 no núcleo força o máximo de 8 caracteres. Além disso, as mesmas restrições se aplicam ao tamanho da senha.
sysadmin1138

Ah, ei, o cara do blog que eu leio de tempos em tempos. Sup? :)
jgoldschrafe

1
E em sistemas MSWindows - herdado do limite MSDOS de 8 caracteres em um nome de arquivo
symcbean

Não, isso foi eliminado - com o Windows 95. Até Fat recebeu uma atualização incluindo o modo de compatibilidade;)
TomTom

6

O principal com o qual eu vi problemas recentemente foi o ps no Solaris (10); ele retira os caracteres 9º +, por exemplo, se você precisar grep pelo nome de usuário, ele não corresponderá.

$ sudo -u longusername ps -fu longusername
     UID   PID  PPID   C    STIME TTY         TIME CMD
longuser 14012 11985   0 09:58:39 pts/2       0:00 ps -fu longusername

Se você fizer um ls -l em um diretório com arquivos pertencentes a esse usuário, as colunas serão empurradas para fora do alinhamento.

$ ls -ld /export/home/l*
drwxr-xr-x   2 lauser   users        6 Mar 23 10:21 /export/home/lzuser
drwxr-xr-x   2 longusername users        6 May  4 10:02 /export/home/longusername
drwxr-xr-x   2 lzuser   users        6 Mar 12 11:21 /export/home/lzuser

Basicamente, você precisa ter cuidado com qualquer ferramenta que lide com nomes de login e não apenas com UIDs. Isso pode incluir coisas que são lidas ou gravadas em arquivos ou bancos de dados de log, ou usadas a saída de ferramentas como last, who, finger, ls, ps etc.

Um rápido Google apareceu nesta página:

http://fixunix.com/sun/113647-username-lenght-more-then-8-characters.html

O que acrescenta mais alguns motivos.

Com relação às práticas recomendadas para criação de nome de usuário, também pode haver complicações com o uso de logons em maiúsculas em vez de minúsculas, portanto, isso também deve ser evitado.

Quando alguns sistemas (mais antigos), quando veem um logon apenas em maiúsculas, ajudam a assumir que o terminal do usuário não suporta letras minúsculas, então configure TUDO para maiúsculas (o que pode impedir a digitação da senha e a digitação) Comandos Unix após o login!)

Editar (16/04/2019):

Acabei de notar no RHEL 7.5, que a saída do ps também não funciona muito bem:

$ ps -fulongusername
UID        PID  PPID  C STIME TTY          TIME CMD
longuse+  1230 27243  0 Apr13 pts/0    00:00:00 vim somescript.sh
longuse+  1701 27243  0 Apr05 pts/0    00:00:00 vim another-script.sh
longuse+  3116 27243  0 Apr12 pts/0    00:00:01 vim test_script.sh

Ele trunca o nome de usuário com um '+', o que não é útil se você não estiver familiarizado com qual usuário ele será e significa que você não pode confiar na saída do ps, por exemplo, como entrada para um script que precisa saber quem possui um processo.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.