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