できます
auditctl -a always,exit -S all -F pid=1234
Pid 1234によって実行されたすべてのシステムコールをログに記録するには、次のようにします。
auditctl -a always,exit -S all -F ppid=1234
その子供たちのために、しかし私はどのように孫と彼らの子供たち(現在と未来)もカバーするのですか?
変化する(e)uid /(e)gidは信頼できません。
(strace
の使用もオプションではないことに注意してください)
今すぐ試すことのできない提案をするだけです...投稿自体から推測するだけです
これが解決策の提案です:
最上位のプロセスIDが$ pidにあり、Linuxでもps -T
がプロセスのツリーを提供するとします(現時点ではLinuxにアクセスできません)
for eachpid in $(ps -T "$pid" | awk '{print $1}' | grep -v 'PID')
do
auditctl -a always,exit -S all -F pid=$eachpid >somelog_${eachpid}.log 2>&1
done
もちろん、ps -T "$pid"
をLinuxの同等のものに置き換えます。これがLinuxで機能しない場合(または「pstree -p」の出力をawk-ingして見つけると、pidは括弧内になります)