Firefox を aa-enforce(d) apparmor プロファイルで実行したいのですが、dbus 経由でキーリングにアクセスする必要があるプラグインがある点を除けば、これはうまく動作します。プラグイン (https://github.com/swick/moz-gnome-keyring-integration) がキーリングにアクセスしようとすると、ログに次のメッセージが表示されます。
[ apparmor="DENIED" operation="dbus_method_call" bus="session" path="/org/freedesktop/secrets" interface="org.freedesktop.DBus.Properties" member="Get" mask="send" name="org.freedesktop.secrets" pid=20004 profile="/usr/lib/firefox/firefox{,*[^s][^h]}" peer_pid=2810 peer_profile="unconfined"]
だから私はdbusアクセスを許可するapparmor-profies パッケージによって提供される基本プロファイルを変更せずに、Firefox プロファイルに追加したかったので、 のファイルを変更しました/etc/apparamor.d/local/usr.bin.firefox
。
私が試したことは次のとおりです:
# Site-specific additions and overrides for usr.bin.firefox.
# For more details, please see /etc/apparmor.d/local/README.
# Allow gnome keyring integration to work
/usr/lib/firefox/firefox{,*[^s][^h]} {
dbus (send,receive)
bus=session
interface=org.freedesktop.DBus.Properties
path=/org/freedesktop/secrets,
}
しかし、aa-enforce usr.bin.firefox では次のエラーが発生します。
apparmor.common.AppArmorException: 'local/usr.bin.firefox profile in local/usr.bin.firefox contains syntax errors in line: 4.'
AppArmor プロファイルを作成または変更するのは初めてですが、ここで行き詰まってしまいました... 構文はどうすればよいのでしょうか?
編集: apparmor_parser を使用して、別の情報を取得しました:
AppArmor parser error for /etc/apparmor.d/usr.bin.firefox in /etc/apparmor.d/local/usr.bin.firefox at line 4: syntax error, unexpected TOK_OPEN, expecting TOK_MODE
つまり、予期しない TOK_OPEN、予期される TOK_MODE... まだそれが何を意味するのかわかりません。
編集2: 同じスタンザを /etc/apparmor.d/usr.bin.firefox プロファイル内で直接試してみましたが、うまくいきました。つまり、問題はローカルカスタマイズの使用に関係しているということです...
答え1
問題は、開き括弧 ({
および}
) から発生します。#include
ステートメントはすでにメイン プロファイルの宣言内にあるため、括弧は必要ありません。
# Site-specific additions and overrides for usr.bin.firefox.
# For more details, please see /etc/apparmor.d/local/README.
# Allow gnome keyring integration to work
dbus (send,receive)
bus=session
interface=org.freedesktop.DBus.Properties
path=/org/freedesktop/secrets,