Pourquoi limiter la longueur maximale du nom d'utilisateur à 8 caractères?

13

Tout au long de mon humble carrière dans l'informatique, je vois généralement une longueur de nom d'utilisateur limitée (généralement à 8 caractères). Cela se produit sur une variété de systèmes, y compris Active Directory et les applications de base de données.

Y a-t-il une raison à cela? Existe-t-il des meilleures pratiques en matière de création de nom d'utilisateur?

Geordan
la source
1
Bonne question mais je frémis à chaque fois que je vois le terme "meilleure pratique". Il n'y a pas un tel animal.
John Gardeniers

Réponses:

14

C'est une limitation des systèmes Unix hérités, et du service d'annuaire NIS en particulier. Habituellement, cette restriction est juste en place si l'organisation essaie de garder les noms d'utilisateur cohérents dans toutes les applications (ce qui est généralement une bonne idée).

jgoldschrafe
la source
1
+1, le plus petit dénominateur commun est à l'origine de nombreuses restrictions. AD peut prendre en charge 256 noms d'utilisateur car, mais ce serveur Solaris 7 dans le noyau force le maximum à 8 caractères. En outre, les mêmes restrictions s'appliquent à la longueur du mot de passe.
sysadmin1138
Oh, hé, le blogueur que je lis de temps en temps. Souper? :)
jgoldschrafe
1
Et sur les systèmes MSWindows - hérité de la limite MSDOS de 8 caractères dans un nom de fichier
symcbean
Non, cela a été supprimé - avec Windows 95. Même Fat a obtenu une mise à niveau incluant le mode de compatibilité;)
TomTom
6

Le principal problème avec lequel j'ai vu récemment a été ps sur Solaris (10), il élimine les 9ème + caractères, donc par exemple si vous aviez besoin de chercher le nom d'utilisateur, il ne correspondrait pas.

$ 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

Si vous effectuez un ls -l sur un répertoire avec des fichiers appartenant à cet utilisateur, les colonnes sont déplacées hors de l'alignement.

$ 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

Fondamentalement, vous devez vous méfier de tout outil traitant des noms de connexion et pas seulement des UID. Cela peut inclure des éléments qui lisent ou écrivent dans des fichiers journaux ou des bases de données, ou qui utilisent la sortie d'outils comme last, who, finger, ls, ps etc.

Un rapide Google a affiché cette page:

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

Ce qui ajoute quelques raisons supplémentaires.

En ce qui concerne les meilleures pratiques pour la création de nom d'utilisateur, il peut également y avoir des complications liées à l'utilisation des connexions en majuscules au lieu des minuscules, ce qui devrait également être évité.

Lorsque certains systèmes (plus anciens), lorsqu'ils voient une connexion en majuscules uniquement, ils utilisent par défaut pour supposer que le terminal de l'utilisateur ne prend pas en charge les minuscules, alors définissez TOUT en majuscules (ce qui peut empêcher la saisie du mot de passe et la possibilité de taper Commandes Unix une fois connecté!)

Modifier (16/04/2019):

Je viens de remarquer sur RHEL 7.5, que la sortie de ps ne fonctionne pas bien non plus:

$ 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

Il tronque le nom d'utilisateur avec un '+', ce qui n'est pas utile si vous ne savez pas de quel utilisateur il s'agit et signifie que vous ne pouvez pas vous fier à la sortie de ps, par exemple comme entrée d'un script qui doit savoir qui possède un processus.

JohnGH
la source