sudo를 대신하여 사용자가 실행하는 프로세스를 보려면 top을 사용하세요.

sudo를 대신하여 사용자가 실행하는 프로세스를 보려면 top을 사용하세요.

실행하면 top -u username특정 사용자에 대한 모든 프로세스가 표시됩니다. sudo를 통해 사용자가 호출한 모든 프로세스를 동시에 볼 수 있는 방법이 있습니까?

답변1

이는 간단한 방법으로는 달성하기 불가능해 보입니다.

top의 관점 에서 보면 사용자가 사용하는 모든 명령은 실제로 루트로 실행되기 때문에 sudo실행 중인 것처럼 보입니다 .root

시도해 볼 수 있는 한 가지 방법은 사용자가 로그인하는 터미널을 추적한 다음 해당 터미널에서 루트로 실행되는 프로세스를 살펴보는 것입니다.

예를 들어,

$ w user
USER     TTY      FROM        LOGIN@   IDLE   JCPU   PCPU WHAT
user     pts/0    w.x.y.z     07:01    0.00s  1.07s  0.03s w user

이 사용자는 이미 열려 있습니다 pts/0.

지금 실행하세요 top.

이제 f(필드 선택)을 누르고 g(tty 필드 제어 전환)을 누른 다음 를 누르십시오 Enter.

이제 열의 pts/0과정을 관찰해 보세요 TTY.

TTY두 번째 버튼을 눌러 g정렬 할 수도 있습니다.


또는 다음과 같은 것을 procfs얻는 데 사용할 수 있는 목록pids

$ sudo grep -l SUDO_USER="\<user\>" /proc/*/environ

그런 다음 목록에서 작업을 수행합니다. 아니면 심지어 그것으로 실행합니다 top -p <pid1>,<pid2>....

sudo top -p $(sudo grep -l SUDO_USER='\<user\>' /proc/[0-9]*/environ |
    cut -f 3 -d / |
    tr '\n' ',' |
    sed -e 's/,$//')

물론 이 경우 top사용자가 start new 명령을 사용했는지 여부는 표시되지 않습니다 sudo.


/var/log/secure또한 명령을 실행하는 사용자가 or.com /var/log/auth.log또는 /var/log/sudo.log시스템에서 사용하는 모든 항목 에 기록될 수 있다는 점을 잊지 마세요 .

답변2

당신은 설치할 수 있습니다맨 위더 나은 개요를 제공하는지 확인하세요. htop은 사용자별 필터링도 지원합니다.

관련 정보