実行すると、top -u username
特定のユーザーのすべてのプロセスが表示されます。 sudoでユーザーが呼び出したすべてのプロセスを同時に表示する方法はありますか?
答え1
これは簡単な方法では達成できないようです。
top
の観点から見ると、ユーザーが使用するすべてのコマンドは実際にはルートとして実行されるため、実行中のようにsudo
見えます。root
試すことができる1つの方法は、ユーザーがログインしている端末を追跡し、その端末で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
2番目のボタンを押して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はユーザー固有のフィルタリングもサポートします。