2.7.7 演習の解決および例: 指定されたユーザーによって呼び出されたプログラムのカウント(countprogs.d)

#!/usr/sbin/dtrace -qs

/* countprogs.d -- Count programs invoked by a specified user */

proc::do_execveat_common:exec
/uid == $1/
{
  @num[execname] = count();
}

述語/uid == $1/は、コマンドラインで指定された引数に対して実行される各プログラムの有効なUIDを比較しています。 ID -u user コマンドを使用して、ゲスト・ユーザー・アカウントのIDを確認できます。次に例を示します:

# chmod +x countprogs.d
# ./countprogs.d $(id -u guest)
^C

less 1
lesspipe.sh 1
sh 1
bash 9

rootユーザーに対して同じコマンド(通常はユーザー0)を使用できます。 テストのために、別のウィンドウを使用してユーザー・アカウントをテスト・ログインの下に配置し、いくつかの異なるプログラムを実行できます。