ps 명령은 사용자 이름 대신 사용자 ID를 표시합니다.

ps 명령은 사용자 이름 대신 사용자 ID를 표시합니다.

Centos 6.6에서 명령을 실행하면 ps첫 번째 열은 사용자 이름이 아닌 사용자 ID입니다.

root@cluster:mahmood# ps aux | grep Xvnc
506      11881  0.6  0.1 168580 63164 ?        S    Jun03  24:56 /usr/bin/Xvnc :6 -desktop cluster.hpc.org:6 (haghsheno) -auth /home/mahmood/.Xauthority -geometry 1000x900 -rfbwait 30000 -rfbauth /home/mahmood/.vnc/passwd -rfbport 5906 -fp catalogue:/etc/X11/fontpath.d -pn

왜 이런 일이 발생합니까? 내 사용자 이름으로 어떻게 변경할 수 있나요?

답변1

불행하게도 ps는 기본적으로 사용자 이름이 8자보다 길면 표시하지 않습니다. 시스템이 LDAP와 함께 sssd를 실행 중인 경우 "getent 비밀번호 사용자 ID" 사용자가 LDAP 데이터베이스 또는 비밀번호 파일에 있는지 확인합니다. 내 사용자 이름 "tvb"가 거의 항상 표시됩니다. 하지만 사용자 이름"" 대부분의 경우 그렇지 않습니다. 다음과 같은 다른 명령 ""처음 8자가 표시됩니다"프롱글라스"그리고 나머지는 자릅니다. 위 @KevinO의 예에서는"할다몬"는 9자이므로 ps에 사용자 이름으로 표시되지 않고 사용자 ID로 표시됩니다.

% getent passwd haldaemon
haldaemon:x:68:68:HAL daemon:/:/sbin/nologin

또한 대답은 다음과 같습니다.blog.dbi-services.comBSD 형식 ps 출력에서도 사용자 이름 필드의 필드 길이를 지정하는 데 도움이 됩니다. 조언을 조금 단순화하려면 다음을 수행하십시오.

env PS_FORMAT='user:12,pid,%cpu,%mem,vsz,rss,tty,stat,start,time,command' ps ax | grep haldaemon
haldaemon     2032  0.0  0.0  53100  2020 ?        Ssl    Aug 12 00:01:10 hald

필요한 출력을 제공합니다.

답변2

passwd( )에 id가 없으면 grep 506 /etc/passwd사용자 이름이 표시되지 않습니다.

이 경우 해당 항목을 내부에 추가하십시오 /etc/passwd.

편집하다 말한 바와 같이제프 샬러그리고케빈 오:

이 답변은 완전하지 않습니다!/etc/passwd에서 이 행을 찾는 것이 가장 좋습니다. 세 번째 필드( $3콜론으로 구분됨 -F:)에 가 포함되어 있습니다 506.Jeff의 첫 번째 댓글 보기. 위의 간단한 예에서는 사용자 이름 yx506, ID 123506 등이 포함된 행을 표시합니다.

하지만 어쨌든: userid가 내부에 없으면 /etc/passwd이 답변이 표시됩니다.할 수 있다해결책이 되십시오.

앞으로는 좀 더 구체적으로 말씀드리도록 노력하겠습니다...

관련 정보