ps가 username 대신 uid를보고하게하는 원인은 무엇입니까?


28

나는이 유칼립투스가 내 리눅스 시스템에 설치, 나는 유칼립투스 사용자가 소유 한 프로세스에 대한 것으로 나타났습니다 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의 속성은 유칼립투스 계정에 의한 파일의 소유권 보고서 :

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

답변:


41

ps 사용자 이름이 8자를 초과 할 때 uid를 사용합니다.


잘 했어 매뉴얼 페이지에서 : "이것은 텍스트 사용자 ID가 될 수 있고, 필드 너비가 허용되면, 그렇지 않으면 10 진수로 표시됩니다."
Michael Mrozek

또는 UID를 이름으로 변환하는 방법이 없을 수도 있습니다.
vonbrand


0

물론 / 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'을 사용하지만 유칼립투스의 모든 프로그램을 중지해야합니다
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.