我想使用 aa-enforce(d) apparmor 設定檔運行 Firefox。這工作正常,除了我有一個需要透過 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 存取權限到我的 firefox 設定文件,而不更改 apparmor-profies 包提供的基本配置文件,因此我修改了/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...還不知道這代表什麼。
EDIT2:我直接在 /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,