当运行ps aux时,它显示的是用户而不是用户

我正在运行Debian 5.03。 2.6.18。 当我运行ps aux来查看正在运行的进程时,其中一些显示了用户的uid,其他人显示了实际的用户名。 但是,如果我运行顶部,它显示正确的用户名,而不是他们的用户名。 为什么发生这种情况,我应该担心吗?

1001 1877 0.0 0.7 16492 1924 ? S 12:14 0:00 /usr/bin/php-cgi 1001 1878 0.0 0.7 16492 1924 ? S 12:14 0:00 /usr/bin/php-cgi 1001 1879 0.0 0.7 16492 1924 ? S 12:14 0:00 /usr/bin/php-cgi 1001 1880 0.0 0.7 16492 1924 ? S 12:14 0:00 /usr/bin/php-cgi 1001 1881 0.0 0.7 16492 1924 ? S 12:14 0:00 /usr/bin/php-cgi rv 1890 0.0 1.8 16492 4964 ? Ss 12:14 0:00 /usr/bin/php-cgi rv 1891 0.0 1.5 16776 4168 ? S 12:14 0:00 /usr/bin/php-cgi rv 1892 0.0 1.5 16780 4172 ? S 12:14 0:00 /usr/bin/php-cgi rv 1893 0.0 1.5 16780 4172 ? S 12:14 0:00 /usr/bin/php-cgi rv 1894 0.0 1.5 16780 4172 ? S 12:14 0:00 /usr/bin/php-cgi 

我注意到,我的所有RHEL盒子都显示了一个帐户的UID,而且它们都是一样的。 (haldaemon)可能是因为这个名字有多长? 这是我看到的唯一一个比八个字还长的字。 您显示的帐户是否比这更长?

一些谷歌search似乎表明这是问题: http : //www.linuxquestions.org/questions/linux-newbie-8/ps-aux-displays-users-as-uids-instead-of-username-645456/

– 克里斯托弗·卡雷尔

我怀疑这是你的问题,但我把它包括在内。 你可以重写字段的宽度,如果它比你的用户名短,它会自动切换到显示UID。

例如:

 ps xo user:4,pid,cmd 

通常情况下,如果在这种情况下显示数字UID,则表示在UID的/etc/passwd可能不再有条目。 /etc/passwd指定了1001吗?

这可能意味着密码名称服务有问题…

是rv和1001相同的用户,还是rv不同的用户?

你在使用NIS吗? LDAP? 什么grep passwd /etc/nsswitch.conf说你正在使用? grep :1001: /etc/passwd什么意思?

如果您正在运行NIS或LDAP,并且遇到这类问题,则可能需要安装nscd并调查NIS / LDAP /任何服务器上的性能问题。

也有可能你的东西以系统中不存在的用户标识运行。 这是configuration了suexec的apache,以便PHP脚本以拥有它们的用户身份运行? 还是一些类似的机制? (suexec应该检查1001是否是系统上的有效用户)

我可以证实克里斯托弗·卡雷尔是正确的:我在CentOS5机器上也有同样的情况。 除此之外, Dennis Williamson也正确地指出,命令ps显示的用户字段的长度与此有关。 由于默认情况下,用户字段的宽度为8个字符,因此任何用户名长度都将显示为数字UID …因此完全没有问题:只要设置更广泛的默认值即可,如果您希望在其中看到全名,或者将其作为选项传递给你运行ps命令..只是我2c =)