Po co ograniczać maksymalną długość nazwy użytkownika do 8 znaków?

13

Przez całą moją skromną karierę w branży IT na ogół widzę ograniczoną długość nazwy użytkownika (zazwyczaj do 8 znaków). Dzieje się tak w różnych systemach, w tym w Active Directory i aplikacjach bazodanowych.

Czy jest tego powód? Czy istnieją najlepsze praktyki dotyczące tworzenia nazw użytkowników?

Geordan
źródło
1
Dobre pytanie, ale wzdrygam się za każdym razem, gdy widzę termin „najlepsza praktyka”. Nie ma takiego zwierzęcia.
John Gardeniers,

Odpowiedzi:

14

Jest to ograniczenie starszych systemów uniksowych, w szczególności usługi katalogowej NIS . Zwykle to ograniczenie obowiązuje tylko wtedy, gdy organizacja stara się zachować spójność nazw użytkowników we wszystkich aplikacjach (co jest ogólnie dobrym pomysłem).

jgoldschrafe
źródło
1
+1, najniższy wspólny mianownik powoduje wiele z tych ograniczeń. AD może obsługiwać 256 znaków użytkownika, ale ten serwer Solaris 7 w rdzeniu wymusza maksymalnie 8 znaków. Te same ograniczenia dotyczą również długości hasła.
sysadmin1138
Och, hej, blogowiec, który od czasu do czasu czytam. Łyk? :)
jgoldschrafe
1
A w systemach MSWindows - odziedziczonych z limitu 8 znaków w MSDOS w nazwie pliku
symcbean
Nie, tego się pozbyłem - z Windows 95. Nawet Fat otrzymał aktualizację, w tym tryb zgodności;)
TomTom
6

Główny, z którym ostatnio widziałem problemy, to ps na Solarisie (10), który odcina 9 + znaki, więc na przykład, jeśli potrzebujesz grep dla nazwy użytkownika, to nie pasuje.

$ 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

Jeśli wykonasz polecenie ls -l w katalogu z plikami należącymi do tego użytkownika, kolumny zostaną wypchnięte z wyrównania.

$ 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

Zasadniczo musisz uważać na wszelkie narzędzia, które zajmują się nazwami logowania, a nie tylko identyfikatorami UID. Może to obejmować rzeczy, które czytają lub zapisują pliki dziennika lub bazy danych, lub wykorzystują dane wyjściowe narzędzi takich jak last, who, finger, ls, ps itp.

Szybkie Google pokazało tę stronę:

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

Co dodaje kilka innych powodów.

Jeśli chodzi o sprawdzone metody tworzenia nazw użytkowników, mogą wystąpić również komplikacje związane z używaniem logów wielkimi literami zamiast małych liter, dlatego też należy tego unikać.

Kiedy niektóre (starsze) systemy, gdy logują się tylko wielkimi literami, pomocne jest domyślne założenie, że terminal użytkownika nie obsługuje małych liter, więc ustaw WSZYSTKO na wielkie litery (co może uniemożliwić wpisanie hasła i możliwość pisania Polecenia uniksowe po zalogowaniu!)

Edytuj (16.04.2019):

Właśnie zauważyłem na RHEL 7.5, że wyjście ps też nie gra ładnie:

$ 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

Obcina nazwę użytkownika znakiem „+”, co nie jest pomocne, jeśli nie wiesz, który to będzie użytkownik, i oznacza, że ​​nie możesz polegać na danych wyjściowych ps, np. Jako danych wejściowych do skryptu, który musi wiedzieć, kto jest właścicielem procesu.

JohnGH
źródło