したがって、次の3つの監査ログエントリがあります。
type=AVC msg=audit(1488396169.095:2624951): avc: denied { setrlimit } for pid=16804 comm="bash" scontext=system_u:system_r:httpd_t:s0 tcontext=system_u:system_r:httpd_t:s0 tclass=process
type=SYSCALL msg=audit(1488396169.095:2624951): arch=c000003e syscall=160 success=no exit=-13 a0=1 a1=7ffe06c17350 a2=2 a3=7fea949f3eb0 items=0 ppid=15216 pid=16804 auid=4294967295 uid=48 gid=48 euid=48 suid=48 fsuid=48 egid=48 sgid=48 fsgid=48 tty=(none) ses=4294967295 comm="bash" exe="/usr/bin/bash" subj=system_u:system_r:httpd_t:s0 key=(null)
type=EOE msg=audit(1488396169.095:2624951):
bash
AVCラインでは、コンテキストを持つプロセスがリソース制限のsystem_u:system_r:httpd_t:s0
設定権限が拒否されたことをすぐに確認できます。
SYSCALL行でsyscall = 160をGoogleですばやく検索すると、これが呼び出しであることsetrlimit()
がわかります。これは非常に興味深いものです。どのリソースを変更するように要求したのかわかりません。どのリソースを変更しようとしていますか?
ベストアンサー1
したがって、この場合、問題のシステムコールがであることはすでにわかっていますsetrlimit
。検索すると、setrlimit
そのシステムコールをラップする同じ名前のCライブラリ関数があることがわかります。
これ機能文書化最初のパラメータ(監査ログのSYSCALL行にある「a0」)は問題のリソースを表すようにマークされていますが、マニュアルでは数値ではなくシンボル名のみを示します。ただし、これらのシンボルがsys/resource.h
ヘッダーファイルに定義されていることを知らせます。ただし、ファイルには実際の値は含まれていません。
数値を取得するには、以下を見てください。sysdeps/unix/sysv/linux/bits/resource.h。そこで定義されているさまざまなRLIMIT_マクロを見つけることができます。
これを見ると、変更したいリソースが見つかります。このときa0 = 1で、1に対応するマクロはRLIMIT_FSIZEです。