できます
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
もオプションではないことに注意してください)
あなたが使うかもしれないトリック(もう一度、私はauditdの詳細を知らず、今のところ試せません):最上位の親を起動するときに特定の環境変数を指定し、この変数が設定されているすべてのプロセスを監査しますか?
—
オリビエデュラック14年
@OlivierDulac、何らかの方法でプロセスをマークする(それは子供に継承されます)ことを念頭に置いています。しかし、監査ルールが一致する可能性のあるもののリストは非常に薄い(sid、pgidさえも...)。たぶんSELinuxのものかもしれませんが、私はSELinuxについて最初に知っていることはありません。多分名前空間を処理しますか?
—
ステファンシャゼル14年
最上位の親は独自のプロセスグループに属することができますか?(en.wikipedia.org/wiki/Process_group)
—
オリヴィエデュラック
それがあなたのためのオプションであるならば、私は多分あなたのプログラムを特定のコンテナで実行すると思った。このバグスレッドを正しく理解していれば、カーネル≥3.13で動作するはずです。それ以外は、SELinuxと監査UID以外の方法はありません。AUIDはユースケースに適用されますか?
—
ジル「SO-悪であるのをやめる」14年
strace -s
知っていたすぐに求めていた^^その後私のこぎりと「彼はすでにそれを知っている!」)...ステファン、することができます多分:1)psの「ツリー」オプションを使用してpidのリストを作成し、2)ツリーにリストされているすべてのpidでauditctl(s)を起動しますか?(つまり、複数の "pid = ...."?または複数のauditctlをそれぞれ1つにできますか?)または "dumb"の方法:auditctlすべて、および "pid | pid | pid"にある種のegrep (各行に表示されますか?)(注意:linux atmにアクセスできないため、情報がどのように表示されるかわかりません)