ps가 사용자 이름 대신 uid를 보고하는 원인은 무엇입니까?

ps가 사용자 이름 대신 uid를 보고하는 원인은 무엇입니까?

나는 가지고있다유칼립투스내 Linux 컴퓨터에 설치했는데 유칼립투스 사용자가 소유한 프로세스의 경우메모사용자 이름 대신 사용자 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

또한 참고하시기 바랍니다엘에스속성은 유칼립투스 계정의 파일 소유권을 보고합니다.

$ touch foo
$ ls -l foo
-rw-r--r-- 1 eucalyptus eucalyptus 0 2010-09-23 11:47 foo

답변1

psuid는 사용자 이름이 8자보다 길 때 사용됩니다.

답변2

열 너비를 제어할 수 있습니다.

ps o user:12,pid,%cpu,%mem,vsz,rss,tty,stat,start,time,comm

이는 u형식을 재현 ps u하지만 사용자 필드의 너비를 12자로 만듭니다.

답변3

물론 /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"을 사용하십시오. 그러나 유칼립투스의 모든 프로그램은 중지되어야 합니다.

관련 정보