Y-Ken Studio

新しもの好きのデータエンジニアが四方山話をお届けします。

Linuxで8文字を超えるユーザ名を使うと、topやpsコマンドでの表記がuidとなる

Linuxのユーザ名は8文字までにしましょう」とよく言われますね。 もしLinuxで8文字を超えるユーザ名を使うと、topやpsコマンドでの表記にどう影響するのでしょうか。 そんな疑問を解決すべく、実際の挙動を追ってみましょう。

検証

7文字から10文字までのユーザ名を順次作成し、それぞれのユーザでsleepコマンドを発行。
その際のpsコマンドで表示されるユーザ名表記の変化を確認する。

利用するテストユーザ

  • abcdefg ・・・ 7文字
  • abcdefgh ・・・ 8文字
  • abcdefghi ・・・ 9文字
  • abcdefghij ・・・ 10文字

9文字以上はuid(数字)となりました

# ps aux | fgrep sleep
abcdefg  23938  0.0  0.0 100904   552 pts/0    S+   21:48   0:00 sleep 2
abcdefgh 23946  0.0  0.0 100904   552 pts/0    S+   21:48   0:00 sleep 2
1009     23954  0.0  0.0 100904   548 pts/0    S+   21:48   0:00 sleep 2
1010     23962  0.0  0.0 100904   548 pts/0    S+   21:48   0:00 sleep 2
root     24004  0.0  0.0 100980   700 pts/0    S+   21:48   0:00 fgrep sleep

オプションで最大文字数を指定すれば、挙動を変えることが出来ます

# ps -o pid,user:20,comm | fgrep sleep
23938 abcdefg              sleep
23946 abcdefgh             sleep
23954 abcdefghi            sleep
23962 abcdefghij           sleep

なお、ls -aなどで表示されるファイルやディレクトリの所有者・グループに関してはこのような制限は無いようです。

参考サイト

Bug 219759 - ps doesn't display usernames > 8 characters
https://bugzilla.redhat.com/show_bug.cgi?id=219759