psコマンドは、ユーザー名の代わりにユーザーIDを表示します。

psコマンドは、ユーザー名の代わりにユーザーIDを表示します。

Centos 6.6でコマンドを実行すると、ps最初の列はユーザ​​ー名ではなくユーザーIDです。

root@cluster:mahmood# ps aux | grep Xvnc
506      11881  0.6  0.1 168580 63164 ?        S    Jun03  24:56 /usr/bin/Xvnc :6 -desktop cluster.hpc.org:6 (haghsheno) -auth /home/mahmood/.Xauthority -geometry 1000x900 -rfbwait 30000 -rfbauth /home/mahmood/.vnc/passwd -rfbport 5906 -fp catalogue:/etc/X11/fontpath.d -pn

なぜこれが起こるのですか?自分のユーザー名にどのように変更できますか?

答え1

残念ながら、psはデフォルトでユーザー名が8文字より長い場合は表示しません。システムがLDAPでsssdを実行している場合getentパスワードユーザーID"ユーザーがLDAPデータベースまたはパスワードファイルに存在することを確認します。私のユーザー名"tvb"がほとんど常に表示されます。しかし、ユーザー名"「ほとんどの場合そうではありません。次のような他のコマンド」勝つ「最初の8文字が表示されます」プロングラス「そして残りは切る。上の@KevinOの例では」ハルダモン「は9文字なので、psにはユーザー名で表示されず、ユーザーIDで表示されます。

% getent passwd haldaemon
haldaemon:x:68:68:HAL daemon:/:/sbin/nologin

また、答えは次のとおりです。blog.dbi-services.comBSD形式ps出力でも、ユーザー名フィールドのフィールド長を指定するのに役立ちます。アドバイスを少し簡単にするには、次のようにします。

env PS_FORMAT='user:12,pid,%cpu,%mem,vsz,rss,tty,stat,start,time,command' ps ax | grep haldaemon
haldaemon     2032  0.0  0.0  53100  2020 ?        Ssl    Aug 12 00:01:10 hald

必要な出力を提供します。

答え2

passwd()にidがない場合、grep 506 /etc/passwdユーザー名は表示されません。

その場合は、その項目を内部に追加してください/etc/passwd

編集する 言ったようにジェフ・シャラーそしてケビン・オ:

この答えは完全ではありません!/etc/passwdでこの行を見つけるのが最善です。 3番目のフィールド($3コロンで区切られています-F:)にが含まれています506Jeffの最初のコメントを見る。上記の簡単な例では、ユーザー名yx506、ID 123506などを含む行を表示します。

しかし、とにかく:useridが内部にない場合は、/etc/passwdこの答えが表示されます。できる解決策になります。

今後は、より具体的に申し上げます。

関連情報