このSELinux avcエラー(によって生成されたausearch
)は私を混乱させます。
time->Fri Nov 13 16:04:49 2015
type=PROCTITLE msg=audit(1447452289.136:242): proctitle="/opt/firefox/firefox"
type=SYSCALL msg=audit(1447452289.136:242): arch=c000003e syscall=9 success=yes exit=140443907256320 a0=0 a1=10000 a2=7 a3=22 items=0 ppid=3742 pid=4212 auid=4294967295 uid=1000 gid=1000 euid=1000 suid=1000 fsuid=1000 egid=1000 sgid=1000 fsgid=1000 tty=(none) ses=4294967295 comm="firefox" exe="/opt/firefox/firefox" subj=system_u:system_r:initrc_t:s0 key=(null)
type=AVC msg=audit(1447452289.136:242): avc: denied { execmem } for pid=4212 comm="firefox" scontext=system_u:system_r:initrc_t:s0 tcontext=system_u:system_r:initrc_t:s0 tclass=process permissive=1
私はwhereis
Firefoxで1つを作り、それがどこにあるのかを聞きました/usr/bin/firefox
。へのシンボリックリンクです/opt/firefox/firefox
。私が見つけたFirefoxコンテキストの追加チェック:
# ls -Z /usr/bin/firefox
system_u:object_r:bin_t:SystemLow /usr/bin/firefox
# ls -Z /opt/firefox/firefox
system_u:object_r:usr_t:SystemLow /opt/firefox/firefox
それで、それはどこから来ますかinitrc_t
?
さらに、トピックと目標は何ですか?私はこのトピックが次のようになると確信しています/opt/firefox/firefox
。しかし、文脈を考慮すると疑わしいです。目標が何なのかわからない。
さらに、execmem
この文脈では何ですか? (この問題についてのメッセージは次のとおりですsyscall=9
。どのシステムコール番号が何にマップされているのか、どこで見つけることができますか?)GoogleはAVCエラーにのみ表示されることを示しています。
私はこの質問に対する具体的な答えではなく、avcエラーをより正確に見つける答えを好みます。
答え1
を使用すると、ausearch -i
システム-i
コールが人々にとってより役に立つように「解釈」されます。 Syscall 9は「mmap」で、execmem拒否(SELinuxが書き込み可能または実行可能メモリ領域の作成をプロセスで停止したときに発生するように見える)に基づいて意味があります。これを防ぐことをお勧めします。ただし、必ず有効にする必要がある場合は、allow_execstack
ブール値をtrueに設定して有効にすることができます。
initrc_t
実行中のファイルではなく、実行中のユーザーの宛先です。監査メッセージで判断した場合、Firefoxはおそらくここのinitスクリプトから起動された可能性があります(initrc_tに基づいて監査UIDは-1
「初期化されていません」とも呼ばれ、TTYはありません)。
私はこの問題がもう消えたと思います。それはおそらくSELinuxが無効になっているからです。これは、人々が一般的に奇妙なSELinuxの問題を解決する方法のようです。 :) しかし、とにかく次の人が起動できるように答えがここにあります。