의류 프로필을 로컬에서 사용자 정의하는 방법은 무엇입니까?

의류 프로필을 로컬에서 사용자 정의하는 방법은 무엇입니까?

aa-enforce(d) 의류 프로필로 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 액세스 권한 부여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_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,

관련 정보