回答:
これは、従来のUnixシステム、特にNISディレクトリサービスの制限です。通常、この制限は、組織がすべてのアプリケーションでユーザー名の一貫性を維持しようとしている場合にのみ適用されます(一般的には良い考えです)。
私が最近見た問題の主なものはSolaris(10)のpsで、9番目以降の文字を削除します。たとえば、ユーザー名のgrepが必要な場合、一致しません。
$ 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
そのユーザーに属するファイルがあるディレクトリでls -lを実行すると、列が整列されなくなります。
$ 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
基本的には、UIDだけでなくログイン名を扱うツールには注意する必要があります。これには、ログファイルやデータベースの読み取りや書き込み、またはlast、who、finger、ls、psなどのツールの出力の使用が含まれます。
簡単なGoogleがこのページを表示しました:
http://fixunix.com/sun/113647-username-lenght-more-then-8-characters.html
これにはいくつかの理由があります。
ユーザー名作成のベストプラクティスに関しては、小文字ではなく大文字でログインを使用することで問題が発生する可能性があるため、これも避ける必要があります。
一部の(古い)システムでは、大文字のみでログインが表示されると、ユーザーの端末が小文字をサポートしないと想定してデフォルトで役立つため、すべてを大文字に設定します(これにより、パスワードの入力と入力ができなくなります)ログインしたらUnixコマンド!)
編集(2019年4月16日):
RHEL 7.5で、psの出力がうまく再生されないことに気づきました。
$ 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
ユーザー名が「+」で切り捨てられます。これは、どのユーザーになるかよくわからない場合は役に立ちません。たとえば、誰を知る必要があるスクリプトへの入力として、psの出力に依存できないことを意味します。プロセスを所有しています。