sudoの代わりにユーザーが実行しているプロセスを表示するには、topを使用してください。

sudoの代わりにユーザーが実行しているプロセスを表示するには、topを使用してください。

実行すると、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

TTY2番目のボタンを押して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システムで使用されているすべてのエントリに書き込むことができることを忘れないでください。

おすすめ記事