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?

Geordan
fonte
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).

jgoldschrafe
fonte
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.

JohnGH
fonte