質問: psがユーザー名ではなくuidを報告する原因は何ですか? linuxマシンに eucalyptus がインストールされていますが、eucalyptusユーザーが所有するプロセスの場合、psがレポートすることに気付きましたユーザー名の代わりにユーザーid。例えば:$ sudo -i -u eucalyptus $ ps u user pid %cpu %mem vsz rss tty stat start time command 107 29764 0.0 0.0 19376 2104 pts/2 s 11:43 0:00 -bash 107 30198 0.0 0.0 15256 1180 pts/2 r+ 11:44 0:00 ps u これはどうして起こりますか?/ etc/passwdに適切なエントリがあることに注意してください。$ grep eucalyptus /etc/passwd eucalyptus:x:107:115::/var/lib/eucalyptus:/bin/bash また、lsプロパティは、eucalyptusアカウントによるファイルの所有権を報告することに注意してください。$ touch foo $ ls -l foo -rw-r--r-- 1 eucalyptus eucalyptus 0 2010-09-23 11:47 foo
回答: 確かに/ etc/passwdに問題があります...手動で編集しましたね? :)とにかく、/ etc/passwdにユーザーの行をコピーしてユーザーidでユーザー名を変更する問題を再現しましたこのような:root@juice:/etc/# grep 129 /etc/passwd 129:x:129:137:puppet configuration management daemon,,,:/var/lib/puppet:/bin/false puppet:x:129:137:puppet configuration management daemon,,,:/var/lib/puppet:/bin/false 「番号付きユーザー」が最初であることに注意してください。root@juice:/etc/# sudo -u puppet -s 129@juice:/etc/$ whoami 129 129@juice:/etc/$ touch /tmp/a 129@juice:/etc/$ ls -l /tmp/a -rw-r--r-- 1 129 puppet 0 2010-09-23 19:12 /tmp/a 129@juice:/etc/$ ps u user pid %cpu %mem vsz rss tty stat start time command 129 12443 2.2 0.1 7112 4380 pts/1 s 19:12 0:00 /bin/bash 129 12490 0.0 0.0 2716 1068 pts/1 r+ 19:12 0:00 ps u 「whoami」を実行してみてください。107を返します。これは奇妙な動作です。psは数を返し、lsは通常の名前を返します:-m ...それを解決するには: / etc/passwdを編集して間違ったエントリを削除するだけです または「userdel 107」を使用しますが、ユーカリからのすべてのプログラムを停止する必要があります