システムに AppArmor をセットアップしようとしているのですが、権限が拒否されたエラーを回避するのに問題があります:
ping: error while loading shared libraries: libcap.so.2: cannot stat shared object: Permission denied
これは私の ping のポリシーです:
#include <tunables/global>
/{usr/,}bin/ping {
#include <abstractions/base>
#include <abstractions/consoles>
#include <abstractions/nameservice>
capability net_raw,
capability setuid,
#network inet raw,
#network inet stream,
network icmp,
/bin/ping mixr,
/etc/modules.conf r,
# Site-specific additions and overrides. See local/README for details.
#include <local/bin.ping>
}
苦情モードでは、ライブラリのロードについて「苦情」を述べるログは表示されません。強制モードでのみ表示され、もちろん ping プログラムは動作しません。他のプロファイルでもこのエラーが発生するので、抽象化/ベース ファイルまたは調整可能/グローバル ファイルが正しいかどうか疑問に思っています。
私はこれを Funtoo (Gentoo) Linux で実行しています。
equery b libcap.so.2からの出力:
* Searching for libcap.so.2 ...
sys-libs/libcap-2.25 (/usr/lib32/libcap.so.2 -> libcap.so.2.25)
sys-libs/libcap-2.25 (/lib64/libcap.so.2 -> libcap.so.2.25)
また、syslog-ng でも同じ問題が発生していることにも注意してください。syslog ポリシーが強制モードになっていると、syslog は起動せず、libsyslog-ng-3.7.so.0 を開けないというメッセージが表示されます。
答え1
suse11sp3ではapparmorはsyslog-ngにファイルの読み取り権限を与えないので、/etc/apparmor.d/sbin.syslog-ng
ファイルを編集して権限を追加してください。
AppArmorを再起動する
service boot.apparmor restart
syslog-ngを再起動する
service syslog restart