// apparmor.d - Full set of apparmor profiles // Copyright (C) 2021-2023 Alexandre Pujol // SPDX-License-Identifier: GPL-2.0-only package aa import ( _ "embed" "text/template" ) const indentation = " " //go:embed template.j2 var tmplFileAppArmorProfile string var tmplFunctionMap = template.FuncMap{ "indent": indent, "overindent": indentDbus, } var tmplAppArmorProfile = template.Must(template.New("profile"). Funcs(tmplFunctionMap).Parse(tmplFileAppArmorProfile)) func indent(s string) string { return indentation + s } func indentDbus(s string) string { return indentation + " " + s } // TODO: Should be a map of slice, not exhausive yet var maskToAccess = map[string]string{ "a": "w", "c": "w", "d": "w", "k": "rk", "l": "l", "m": "rm", "r": "r", "ra": "rw", "read write": "read write", "read": "read", "readby": "readby", "receive": "receive", "rm": "rm", "rw": "rw", "send receive": "send receive", "send": "send", "w": "w", "wc": "w", "wr": "rw", "wrc": "rw", "wrd": "rw", "write": "write", "x": "rix", }