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.