Warum ist die maximale Länge des Benutzernamens auf 8 Zeichen begrenzt?

13

Während meiner bescheidenen Karriere in der IT sehe ich im Allgemeinen eine begrenzte Benutzernamenlänge (normalerweise auf 8 Zeichen). Dies tritt auf einer Vielzahl von Systemen auf, einschließlich Active Directory- und Datenbank-Apps.

Gibt es einen Grund dafür? Gibt es Best Practices für die Erstellung von Benutzernamen?

Geordan
quelle
1
Gute Frage, aber ich schaudere jedes Mal, wenn ich den Begriff "Best Practice" sehe. Es gibt kein solches Tier.
John Gardeniers

Antworten:

14

Dies ist eine Einschränkung älterer Unix-Systeme und insbesondere des NIS- Verzeichnisdienstes. Normalerweise ist diese Einschränkung nur dann gegeben, wenn die Organisation versucht, Benutzernamen für alle Anwendungen konsistent zu halten (was im Allgemeinen eine gute Idee ist).

jgoldschrafe
quelle
1
+1, kleinster gemeinsamer Nenner, verursacht viele dieser Einschränkungen. AD unterstützt möglicherweise 256 Zeichen für Benutzernamen, aber dieser Solaris 7-Server im Core erzwingt maximal 8 Zeichen. Dieselben Einschränkungen gelten auch für die Kennwortlänge.
sysadmin1138
Oh, hey, der Blog-Typ, den ich von Zeit zu Zeit lese. Sup? :)
jgoldschrafe
1
Und auf MSWindows-Systemen - von MSDOS-Limit von 8 Zeichen in einem Dateinamen
geerbt
Nein, das wurde beseitigt - mit Windows 95. Sogar Fat bekam ein Upgrade inklusive Kompatibilitätsmodus;)
TomTom
6

Das wichtigste Problem, mit dem ich in letzter Zeit Probleme hatte, war ps unter Solaris (10). Dadurch werden die Zeichen ab dem 9. Platz abgeschaltet. Wenn Sie also beispielsweise nach dem Benutzernamen suchen müssen, stimmt dieser nicht überein.

$ 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

Wenn Sie in einem Verzeichnis mit Dateien, die zu diesem Benutzer gehören, ein ls -l ausführen, werden die Spalten nicht mehr richtig ausgerichtet.

$ 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

Grundsätzlich müssten Sie sich vor jedem Tool hüten, das sich mit Anmeldenamen und nicht nur mit UIDs befasst. Dies können Dinge sein, die aus Protokolldateien oder Datenbanken gelesen oder in diese geschrieben werden oder die die Ausgabe von Tools wie last, who, finger, ls, ps usw. verwenden.

Ein kurzer Blick auf Google zeigte diese Seite:

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

Das fügt noch einige Gründe hinzu.

In Bezug auf Best Practices für die Erstellung von Benutzernamen kann es auch zu Komplikationen kommen, wenn Sie sich nicht in Kleinbuchstaben, sondern in Großbuchstaben anmelden. Daher sollte dies ebenfalls vermieden werden.

Wenn auf einigen (älteren) Systemen die Anmeldung nur in Großbuchstaben erfolgt, wird standardmäßig davon ausgegangen, dass das Terminal des Benutzers Kleinbuchstaben nicht unterstützt. Setzen Sie daher ALLES auf Großbuchstaben (wodurch die Eingabe des Kennworts und die Eingabe verhindert werden kann) Unix-Befehle nach dem Einloggen!)

Bearbeiten (16/04/2019):

Mir ist gerade auf RHEL 7.5 aufgefallen, dass die Ausgabe von ps auch nicht gut funktioniert:

$ 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

Es schneidet den Benutzernamen mit einem '+' ab, was nicht hilfreich ist, wenn Sie nicht wissen, um welchen Benutzer es sich handelt, und bedeutet, dass Sie sich nicht auf die Ausgabe von ps verlassen können, z. B. als Eingabe für ein Skript, das wissen muss, wer es ist besitzt einen Prozess.

JohnGH
quelle