После обновления моего блока debian lenny с помощью apt-get, ps, похоже, ведет себя странно, а также, если я запускаю верхнюю часть, я вижу в столбце пользователя идентификаторы, а не имена.
whoami => foo
ps -U foo => ERROR: User name does not exist.
Я получаю этот вывод, когда запускаю "strace -e trace = open ps -U foo 2> & 1 | less", кажется, что этого /usr/lib/libnss_compat.so.2 не существует:
open("/etc/mtab", O_RDONLY) = 3
open("/usr/lib/locale/locale-archive", O_RDONLY|O_LARGEFILE) = 3
open("/proc/self/stat", O_RDONLY) = 3
open("/proc/uptime", O_RDONLY) = 3
open("/etc/nsswitch.conf", O_RDONLY) = 4
open("/etc/ld.so.cache", O_RDONLY) = 4
open("/lib/libnss_compat.so.2", O_RDONLY)=4
open("/usr/lib/libnss_compat.so.2", O_RDONLY)=-1 ENOENT (No such file or directory)
open("/proc/self/stat", O_RDONLY)= 4
Имея неправильные разрешения на /etc/nsswitch.conf
может вызвать это: -
[asmith@therapy ~]$ ls -la /etc/nsswitch.conf
-rw-r--r-- 1 root root 525 2010-03-31 18:35 /etc/nsswitch.conf
[asmith@therapy ~]$ ps -ef
...
asmith 31143 31124 0 Jan13 pts/18 00:00:00 /bin/bash
asmith 31156 31124 0 Jan13 pts/19 00:00:00 /bin/bash
...
[asmith@therapy ~]$ sudo chmod 600 /etc/nsswitch.conf
[asmith@therapy ~]$ ps -ef
...
1794114690 31143 31124 0 Jan13 pts/18 00:00:00 /bin/bash
1794114690 31156 31124 0 Jan13 pts/19 00:00:00 /bin/bash
...
[asmith@therapy ~]$ ps -U asmith
ERROR: User name does not exist.
[asmith@therapy ~]$ sudo chmod 644 /etc/nsswitch.conf
[asmith@therapy ~]$ ls -la /etc/nsswitch.conf
-rw-r--r-- 1 root root 525 2010-03-31 18:35 /etc/nsswitch.conf
[asmith@therapy ~]$ ps -U asmith
31143 pts/18 00:00:00 bash
31156 pts/19 00:00:00 bash
Надеюсь, это поможет!