如何在本機自訂 apparmor 設定檔?

如何在本機自訂 apparmor 設定檔?

我想使用 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,

相關內容