프로세스의 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의미합니다."환경도 표시해 주세요". 당신이 원하는 것은 실제로 모든 프로세스, 즉 -axFreeBSD를 표시하는 것입니다. -x제어 터미널(커널 프로세스 및 데몬) 없이 프로세스도 표시하는 것이며 기본 동작은 이를 표시하지 않는 것입니다.

ps필드별 선택에 대한 Linux 관련 (에서 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로 대체하세요 .*

관련 정보