it-swarm-ko.tech

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

Linux 시스템에 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 속성은 유칼립투스 계정으로 파일의 소유권을보고합니다.

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

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

41
Seth L

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

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

이것은 u 형식의 ps u이지만 사용자 필드의 너비는 12 자입니다.

물론/etc/passwd에 문제가 있습니다 ... 수동으로 편집 했습니까? :)

어쨌든, 나는/etc/passwd에 사용자 라인을 복사하고 사용자 ID로 사용자 이름을 변경하는 문제를 재현했습니다.

이처럼 :

[email protected]:/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

"번호가 매겨진 사용자"가 첫 번째임을 유의하십시오.

[email protected]:/etc/# Sudo -u puppet -s
[email protected]:/etc/$ whoami
129

[email protected]:/etc/$ touch /tmp/a
[email protected]:/etc/$ ls -l /tmp/a
-rw-r--r-- 1 129 puppet 0 2010-09-23 19:12 /tmp/a

[email protected]:/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'을 사용하지만 유칼립투스의 모든 프로그램을 중지해야합니다
0
Keymon