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?
user-accounts
Geordan
fonte
fonte
Respostas:
É 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).
fonte
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á.
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.
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:
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.
fonte