프로세스의 RUSER 및 EUSER를 얻는 방법(FreeBSD)

프로세스의 RUSER 및 EUSER를 얻는 방법(FreeBSD)

시도해 보았지만 작동하지 않습니다ps -eo euser,ruser,suser,fuser,f,comm,label | grep processname

누구든지 이 작업을 수행하는 올바른 방법을 말해 줄 수 있습니까?

답변1

psLinux 옵션과 필드 이름을 FreeBSD 옵션과 키워드에 매핑 하려고 합니다 ps. 이는 Linux 유사 시스템과 BSD 스타일 시스템 간의 주요 차이점 중 하나입니다.

먼저 -eFreeBSD의 옵션은 다음을 ps의미합니다."환경도 표시". 실제로 원하는 것은 모든 프로세스를 표시하는 것입니다 -ax. FreeBSD 의 경우 -x터미널을 제어하지 않는 프로세스(커널 프로세스 및 데몬)도 표시하는 것입니다. 기본 동작은 이를 표시하지 않는 것입니다.

Linux의 ps각 필드 선택 정보(에서 man ps):

 euser      EUSER    effective user name. This will be the textual user ID,   if it can be obtained and the field width
                     permits, or a decimal representation otherwise. The n option can be used to force the decimal
                     representation. (alias uname, user).
 ruser      RUSER    real user ID. This will be the textual user ID, if it can be obtained and the field width permits,
                    or a decimal representation otherwise.
 suser      SUSER    saved user name. This will be the textual user ID, if it can be obtained and the field width permits,
                     or a decimal representation otherwise. (alias svuser).
 fuser      FUSER    filesystem access user ID. This will be the textual user ID, if it can be obtained and the field
                     width permits, or a decimal representation otherwise.
 f          F        flags associated with the process, see the PROCESS FLAGS section. (alias flag, flags).
 comm       COMMAND  command name (only the executable name). Modifications to the command name will not be shown.
                     A process marked <defunct> is partly dead, waiting to be fully destroyed by its parent. The output in
                     this column may contain spaces. (alias ucmd, ucomm). See also the args format keyword, the -f option,
                     and the c option.
                     When specified last, this column will extend to the edge of the display. If ps can not determine
                     display width, as when output is redirected (piped) into a file or another command, the output width
                     is undefined. (it may be 80, unlimited, determined by the TERM variable, and so on) The COLUMNS
                     environment variable or --cols option may be used to exactly determine the width in this case. The w
                     or -w option may be also be used to adjust width.
 label      LABEL    security label, most commonly used for SE Linux context data. This is for the Mandatory Access
                     Control ("MAC") found on high-security systems.

ps각 키워드 선택에 대한 FreeBSD 매뉴얼에서 :

 uid        effective user ID (alias euid)
 user       user name (from UID)
 ruid       real user ID
 ruser      user name (from ruid)
 svuid      saved UID from a setuid executable
 state      symbolic process state (alias stat)
 comm       command
 label      MAC label

명확한 FreeBSD와 동등한 것이 없습니다퓨저이므로 건너뜁니다.

따라서 귀하의 경우에는 다음과 같이 번역됩니다.

ps -axo user,ruser,svuid,state,comm,label |grep <process_name>

답변2

없이 수행하는 방법은 다음과 같습니다 ps.

awk '{ 
    if ("awk" == $1) 
        print "PID:",$2,"EUID:",$12,"EGID:",$13,"Groups:",$14; 
}' /proc/*/status

"awk"테스트 중에 적절하게 교체하십시오 if. 특정 프로세스를 확인하려면 if테스트를 제거하고 특정 프로세스 ID로 바꾸세요.*

관련 정보