실행하면 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은 사용자별 필터링도 지원합니다.