在AppArmor零知识学习十二、源码构建(9)中,详细介绍了Profiles的构建步骤,但那完全使用的是官网给出的默认参数。如果需要将目标文件生成到指定目录而非默认的/usr,则需要进行一些修改,本文就来详述如何进行修改。
必须说明以下两点:
(1)Profiles的构建必须在前述步骤(配置环境变量和libapparmor构建)的基础上才能进行。关于这两个步骤,请参阅:AppArmor零知识学习四、源码构建(1)和AppArmor零知识学习五、源码构建(2);
(2)前文libapparmor非默认目录构建和安装中的步骤是为了制作包时使用,由于其没有将目标文件放到/usr/local下,因此实际上并没有起作用。真正起作用的是之前按照默认参数构建的libapparmor相关组件。
接下来,开始Profiles自定义安装目录的构建和安装。
(1)进入profiles目录
通过cd命令进入apparmor源码根目录下的profiles
目录。实际命令及结果如下:
penghao@Ding-Perlis-MP260S48:~/AppArmor/apparmor_2/apparmor$ cd profiles/
penghao@Ding-Perlis-MP260S48:~/AppArmor/apparmor_2/apparmor/profiles$ pwd
/home/penghao/AppArmor/apparmor_2/apparmor/profiles
penghao@Ding-Perlis-MP260S48:~/AppArmor/apparmor_2/apparmor/profiles$ ls
apparmor apparmor.d Makefile
(2)编译
运行make命令进行编译。实际命令及结果如下:
$ make
for profile in ./apparmor.d/bin.ping ./apparmor.d/lsb_release ./apparmor.d/nvidia_modprobe ./apparmor.d/php-fpm ./apparmor.d/samba-bgqd ./apparmor.d/samba-dcerpcd ./apparmor.d/samba-rpcd ./apparmor.d/samba-rpcd-classic ./apparmor.d/samba-rpcd-spoolss ./apparmor.d/sbin.klogd ./apparmor.d/sbin.syslogd ./apparmor.d/sbin.syslog-ng ./apparmor.d/usr.lib.apache2.mpm-prefork.apache2 ./apparmor.d/usr.lib.dovecot.anvil ./apparmor.d/usr.lib.dovecot.auth ./apparmor.d/usr.lib.dovecot.config ./apparmor.d/usr.lib.dovecot.deliver ./apparmor.d/usr.lib.dovecot.dict ./apparmor.d/usr.lib.dovecot.director ./apparmor.d/usr.lib.dovecot.doveadm-server ./apparmor.d/usr.lib.dovecot.dovecot-auth ./apparmor.d/usr.lib.dovecot.dovecot-lda ./apparmor.d/usr.lib.dovecot.imap ./apparmor.d/usr.lib.dovecot.imap-login ./apparmor.d/usr.lib.dovecot.lmtp ./apparmor.d/usr.lib.dovecot.log ./apparmor.d/usr.lib.dovecot.managesieve ./apparmor.d/usr.lib.dovecot.managesieve-login ./apparmor.d/usr.lib.dovecot.pop3 ./apparmor.d/usr.lib.dovecot.pop3-login ./apparmor.d/usr.lib.dovecot.replicator ./apparmor.d/usr.lib.dovecot.script-login ./apparmor.d/usr.lib.dovecot.ssl-params ./apparmor.d/usr.lib.dovecot.stats ./apparmor.d/usr.sbin.apache2 ./apparmor.d/usr.sbin.avahi-daemon ./apparmor.d/usr.sbin.dnsmasq ./apparmor.d/usr.sbin.dovecot ./apparmor.d/usr.sbin.identd ./apparmor.d/usr.sbin.mdnsd ./apparmor.d/usr.sbin.nmbd ./apparmor.d/usr.sbin.nscd ./apparmor.d/usr.sbin.ntpd ./apparmor.d/usr.sbin.smbd ./apparmor.d/usr.sbin.smbldap-useradd ./apparmor.d/usr.sbin.traceroute ./apparmor.d/usr.sbin.winbindd ./apparmor.d/zgrep; do \
fn=$(basename $profile); \
echo "# Site-specific additions and overrides for '$fn'" > ./apparmor.d/local/$fn; \
grep "include[[:space:]]\\+if[[:space:]]\\+exists[[:space:]]\\+<local/$fn>" "$profile" >/dev/null || { echo "$profile doesn't contain include if exists <local/$fn>" ; exit 1; } ; \
done
(3)检查
运行make check命令进行检查。实际命令及结果如下:
$ make check
for profile in ./apparmor.d/bin.ping ./apparmor.d/lsb_release ./apparmor.d/nvidia_modprobe ./apparmor.d/php-fpm ./apparmor.d/samba-bgqd ./apparmor.d/samba-dcerpcd ./apparmor.d/samba-rpcd ./apparmor.d/samba-rpcd-classic ./apparmor.d/samba-rpcd-spoolss ./apparmor.d/sbin.klogd ./apparmor.d/sbin.syslogd ./apparmor.d/sbin.syslog-ng ./apparmor.d/usr.lib.apache2.mpm-prefork.apache2 ./apparmor.d/usr.lib.dovecot.anvil ./apparmor.d/usr.lib.dovecot.auth ./apparmor.d/usr.lib.dovecot.config ./apparmor.d/usr.lib.dovecot.deliver ./apparmor.d/usr.lib.dovecot.dict ./apparmor.d/usr.lib.dovecot.director ./apparmor.d/usr.lib.dovecot.doveadm-server ./apparmor.d/usr.lib.dovecot.dovecot-auth ./apparmor.d/usr.lib.dovecot.dovecot-lda ./apparmor.d/usr.lib.dovecot.imap ./apparmor.d/usr.lib.dovecot.imap-login ./apparmor.d/usr.lib.dovecot.lmtp ./apparmor.d/usr.lib.dovecot.log ./apparmor.d/usr.lib.dovecot.managesieve ./apparmor.d/usr.lib.dovecot.managesieve-login ./apparmor.d/usr.lib.dovecot.pop3 ./apparmor.d/usr.lib.dovecot.pop3-login ./apparmor.d/usr.lib.dovecot.replicator ./apparmor.d/usr.lib.dovecot.script-login ./apparmor.d/usr.lib.dovecot.ssl-params ./apparmor.d/usr.lib.dovecot.stats ./apparmor.d/usr.sbin.apache2 ./apparmor.d/usr.sbin.avahi-daemon ./apparmor.d/usr.sbin.dnsmasq ./apparmor.d/usr.sbin.dovecot ./apparmor.d/usr.sbin.identd ./apparmor.d/usr.sbin.mdnsd ./apparmor.d/usr.sbin.nmbd ./apparmor.d/usr.sbin.nscd ./apparmor.d/usr.sbin.ntpd ./apparmor.d/usr.sbin.smbd ./apparmor.d/usr.sbin.smbldap-useradd ./apparmor.d/usr.sbin.traceroute ./apparmor.d/usr.sbin.winbindd ./apparmor.d/zgrep; do \
fn=$(basename $profile); \
echo "# Site-specific additions and overrides for '$fn'" > ./apparmor.d/local/$fn; \
grep "include[[:space:]]\\+if[[:space:]]\\+exists[[:space:]]\\+<local/$fn>" "$profile" >/dev/null || { echo "$profile doesn't contain include if exists <local/$fn>" ; exit 1; } ; \
done
*** Checking profiles from ./apparmor.d and ./apparmor/profiles/extras/ against apparmor_parser
*** Checking abstractions from ./apparmor.d/abstractions against apparmor_parser
*** Checking profiles from ./apparmor.d against logprof
正在在 /home/penghao/AppArmor/apparmor_2/apparmor/profiles/apparmor.d 中更新 AppArmor 配置文件。从 /dev/null 读取日志条目。投诉模式更改:强制模式更改:*** Checking if all abstractions (with a few exceptions) contain include if exists <abstractions/*.d>
*** Checking if all extra profiles contain include if exists <local/*>
(4)安装
运行make install命令进行安装。实际命令及结果如下(注意DESTDIR=的参数):
$ make install DESTDIR=/home/penghao/AppArmor/apparmor_2/output2
for profile in ./apparmor.d/bin.ping ./apparmor.d/lsb_release ./apparmor.d/nvidia_modprobe ./apparmor.d/php-fpm ./apparmor.d/samba-bgqd ./apparmor.d/samba-dcerpcd ./apparmor.d/samba-rpcd ./apparmor.d/samba-rpcd-classic ./apparmor.d/samba-rpcd-spoolss ./apparmor.d/sbin.klogd ./apparmor.d/sbin.syslogd ./apparmor.d/sbin.syslog-ng ./apparmor.d/usr.lib.apache2.mpm-prefork.apache2 ./apparmor.d/usr.lib.dovecot.anvil ./apparmor.d/usr.lib.dovecot.auth ./apparmor.d/usr.lib.dovecot.config ./apparmor.d/usr.lib.dovecot.deliver ./apparmor.d/usr.lib.dovecot.dict ./apparmor.d/usr.lib.dovecot.director ./apparmor.d/usr.lib.dovecot.doveadm-server ./apparmor.d/usr.lib.dovecot.dovecot-auth ./apparmor.d/usr.lib.dovecot.dovecot-lda ./apparmor.d/usr.lib.dovecot.imap ./apparmor.d/usr.lib.dovecot.imap-login ./apparmor.d/usr.lib.dovecot.lmtp ./apparmor.d/usr.lib.dovecot.log ./apparmor.d/usr.lib.dovecot.managesieve ./apparmor.d/usr.lib.dovecot.managesieve-login ./apparmor.d/usr.lib.dovecot.pop3 ./apparmor.d/usr.lib.dovecot.pop3-login ./apparmor.d/usr.lib.dovecot.replicator ./apparmor.d/usr.lib.dovecot.script-login ./apparmor.d/usr.lib.dovecot.ssl-params ./apparmor.d/usr.lib.dovecot.stats ./apparmor.d/usr.sbin.apache2 ./apparmor.d/usr.sbin.avahi-daemon ./apparmor.d/usr.sbin.dnsmasq ./apparmor.d/usr.sbin.dovecot ./apparmor.d/usr.sbin.identd ./apparmor.d/usr.sbin.mdnsd ./apparmor.d/usr.sbin.nmbd ./apparmor.d/usr.sbin.nscd ./apparmor.d/usr.sbin.ntpd ./apparmor.d/usr.sbin.smbd ./apparmor.d/usr.sbin.smbldap-useradd ./apparmor.d/usr.sbin.traceroute ./apparmor.d/usr.sbin.winbindd ./apparmor.d/zgrep; do \
fn=$(basename $profile); \
echo "# Site-specific additions and overrides for '$fn'" > ./apparmor.d/local/$fn; \
grep "include[[:space:]]\\+if[[:space:]]\\+exists[[:space:]]\\+<local/$fn>" "$profile" >/dev/null || { echo "$profile doesn't contain include if exists <local/$fn>" ; exit 1; } ; \
done
install -m 755 -d /home/penghao/AppArmor/apparmor_2/output2/etc/apparmor.d
install -m 755 -d /home/penghao/AppArmor/apparmor_2/output2/etc/apparmor.d/disable
for dir in ./apparmor.d ./apparmor.d/abstractions ./apparmor.d/abstractions/ubuntu-browsers.d ./apparmor.d/abstractions/apparmor_api ./apparmor.d/local ./apparmor.d/apache2.d ./apparmor.d/tunables ./apparmor.d/tunables/home.d ./apparmor.d/tunables/xdg-user-dirs.d ./apparmor.d/tunables/multiarch.d ./apparmor.d/abi ; do \
install -m 755 -d "/home/penghao/AppArmor/apparmor_2/output2/etc/apparmor.d/${dir#./apparmor.d}" ; \
done
for file in $(find ./apparmor.d -type f -print) ; do \
install -m 644 "${file}" "/home/penghao/AppArmor/apparmor_2/output2/etc/apparmor.d/$(dirname ${file#./apparmor.d})" ; \
done
install -m 755 -d /home/penghao/AppArmor/apparmor_2/output2/usr/share/apparmor/extra-profiles/
install -m 644 ./apparmor/profiles/extras//* /home/penghao/AppArmor/apparmor_2/output2/usr/share/apparmor/extra-profiles/
(5)查看生成内容
查看一下通过make DESTDIR=/home/penghao/AppArmor/apparmor_2/output2配置后实际的生成文件及路径:
$ tree ../../output2
../../output2
├── etc
│ └── apparmor.d
│ ├── abi
│ │ ├── 3.0
│ │ ├── kernel-5.4-outoftree-network
│ │ └── kernel-5.4-vanilla
│ ├── abstractions
│ │ ├── apache2-common
│ │ ├── apparmor_api
│ │ │ ├── change_profile
│ │ │ ├── examine
│ │ │ ├── find_mountpoint
│ │ │ ├── introspect
│ │ │ └── is_enabled
│ │ ├── aspell
│ │ ├── audio
│ │ ├── authentication
│ │ ├── base
│ │ ├── bash
│ │ ├── consoles
│ │ ├── crypto
│ │ ├── cups-client
│ │ ├── dbus
│ │ ├── dbus-accessibility
│ │ ├── dbus-accessibility-strict
│ │ ├── dbus-network-manager-strict
│ │ ├── dbus-session
│ │ ├── dbus-session-strict
│ │ ├── dbus-strict
│ │ ├── dconf
│ │ ├── dovecot-common
│ │ ├── dri-common
│ │ ├── dri-enumerate
│ │ ├── enchant
│ │ ├── exo-open
│ │ ├── fcitx
│ │ ├── fcitx-strict
│ │ ├── fonts
│ │ ├── freedesktop.org
│ │ ├── gio-open
│ │ ├── gnome
│ │ ├── gnupg
│ │ ├── groff
│ │ ├── gtk
│ │ ├── gvfs-open
│ │ ├── hosts_access
│ │ ├── ibus
│ │ ├── kde
│ │ ├── kde-globals-write
│ │ ├── kde-icon-cache-write
│ │ ├── kde-language-write
│ │ ├── kde-open5
│ │ ├── kerberosclient
│ │ ├── ldapclient
│ │ ├── libpam-systemd
│ │ ├── likewise
│ │ ├── mdns
│ │ ├── mesa
│ │ ├── mir
│ │ ├── mozc
│ │ ├── mysql
│ │ ├── nameservice
│ │ ├── nis
│ │ ├── nss-systemd
│ │ ├── nvidia
│ │ ├── opencl
│ │ ├── opencl-common
│ │ ├── opencl-intel
│ │ ├── opencl-mesa
│ │ ├── opencl-nvidia
│ │ ├── opencl-pocl
│ │ ├── openssl
│ │ ├── orbit2
│ │ ├── p11-kit
│ │ ├── perl
│ │ ├── php
│ │ ├── php5
│ │ ├── php-worker
│ │ ├── postfix-common
│ │ ├── private-files
│ │ ├── private-files-strict
│ │ ├── python
│ │ ├── qt5
│ │ ├── qt5-compose-cache-write
│ │ ├── qt5-settings-write
│ │ ├── recent-documents-write
│ │ ├── ruby
│ │ ├── samba
│ │ ├── samba-rpcd
│ │ ├── smbpass
│ │ ├── snap_browsers
│ │ ├── ssl_certs
│ │ ├── ssl_keys
│ │ ├── svn-repositories
│ │ ├── trash
│ │ ├── ubuntu-bittorrent-clients
│ │ ├── ubuntu-browsers
│ │ ├── ubuntu-browsers.d
│ │ │ ├── chromium-browser
│ │ │ ├── java
│ │ │ ├── kde
│ │ │ ├── mailto
│ │ │ ├── multimedia
│ │ │ ├── plugins-common
│ │ │ ├── productivity
│ │ │ ├── text-editors
│ │ │ ├── ubuntu-integration
│ │ │ ├── ubuntu-integration-xul
│ │ │ └── user-files
│ │ ├── ubuntu-console-browsers
│ │ ├── ubuntu-console-email
│ │ ├── ubuntu-email
│ │ ├── ubuntu-feed-readers
│ │ ├── ubuntu-gnome-terminal
│ │ ├── ubuntu-helpers
│ │ ├── ubuntu-konsole
│ │ ├── ubuntu-media-players
│ │ ├── ubuntu-unity7-base
│ │ ├── ubuntu-unity7-launcher
│ │ ├── ubuntu-unity7-messaging
│ │ ├── ubuntu-xterm
│ │ ├── user-download
│ │ ├── user-mail
│ │ ├── user-manpages
│ │ ├── user-tmp
│ │ ├── user-write
│ │ ├── video
│ │ ├── vulkan
│ │ ├── wayland
│ │ ├── web-data
│ │ ├── winbind
│ │ ├── wutmp
│ │ ├── X
│ │ ├── xad
│ │ ├── xdg-desktop
│ │ └── xdg-open
│ ├── apache2.d
│ │ └── phpsysinfo
│ ├── bin.ping
│ ├── disable
│ ├── local
│ │ ├── bin.ping
│ │ ├── lsb_release
│ │ ├── nvidia_modprobe
│ │ ├── php-fpm
│ │ ├── README
│ │ ├── samba-bgqd
│ │ ├── samba-dcerpcd
│ │ ├── samba-rpcd
│ │ ├── samba-rpcd-classic
│ │ ├── samba-rpcd-spoolss
│ │ ├── sbin.klogd
│ │ ├── sbin.syslogd
│ │ ├── sbin.syslog-ng
│ │ ├── usr.lib.apache2.mpm-prefork.apache2
│ │ ├── usr.lib.dovecot.anvil
│ │ ├── usr.lib.dovecot.auth
│ │ ├── usr.lib.dovecot.config
│ │ ├── usr.lib.dovecot.deliver
│ │ ├── usr.lib.dovecot.dict
│ │ ├── usr.lib.dovecot.director
│ │ ├── usr.lib.dovecot.doveadm-server
│ │ ├── usr.lib.dovecot.dovecot-auth
│ │ ├── usr.lib.dovecot.dovecot-lda
│ │ ├── usr.lib.dovecot.imap
│ │ ├── usr.lib.dovecot.imap-login
│ │ ├── usr.lib.dovecot.lmtp
│ │ ├── usr.lib.dovecot.log
│ │ ├── usr.lib.dovecot.managesieve
│ │ ├── usr.lib.dovecot.managesieve-login
│ │ ├── usr.lib.dovecot.pop3
│ │ ├── usr.lib.dovecot.pop3-login
│ │ ├── usr.lib.dovecot.replicator
│ │ ├── usr.lib.dovecot.script-login
│ │ ├── usr.lib.dovecot.ssl-params
│ │ ├── usr.lib.dovecot.stats
│ │ ├── usr.sbin.apache2
│ │ ├── usr.sbin.avahi-daemon
│ │ ├── usr.sbin.dnsmasq
│ │ ├── usr.sbin.dovecot
│ │ ├── usr.sbin.identd
│ │ ├── usr.sbin.mdnsd
│ │ ├── usr.sbin.nmbd
│ │ ├── usr.sbin.nscd
│ │ ├── usr.sbin.ntpd
│ │ ├── usr.sbin.smbd
│ │ ├── usr.sbin.smbldap-useradd
│ │ ├── usr.sbin.traceroute
│ │ ├── usr.sbin.winbindd
│ │ └── zgrep
│ ├── lsb_release
│ ├── nvidia_modprobe
│ ├── php-fpm
│ ├── samba-bgqd
│ ├── samba-dcerpcd
│ ├── samba-rpcd
│ ├── samba-rpcd-classic
│ ├── samba-rpcd-spoolss
│ ├── sbin.klogd
│ ├── sbin.syslogd
│ ├── sbin.syslog-ng
│ ├── tunables
│ │ ├── alias
│ │ ├── apparmorfs
│ │ ├── dovecot
│ │ ├── etc
│ │ ├── global
│ │ ├── home
│ │ ├── home.d
│ │ │ └── site.local
│ │ ├── kernelvars
│ │ ├── multiarch
│ │ ├── multiarch.d
│ │ │ └── site.local
│ │ ├── ntpd
│ │ ├── proc
│ │ ├── run
│ │ ├── securityfs
│ │ ├── share
│ │ ├── sys
│ │ ├── xdg-user-dirs
│ │ └── xdg-user-dirs.d
│ │ └── site.local
│ ├── usr.lib.apache2.mpm-prefork.apache2
│ ├── usr.lib.dovecot.anvil
│ ├── usr.lib.dovecot.auth
│ ├── usr.lib.dovecot.config
│ ├── usr.lib.dovecot.deliver
│ ├── usr.lib.dovecot.dict
│ ├── usr.lib.dovecot.director
│ ├── usr.lib.dovecot.doveadm-server
│ ├── usr.lib.dovecot.dovecot-auth
│ ├── usr.lib.dovecot.dovecot-lda
│ ├── usr.lib.dovecot.imap
│ ├── usr.lib.dovecot.imap-login
│ ├── usr.lib.dovecot.lmtp
│ ├── usr.lib.dovecot.log
│ ├── usr.lib.dovecot.managesieve
│ ├── usr.lib.dovecot.managesieve-login
│ ├── usr.lib.dovecot.pop3
│ ├── usr.lib.dovecot.pop3-login
│ ├── usr.lib.dovecot.replicator
│ ├── usr.lib.dovecot.script-login
│ ├── usr.lib.dovecot.ssl-params
│ ├── usr.lib.dovecot.stats
│ ├── usr.sbin.apache2
│ ├── usr.sbin.avahi-daemon
│ ├── usr.sbin.dnsmasq
│ ├── usr.sbin.dovecot
│ ├── usr.sbin.identd
│ ├── usr.sbin.mdnsd
│ ├── usr.sbin.nmbd
│ ├── usr.sbin.nscd
│ ├── usr.sbin.ntpd
│ ├── usr.sbin.smbd
│ ├── usr.sbin.smbldap-useradd
│ ├── usr.sbin.traceroute
│ ├── usr.sbin.winbindd
│ └── zgrep
└── usr
└── share
└── apparmor
└── extra-profiles
├── bin.netstat
├── chromium_browser
├── etc.cron.daily.logrotate
├── etc.cron.daily.slocate.cron
├── etc.cron.daily.tmpwatch
├── firefox
├── firefox.sh
├── postfix-anvil
├── postfix-bounce
├── postfix-cleanup
├── postfix-discard
├── postfix-dnsblog
├── postfix-error
├── postfix-flush
├── postfix-lmtp
├── postfix-local
├── postfix-master
├── postfix-nqmgr
├── postfix-oqmgr
├── postfix-pickup
├── postfix-pipe
├── postfix-postscreen
├── postfix-proxymap
├── postfix-qmgr
├── postfix-qmqpd
├── postfix-scache
├── postfix-showq
├── postfix-smtp
├── postfix-smtpd
├── postfix-spawn
├── postfix-tlsmgr
├── postfix-trivial-rewrite
├── postfix-verify
├── postfix-virtual
├── README
├── rpcbind
├── sbin.dhclient
├── sbin.dhclient-script
├── sbin.dhcpcd
├── sbin.portmap
├── sbin.resmgrd
├── sbin.rpc.lockd
├── sbin.rpc.statd
├── usr.bin.acroread
├── usr.bin.apropos
├── usr.bin.dumpcap
├── usr.bin.evolution-2.10
├── usr.bin.fam
├── usr.bin.freshclam
├── usr.bin.gaim
├── usr.bin.man
├── usr.bin.mlmmj-bounce
├── usr.bin.mlmmj-maintd
├── usr.bin.mlmmj-make-ml.sh
├── usr.bin.mlmmj-process
├── usr.bin.mlmmj-receive
├── usr.bin.mlmmj-recieve
├── usr.bin.mlmmj-send
├── usr.bin.mlmmj-sub
├── usr.bin.mlmmj-unsub
├── usr.bin.opera
├── usr.bin.passwd
├── usr.bin.procmail
├── usr.bin.pyzorsocket
├── usr.bin.razorsocket
├── usr.bin.skype
├── usr.bin.spamc
├── usr.bin.svnserve
├── usr.bin.wireshark
├── usr.bin.xfs
├── usr.lib64.GConf.2.gconfd-2
├── usr.lib.bonobo.bonobo-activation-server
├── usr.lib.evolution-data-server.evolution-data-server-1.10
├── usr.lib.firefox.mozilla-xremote-client
├── usr.lib.GConf.2.gconfd-2
├── usr.lib.man-db.man
├── usr.lib.RealPlayer10.realplay
├── usr.NX.bin.nxclient
├── usr.sbin.clamd
├── usr.sbin.cupsd
├── usr.sbin.dhcpd
├── usr.sbin.haproxy
├── usr.sbin.httpd2-prefork
├── usr.sbin.imapd
├── usr.sbin.in.fingerd
├── usr.sbin.in.ftpd
├── usr.sbin.in.ntalkd
├── usr.sbin.ipop2d
├── usr.sbin.ipop3d
├── usr.sbin.lighttpd
├── usr.sbin.mysqld
├── usr.sbin.oidentd
├── usr.sbin.popper
├── usr.sbin.postalias
├── usr.sbin.postdrop
├── usr.sbin.postmap
├── usr.sbin.postqueue
├── usr.sbin.sendmail
├── usr.sbin.sendmail.postfix
├── usr.sbin.sendmail.sendmail
├── usr.sbin.spamd
├── usr.sbin.squid
├── usr.sbin.sshd
├── usr.sbin.useradd
├── usr.sbin.userdel
├── usr.sbin.vsftpd
└── usr.sbin.xinetd
17 directories, 353 files
这里将生成目标放到了output2文件夹下,是为了看清楚Profiles都生成了哪些内容。最终还是要安装到之前的output目录下。
更换DESTDIR=参数后再次进行安装,实际命令及结果如下:
$ make install DESTDIR=/home/penghao/AppArmor/apparmor_2/output
for profile in ./apparmor.d/bin.ping ./apparmor.d/lsb_release ./apparmor.d/nvidia_modprobe ./apparmor.d/php-fpm ./apparmor.d/samba-bgqd ./apparmor.d/samba-dcerpcd ./apparmor.d/samba-rpcd ./apparmor.d/samba-rpcd-classic ./apparmor.d/samba-rpcd-spoolss ./apparmor.d/sbin.klogd ./apparmor.d/sbin.syslogd ./apparmor.d/sbin.syslog-ng ./apparmor.d/usr.lib.apache2.mpm-prefork.apache2 ./apparmor.d/usr.lib.dovecot.anvil ./apparmor.d/usr.lib.dovecot.auth ./apparmor.d/usr.lib.dovecot.config ./apparmor.d/usr.lib.dovecot.deliver ./apparmor.d/usr.lib.dovecot.dict ./apparmor.d/usr.lib.dovecot.director ./apparmor.d/usr.lib.dovecot.doveadm-server ./apparmor.d/usr.lib.dovecot.dovecot-auth ./apparmor.d/usr.lib.dovecot.dovecot-lda ./apparmor.d/usr.lib.dovecot.imap ./apparmor.d/usr.lib.dovecot.imap-login ./apparmor.d/usr.lib.dovecot.lmtp ./apparmor.d/usr.lib.dovecot.log ./apparmor.d/usr.lib.dovecot.managesieve ./apparmor.d/usr.lib.dovecot.managesieve-login ./apparmor.d/usr.lib.dovecot.pop3 ./apparmor.d/usr.lib.dovecot.pop3-login ./apparmor.d/usr.lib.dovecot.replicator ./apparmor.d/usr.lib.dovecot.script-login ./apparmor.d/usr.lib.dovecot.ssl-params ./apparmor.d/usr.lib.dovecot.stats ./apparmor.d/usr.sbin.apache2 ./apparmor.d/usr.sbin.avahi-daemon ./apparmor.d/usr.sbin.dnsmasq ./apparmor.d/usr.sbin.dovecot ./apparmor.d/usr.sbin.identd ./apparmor.d/usr.sbin.mdnsd ./apparmor.d/usr.sbin.nmbd ./apparmor.d/usr.sbin.nscd ./apparmor.d/usr.sbin.ntpd ./apparmor.d/usr.sbin.smbd ./apparmor.d/usr.sbin.smbldap-useradd ./apparmor.d/usr.sbin.traceroute ./apparmor.d/usr.sbin.winbindd ./apparmor.d/zgrep; do \
fn=$(basename $profile); \
echo "# Site-specific additions and overrides for '$fn'" > ./apparmor.d/local/$fn; \
grep "include[[:space:]]\\+if[[:space:]]\\+exists[[:space:]]\\+<local/$fn>" "$profile" >/dev/null || { echo "$profile doesn't contain include if exists <local/$fn>" ; exit 1; } ; \
done
install -m 755 -d /home/penghao/AppArmor/apparmor_2/output/etc/apparmor.d
install -m 755 -d /home/penghao/AppArmor/apparmor_2/output/etc/apparmor.d/disable
for dir in ./apparmor.d ./apparmor.d/abstractions ./apparmor.d/abstractions/ubuntu-browsers.d ./apparmor.d/abstractions/apparmor_api ./apparmor.d/local ./apparmor.d/apache2.d ./apparmor.d/tunables ./apparmor.d/tunables/home.d ./apparmor.d/tunables/xdg-user-dirs.d ./apparmor.d/tunables/multiarch.d ./apparmor.d/abi ; do \
install -m 755 -d "/home/penghao/AppArmor/apparmor_2/output/etc/apparmor.d/${dir#./apparmor.d}" ; \
done
for file in $(find ./apparmor.d -type f -print) ; do \
install -m 644 "${file}" "/home/penghao/AppArmor/apparmor_2/output/etc/apparmor.d/$(dirname ${file#./apparmor.d})" ; \
done
install -m 755 -d /home/penghao/AppArmor/apparmor_2/output/usr/share/apparmor/extra-profiles/
install -m 644 ./apparmor/profiles/extras//* /home/penghao/AppArmor/apparmor_2/output/usr/share/apparmor/extra-profiles/
对比一下output在安装Profiles前后的变化:
安装前文章来源:https://www.toymoban.com/news/detail-421092.html
$ tree ../../output
../../output
├── etc
│ └── apparmor
│ ├── easyprof.conf
│ ├── logprof.conf
│ ├── notify.conf
│ ├── parser.conf
│ └── severity.db
├── lib
│ ├── apparmor
│ │ ├── profile-load
│ │ └── rc.apparmor.functions
│ └── security
│ └── pam_apparmor.so
├── sbin
│ └── apparmor_parser
├── usr
│ ├── bin
│ │ ├── aa-easyprof
│ │ ├── aa-enabled
│ │ ├── aa-exec
│ │ └── aa-features-abi
│ ├── lib
│ │ └── python3.10
│ │ └── site-packages
│ │ ├── apparmor
│ │ │ ├── aa.py
│ │ │ ├── aare.py
│ │ │ ├── cleanprofile.py
│ │ │ ├── common.py
│ │ │ ├── config.py
│ │ │ ├── easyprof.py
│ │ │ ├── fail.py
│ │ │ ├── __init__.py
│ │ │ ├── logparser.py
│ │ │ ├── notify.py
│ │ │ ├── profile_list.py
│ │ │ ├── profile_storage.py
│ │ │ ├── __pycache__
│ │ │ │ ├── aa.cpython-310.pyc
│ │ │ │ ├── aare.cpython-310.pyc
│ │ │ │ ├── cleanprofile.cpython-310.pyc
│ │ │ │ ├── common.cpython-310.pyc
│ │ │ │ ├── config.cpython-310.pyc
│ │ │ │ ├── easyprof.cpython-310.pyc
│ │ │ │ ├── fail.cpython-310.pyc
│ │ │ │ ├── __init__.cpython-310.pyc
│ │ │ │ ├── logparser.cpython-310.pyc
│ │ │ │ ├── notify.cpython-310.pyc
│ │ │ │ ├── profile_list.cpython-310.pyc
│ │ │ │ ├── profile_storage.cpython-310.pyc
│ │ │ │ ├── regex.cpython-310.pyc
│ │ │ │ ├── rules.cpython-310.pyc
│ │ │ │ ├── sandbox.cpython-310.pyc
│ │ │ │ ├── severity.cpython-310.pyc
│ │ │ │ ├── tools.cpython-310.pyc
│ │ │ │ ├── translations.cpython-310.pyc
│ │ │ │ └── ui.cpython-310.pyc
│ │ │ ├── regex.py
│ │ │ ├── rule
│ │ │ │ ├── abi.py
│ │ │ │ ├── alias.py
│ │ │ │ ├── boolean.py
│ │ │ │ ├── capability.py
│ │ │ │ ├── change_profile.py
│ │ │ │ ├── dbus.py
│ │ │ │ ├── file.py
│ │ │ │ ├── include.py
│ │ │ │ ├── __init__.py
│ │ │ │ ├── mqueue.py
│ │ │ │ ├── network.py
│ │ │ │ ├── ptrace.py
│ │ │ │ ├── __pycache__
│ │ │ │ │ ├── abi.cpython-310.pyc
│ │ │ │ │ ├── alias.cpython-310.pyc
│ │ │ │ │ ├── boolean.cpython-310.pyc
│ │ │ │ │ ├── capability.cpython-310.pyc
│ │ │ │ │ ├── change_profile.cpython-310.pyc
│ │ │ │ │ ├── dbus.cpython-310.pyc
│ │ │ │ │ ├── file.cpython-310.pyc
│ │ │ │ │ ├── include.cpython-310.pyc
│ │ │ │ │ ├── __init__.cpython-310.pyc
│ │ │ │ │ ├── mqueue.cpython-310.pyc
│ │ │ │ │ ├── network.cpython-310.pyc
│ │ │ │ │ ├── ptrace.cpython-310.pyc
│ │ │ │ │ ├── rlimit.cpython-310.pyc
│ │ │ │ │ ├── signal.cpython-310.pyc
│ │ │ │ │ ├── userns.cpython-310.pyc
│ │ │ │ │ └── variable.cpython-310.pyc
│ │ │ │ ├── rlimit.py
│ │ │ │ ├── signal.py
│ │ │ │ ├── userns.py
│ │ │ │ └── variable.py
│ │ │ ├── rules.py
│ │ │ ├── sandbox.py
│ │ │ ├── severity.py
│ │ │ ├── tools.py
│ │ │ ├── translations.py
│ │ │ └── ui.py
│ │ └── apparmor-3.1.0-py3.10.egg-info
│ │ ├── dependency_links.txt
│ │ ├── PKG-INFO
│ │ ├── SOURCES.txt
│ │ └── top_level.txt
│ ├── local
│ │ ├── include
│ │ │ ├── aalogparse
│ │ │ │ └── aalogparse.h
│ │ │ └── sys
│ │ │ ├── apparmor.h
│ │ │ └── apparmor_private.h
│ │ ├── lib
│ │ │ ├── libapparmor.a
│ │ │ ├── libapparmor.la
│ │ │ ├── libapparmor.so -> libapparmor.so.1.12.2
│ │ │ ├── libapparmor.so.1 -> libapparmor.so.1.12.2
│ │ │ ├── libapparmor.so.1.12.2
│ │ │ ├── perl5
│ │ │ │ └── 5.36
│ │ │ │ ├── core_perl
│ │ │ │ │ └── perllocal.pod
│ │ │ │ └── vendor_perl
│ │ │ │ ├── auto
│ │ │ │ │ └── LibAppArmor
│ │ │ │ │ └── LibAppArmor.so
│ │ │ │ └── LibAppArmor.pm
│ │ │ ├── pkgconfig
│ │ │ │ └── libapparmor.pc
│ │ │ └── python3.10
│ │ │ └── site-packages
│ │ │ ├── LibAppArmor
│ │ │ │ ├── __init__.py
│ │ │ │ ├── _LibAppArmor.cpython-310-x86_64-linux-gnu.so
│ │ │ │ ├── LibAppArmor.py
│ │ │ │ └── __pycache__
│ │ │ │ ├── __init__.cpython-310.pyc
│ │ │ │ └── LibAppArmor.cpython-310.pyc
│ │ │ └── LibAppArmor-3.1.0-py3.10.egg-info
│ │ │ ├── dependency_links.txt
│ │ │ ├── PKG-INFO
│ │ │ ├── SOURCES.txt
│ │ │ └── top_level.txt
│ │ └── share
│ │ └── man
│ │ ├── man2
│ │ │ ├── aa_change_hat.2
│ │ │ ├── aa_change_profile.2
│ │ │ ├── aa_find_mountpoint.2
│ │ │ ├── aa_getcon.2
│ │ │ ├── aa_query_label.2
│ │ │ └── aa_stack_profile.2
│ │ └── man3
│ │ ├── aa_features.3
│ │ ├── aa_kernel_interface.3
│ │ ├── aa_policy_cache.3
│ │ └── aa_splitcon.3
│ ├── sbin
│ │ ├── aa-audit
│ │ ├── aa-autodep
│ │ ├── aa-cleanprof
│ │ ├── aa-complain
│ │ ├── aa-decode
│ │ ├── aa-disable
│ │ ├── aa-enforce
│ │ ├── aa-genprof
│ │ ├── aa-logprof
│ │ ├── aa-mergeprof
│ │ ├── aa-notify
│ │ ├── aa-remove-unknown
│ │ ├── aa-status
│ │ ├── aa-unconfined
│ │ └── apparmor_status -> aa-status
│ └── share
│ ├── apparmor
│ │ ├── apparmor.vim
│ │ └── easyprof
│ │ ├── policygroups
│ │ │ ├── opt-application
│ │ │ └── user-application
│ │ └── templates
│ │ ├── default
│ │ ├── sandbox
│ │ ├── sandbox-x
│ │ └── user-application
│ ├── locale
│ │ ├── af
│ │ │ └── LC_MESSAGES
│ │ │ ├── aa-binutils.mo
│ │ │ ├── apparmor-parser.mo
│ │ │ └── apparmor-utils.mo
│ │ ├── ar
│ │ │ └── LC_MESSAGES
│ │ │ └── apparmor-parser.mo
│ │ ├── be
│ │ │ └── LC_MESSAGES
│ │ │ └── apparmor-utils.mo
│ │ ├── bg
│ │ │ └── LC_MESSAGES
│ │ │ └── apparmor-parser.mo
│ │ ├── bn
│ │ │ └── LC_MESSAGES
│ │ │ └── apparmor-parser.mo
│ │ ├── bo
│ │ │ └── LC_MESSAGES
│ │ │ ├── apparmor-parser.mo
│ │ │ └── apparmor-utils.mo
│ │ ├── bs
│ │ │ └── LC_MESSAGES
│ │ │ ├── apparmor-parser.mo
│ │ │ └── apparmor-utils.mo
│ │ ├── ca
│ │ │ └── LC_MESSAGES
│ │ │ └── apparmor-parser.mo
│ │ ├── ce
│ │ │ └── LC_MESSAGES
│ │ │ └── apparmor-parser.mo
│ │ ├── cs
│ │ │ └── LC_MESSAGES
│ │ │ ├── apparmor-parser.mo
│ │ │ └── apparmor-utils.mo
│ │ ├── cy
│ │ │ └── LC_MESSAGES
│ │ │ └── apparmor-parser.mo
│ │ ├── da
│ │ │ └── LC_MESSAGES
│ │ │ └── apparmor-parser.mo
│ │ ├── de
│ │ │ └── LC_MESSAGES
│ │ │ ├── aa-binutils.mo
│ │ │ ├── apparmor-parser.mo
│ │ │ └── apparmor-utils.mo
│ │ ├── el
│ │ │ └── LC_MESSAGES
│ │ │ └── apparmor-parser.mo
│ │ ├── en_AU
│ │ │ └── LC_MESSAGES
│ │ │ └── apparmor-parser.mo
│ │ ├── en_CA
│ │ │ └── LC_MESSAGES
│ │ │ └── apparmor-parser.mo
│ │ ├── en_GB
│ │ │ └── LC_MESSAGES
│ │ │ ├── aa-binutils.mo
│ │ │ ├── apparmor-parser.mo
│ │ │ └── apparmor-utils.mo
│ │ ├── es
│ │ │ └── LC_MESSAGES
│ │ │ ├── aa-binutils.mo
│ │ │ ├── apparmor-parser.mo
│ │ │ └── apparmor-utils.mo
│ │ ├── et
│ │ │ └── LC_MESSAGES
│ │ │ └── apparmor-parser.mo
│ │ ├── fa
│ │ │ └── LC_MESSAGES
│ │ │ ├── aa-binutils.mo
│ │ │ ├── apparmor-parser.mo
│ │ │ └── apparmor-utils.mo
│ │ ├── fi
│ │ │ └── LC_MESSAGES
│ │ │ ├── aa-binutils.mo
│ │ │ └── apparmor-parser.mo
│ │ ├── fr
│ │ │ └── LC_MESSAGES
│ │ │ ├── apparmor-parser.mo
│ │ │ └── apparmor-utils.mo
│ │ ├── gl
│ │ │ └── LC_MESSAGES
│ │ │ ├── apparmor-parser.mo
│ │ │ └── apparmor-utils.mo
│ │ ├── gu
│ │ │ └── LC_MESSAGES
│ │ │ └── apparmor-parser.mo
│ │ ├── he
│ │ │ └── LC_MESSAGES
│ │ │ └── apparmor-parser.mo
│ │ ├── hi
│ │ │ └── LC_MESSAGES
│ │ │ ├── apparmor-parser.mo
│ │ │ └── apparmor-utils.mo
│ │ ├── hr
│ │ │ └── LC_MESSAGES
│ │ │ └── apparmor-parser.mo
│ │ ├── hu
│ │ │ └── LC_MESSAGES
│ │ │ └── apparmor-parser.mo
│ │ ├── id
│ │ │ └── LC_MESSAGES
│ │ │ ├── aa-binutils.mo
│ │ │ ├── apparmor-parser.mo
│ │ │ └── apparmor-utils.mo
│ │ ├── it
│ │ │ └── LC_MESSAGES
│ │ │ ├── apparmor-parser.mo
│ │ │ └── apparmor-utils.mo
│ │ ├── ja
│ │ │ └── LC_MESSAGES
│ │ │ └── apparmor-parser.mo
│ │ ├── ka
│ │ │ └── LC_MESSAGES
│ │ │ └── apparmor-parser.mo
│ │ ├── km
│ │ │ └── LC_MESSAGES
│ │ │ └── apparmor-parser.mo
│ │ ├── ko
│ │ │ └── LC_MESSAGES
│ │ │ ├── apparmor-parser.mo
│ │ │ └── apparmor-utils.mo
│ │ ├── lo
│ │ │ └── LC_MESSAGES
│ │ │ └── apparmor-parser.mo
│ │ ├── lt
│ │ │ └── LC_MESSAGES
│ │ │ └── apparmor-parser.mo
│ │ ├── mk
│ │ │ └── LC_MESSAGES
│ │ │ └── apparmor-parser.mo
│ │ ├── mr
│ │ │ └── LC_MESSAGES
│ │ │ └── apparmor-parser.mo
│ │ ├── ms
│ │ │ └── LC_MESSAGES
│ │ │ └── apparmor-parser.mo
│ │ ├── nb
│ │ │ └── LC_MESSAGES
│ │ │ └── apparmor-parser.mo
│ │ ├── nl
│ │ │ └── LC_MESSAGES
│ │ │ └── apparmor-parser.mo
│ │ ├── oc
│ │ │ └── LC_MESSAGES
│ │ │ ├── apparmor-parser.mo
│ │ │ └── apparmor-utils.mo
│ │ ├── pa
│ │ │ └── LC_MESSAGES
│ │ │ └── apparmor-parser.mo
│ │ ├── pl
│ │ │ └── LC_MESSAGES
│ │ │ ├── apparmor-parser.mo
│ │ │ └── apparmor-utils.mo
│ │ ├── pt
│ │ │ └── LC_MESSAGES
│ │ │ ├── aa-binutils.mo
│ │ │ ├── apparmor-parser.mo
│ │ │ └── apparmor-utils.mo
│ │ ├── pt_BR
│ │ │ └── LC_MESSAGES
│ │ │ ├── apparmor-parser.mo
│ │ │ └── apparmor-utils.mo
│ │ ├── ro
│ │ │ └── LC_MESSAGES
│ │ │ ├── aa-binutils.mo
│ │ │ ├── apparmor-parser.mo
│ │ │ └── apparmor-utils.mo
│ │ ├── ru
│ │ │ └── LC_MESSAGES
│ │ │ ├── aa-binutils.mo
│ │ │ ├── apparmor-parser.mo
│ │ │ └── apparmor-utils.mo
│ │ ├── si
│ │ │ └── LC_MESSAGES
│ │ │ └── apparmor-parser.mo
│ │ ├── sk
│ │ │ └── LC_MESSAGES
│ │ │ └── apparmor-parser.mo
│ │ ├── sl
│ │ │ └── LC_MESSAGES
│ │ │ └── apparmor-parser.mo
│ │ ├── sq
│ │ │ └── LC_MESSAGES
│ │ │ └── apparmor-parser.mo
│ │ ├── sr
│ │ │ └── LC_MESSAGES
│ │ │ └── apparmor-parser.mo
│ │ ├── sv
│ │ │ └── LC_MESSAGES
│ │ │ ├── aa-binutils.mo
│ │ │ ├── apparmor-parser.mo
│ │ │ └── apparmor-utils.mo
│ │ ├── sw
│ │ │ └── LC_MESSAGES
│ │ │ └── aa-binutils.mo
│ │ ├── ta
│ │ │ └── LC_MESSAGES
│ │ │ └── apparmor-parser.mo
│ │ ├── th
│ │ │ └── LC_MESSAGES
│ │ │ └── apparmor-parser.mo
│ │ ├── tr
│ │ │ └── LC_MESSAGES
│ │ │ ├── aa-binutils.mo
│ │ │ ├── apparmor-parser.mo
│ │ │ └── apparmor-utils.mo
│ │ ├── ug
│ │ │ └── LC_MESSAGES
│ │ │ ├── apparmor-parser.mo
│ │ │ └── apparmor-utils.mo
│ │ ├── uk
│ │ │ └── LC_MESSAGES
│ │ │ ├── apparmor-parser.mo
│ │ │ └── apparmor-utils.mo
│ │ ├── vi
│ │ │ └── LC_MESSAGES
│ │ │ └── apparmor-parser.mo
│ │ ├── wa
│ │ │ └── LC_MESSAGES
│ │ │ └── apparmor-parser.mo
│ │ ├── xh
│ │ │ └── LC_MESSAGES
│ │ │ └── apparmor-parser.mo
│ │ ├── zh_CN
│ │ │ └── LC_MESSAGES
│ │ │ ├── apparmor-parser.mo
│ │ │ └── apparmor-utils.mo
│ │ ├── zh_TW
│ │ │ └── LC_MESSAGES
│ │ │ └── apparmor-parser.mo
│ │ └── zu
│ │ └── LC_MESSAGES
│ │ └── apparmor-parser.mo
│ └── man
│ ├── man1
│ │ ├── aa-enabled.1
│ │ ├── aa-exec.1
│ │ └── aa-features-abi.1
│ ├── man5
│ │ ├── apparmor.d.5
│ │ ├── apparmor.vim.5
│ │ └── logprof.conf.5
│ ├── man7
│ │ ├── apparmor.7
│ │ └── apparmor_xattrs.7
│ └── man8
│ ├── aa-audit.8
│ ├── aa-autodep.8
│ ├── aa-cleanprof.8
│ ├── aa-complain.8
│ ├── aa-decode.8
│ ├── aa-disable.8
│ ├── aa-easyprof.8
│ ├── aa-enforce.8
│ ├── aa-genprof.8
│ ├── aa-logprof.8
│ ├── aa-mergeprof.8
│ ├── aa-notify.8
│ ├── aa-remove-unknown.8
│ ├── aa-status.8
│ ├── aa-teardown.8
│ ├── aa-unconfined.8
│ ├── apparmor_parser.8
│ └── apparmor_status.8 -> aa-status.8
└── var
└── lib
└── apparmor
184 directories, 269 files
安装后文章来源地址https://www.toymoban.com/news/detail-421092.html
$ tree ../../output
../../output
├── etc
│ ├── apparmor
│ │ ├── easyprof.conf
│ │ ├── logprof.conf
│ │ ├── notify.conf
│ │ ├── parser.conf
│ │ └── severity.db
│ └── apparmor.d
│ ├── abi
│ │ ├── 3.0
│ │ ├── kernel-5.4-outoftree-network
│ │ └── kernel-5.4-vanilla
│ ├── abstractions
│ │ ├── apache2-common
│ │ ├── apparmor_api
│ │ │ ├── change_profile
│ │ │ ├── examine
│ │ │ ├── find_mountpoint
│ │ │ ├── introspect
│ │ │ └── is_enabled
│ │ ├── aspell
│ │ ├── audio
│ │ ├── authentication
│ │ ├── base
│ │ ├── bash
│ │ ├── consoles
│ │ ├── crypto
│ │ ├── cups-client
│ │ ├── dbus
│ │ ├── dbus-accessibility
│ │ ├── dbus-accessibility-strict
│ │ ├── dbus-network-manager-strict
│ │ ├── dbus-session
│ │ ├── dbus-session-strict
│ │ ├── dbus-strict
│ │ ├── dconf
│ │ ├── dovecot-common
│ │ ├── dri-common
│ │ ├── dri-enumerate
│ │ ├── enchant
│ │ ├── exo-open
│ │ ├── fcitx
│ │ ├── fcitx-strict
│ │ ├── fonts
│ │ ├── freedesktop.org
│ │ ├── gio-open
│ │ ├── gnome
│ │ ├── gnupg
│ │ ├── groff
│ │ ├── gtk
│ │ ├── gvfs-open
│ │ ├── hosts_access
│ │ ├── ibus
│ │ ├── kde
│ │ ├── kde-globals-write
│ │ ├── kde-icon-cache-write
│ │ ├── kde-language-write
│ │ ├── kde-open5
│ │ ├── kerberosclient
│ │ ├── ldapclient
│ │ ├── libpam-systemd
│ │ ├── likewise
│ │ ├── mdns
│ │ ├── mesa
│ │ ├── mir
│ │ ├── mozc
│ │ ├── mysql
│ │ ├── nameservice
│ │ ├── nis
│ │ ├── nss-systemd
│ │ ├── nvidia
│ │ ├── opencl
│ │ ├── opencl-common
│ │ ├── opencl-intel
│ │ ├── opencl-mesa
│ │ ├── opencl-nvidia
│ │ ├── opencl-pocl
│ │ ├── openssl
│ │ ├── orbit2
│ │ ├── p11-kit
│ │ ├── perl
│ │ ├── php
│ │ ├── php5
│ │ ├── php-worker
│ │ ├── postfix-common
│ │ ├── private-files
│ │ ├── private-files-strict
│ │ ├── python
│ │ ├── qt5
│ │ ├── qt5-compose-cache-write
│ │ ├── qt5-settings-write
│ │ ├── recent-documents-write
│ │ ├── ruby
│ │ ├── samba
│ │ ├── samba-rpcd
│ │ ├── smbpass
│ │ ├── snap_browsers
│ │ ├── ssl_certs
│ │ ├── ssl_keys
│ │ ├── svn-repositories
│ │ ├── trash
│ │ ├── ubuntu-bittorrent-clients
│ │ ├── ubuntu-browsers
│ │ ├── ubuntu-browsers.d
│ │ │ ├── chromium-browser
│ │ │ ├── java
│ │ │ ├── kde
│ │ │ ├── mailto
│ │ │ ├── multimedia
│ │ │ ├── plugins-common
│ │ │ ├── productivity
│ │ │ ├── text-editors
│ │ │ ├── ubuntu-integration
│ │ │ ├── ubuntu-integration-xul
│ │ │ └── user-files
│ │ ├── ubuntu-console-browsers
│ │ ├── ubuntu-console-email
│ │ ├── ubuntu-email
│ │ ├── ubuntu-feed-readers
│ │ ├── ubuntu-gnome-terminal
│ │ ├── ubuntu-helpers
│ │ ├── ubuntu-konsole
│ │ ├── ubuntu-media-players
│ │ ├── ubuntu-unity7-base
│ │ ├── ubuntu-unity7-launcher
│ │ ├── ubuntu-unity7-messaging
│ │ ├── ubuntu-xterm
│ │ ├── user-download
│ │ ├── user-mail
│ │ ├── user-manpages
│ │ ├── user-tmp
│ │ ├── user-write
│ │ ├── video
│ │ ├── vulkan
│ │ ├── wayland
│ │ ├── web-data
│ │ ├── winbind
│ │ ├── wutmp
│ │ ├── X
│ │ ├── xad
│ │ ├── xdg-desktop
│ │ └── xdg-open
│ ├── apache2.d
│ │ └── phpsysinfo
│ ├── bin.ping
│ ├── disable
│ ├── local
│ │ ├── bin.ping
│ │ ├── lsb_release
│ │ ├── nvidia_modprobe
│ │ ├── php-fpm
│ │ ├── README
│ │ ├── samba-bgqd
│ │ ├── samba-dcerpcd
│ │ ├── samba-rpcd
│ │ ├── samba-rpcd-classic
│ │ ├── samba-rpcd-spoolss
│ │ ├── sbin.klogd
│ │ ├── sbin.syslogd
│ │ ├── sbin.syslog-ng
│ │ ├── usr.lib.apache2.mpm-prefork.apache2
│ │ ├── usr.lib.dovecot.anvil
│ │ ├── usr.lib.dovecot.auth
│ │ ├── usr.lib.dovecot.config
│ │ ├── usr.lib.dovecot.deliver
│ │ ├── usr.lib.dovecot.dict
│ │ ├── usr.lib.dovecot.director
│ │ ├── usr.lib.dovecot.doveadm-server
│ │ ├── usr.lib.dovecot.dovecot-auth
│ │ ├── usr.lib.dovecot.dovecot-lda
│ │ ├── usr.lib.dovecot.imap
│ │ ├── usr.lib.dovecot.imap-login
│ │ ├── usr.lib.dovecot.lmtp
│ │ ├── usr.lib.dovecot.log
│ │ ├── usr.lib.dovecot.managesieve
│ │ ├── usr.lib.dovecot.managesieve-login
│ │ ├── usr.lib.dovecot.pop3
│ │ ├── usr.lib.dovecot.pop3-login
│ │ ├── usr.lib.dovecot.replicator
│ │ ├── usr.lib.dovecot.script-login
│ │ ├── usr.lib.dovecot.ssl-params
│ │ ├── usr.lib.dovecot.stats
│ │ ├── usr.sbin.apache2
│ │ ├── usr.sbin.avahi-daemon
│ │ ├── usr.sbin.dnsmasq
│ │ ├── usr.sbin.dovecot
│ │ ├── usr.sbin.identd
│ │ ├── usr.sbin.mdnsd
│ │ ├── usr.sbin.nmbd
│ │ ├── usr.sbin.nscd
│ │ ├── usr.sbin.ntpd
│ │ ├── usr.sbin.smbd
│ │ ├── usr.sbin.smbldap-useradd
│ │ ├── usr.sbin.traceroute
│ │ ├── usr.sbin.winbindd
│ │ └── zgrep
│ ├── lsb_release
│ ├── nvidia_modprobe
│ ├── php-fpm
│ ├── samba-bgqd
│ ├── samba-dcerpcd
│ ├── samba-rpcd
│ ├── samba-rpcd-classic
│ ├── samba-rpcd-spoolss
│ ├── sbin.klogd
│ ├── sbin.syslogd
│ ├── sbin.syslog-ng
│ ├── tunables
│ │ ├── alias
│ │ ├── apparmorfs
│ │ ├── dovecot
│ │ ├── etc
│ │ ├── global
│ │ ├── home
│ │ ├── home.d
│ │ │ └── site.local
│ │ ├── kernelvars
│ │ ├── multiarch
│ │ ├── multiarch.d
│ │ │ └── site.local
│ │ ├── ntpd
│ │ ├── proc
│ │ ├── run
│ │ ├── securityfs
│ │ ├── share
│ │ ├── sys
│ │ ├── xdg-user-dirs
│ │ └── xdg-user-dirs.d
│ │ └── site.local
│ ├── usr.lib.apache2.mpm-prefork.apache2
│ ├── usr.lib.dovecot.anvil
│ ├── usr.lib.dovecot.auth
│ ├── usr.lib.dovecot.config
│ ├── usr.lib.dovecot.deliver
│ ├── usr.lib.dovecot.dict
│ ├── usr.lib.dovecot.director
│ ├── usr.lib.dovecot.doveadm-server
│ ├── usr.lib.dovecot.dovecot-auth
│ ├── usr.lib.dovecot.dovecot-lda
│ ├── usr.lib.dovecot.imap
│ ├── usr.lib.dovecot.imap-login
│ ├── usr.lib.dovecot.lmtp
│ ├── usr.lib.dovecot.log
│ ├── usr.lib.dovecot.managesieve
│ ├── usr.lib.dovecot.managesieve-login
│ ├── usr.lib.dovecot.pop3
│ ├── usr.lib.dovecot.pop3-login
│ ├── usr.lib.dovecot.replicator
│ ├── usr.lib.dovecot.script-login
│ ├── usr.lib.dovecot.ssl-params
│ ├── usr.lib.dovecot.stats
│ ├── usr.sbin.apache2
│ ├── usr.sbin.avahi-daemon
│ ├── usr.sbin.dnsmasq
│ ├── usr.sbin.dovecot
│ ├── usr.sbin.identd
│ ├── usr.sbin.mdnsd
│ ├── usr.sbin.nmbd
│ ├── usr.sbin.nscd
│ ├── usr.sbin.ntpd
│ ├── usr.sbin.smbd
│ ├── usr.sbin.smbldap-useradd
│ ├── usr.sbin.traceroute
│ ├── usr.sbin.winbindd
│ └── zgrep
├── lib
│ ├── apparmor
│ │ ├── profile-load
│ │ └── rc.apparmor.functions
│ └── security
│ └── pam_apparmor.so
├── sbin
│ └── apparmor_parser
├── usr
│ ├── bin
│ │ ├── aa-easyprof
│ │ ├── aa-enabled
│ │ ├── aa-exec
│ │ └── aa-features-abi
│ ├── lib
│ │ └── python3.10
│ │ └── site-packages
│ │ ├── apparmor
│ │ │ ├── aa.py
│ │ │ ├── aare.py
│ │ │ ├── cleanprofile.py
│ │ │ ├── common.py
│ │ │ ├── config.py
│ │ │ ├── easyprof.py
│ │ │ ├── fail.py
│ │ │ ├── __init__.py
│ │ │ ├── logparser.py
│ │ │ ├── notify.py
│ │ │ ├── profile_list.py
│ │ │ ├── profile_storage.py
│ │ │ ├── __pycache__
│ │ │ │ ├── aa.cpython-310.pyc
│ │ │ │ ├── aare.cpython-310.pyc
│ │ │ │ ├── cleanprofile.cpython-310.pyc
│ │ │ │ ├── common.cpython-310.pyc
│ │ │ │ ├── config.cpython-310.pyc
│ │ │ │ ├── easyprof.cpython-310.pyc
│ │ │ │ ├── fail.cpython-310.pyc
│ │ │ │ ├── __init__.cpython-310.pyc
│ │ │ │ ├── logparser.cpython-310.pyc
│ │ │ │ ├── notify.cpython-310.pyc
│ │ │ │ ├── profile_list.cpython-310.pyc
│ │ │ │ ├── profile_storage.cpython-310.pyc
│ │ │ │ ├── regex.cpython-310.pyc
│ │ │ │ ├── rules.cpython-310.pyc
│ │ │ │ ├── sandbox.cpython-310.pyc
│ │ │ │ ├── severity.cpython-310.pyc
│ │ │ │ ├── tools.cpython-310.pyc
│ │ │ │ ├── translations.cpython-310.pyc
│ │ │ │ └── ui.cpython-310.pyc
│ │ │ ├── regex.py
│ │ │ ├── rule
│ │ │ │ ├── abi.py
│ │ │ │ ├── alias.py
│ │ │ │ ├── boolean.py
│ │ │ │ ├── capability.py
│ │ │ │ ├── change_profile.py
│ │ │ │ ├── dbus.py
│ │ │ │ ├── file.py
│ │ │ │ ├── include.py
│ │ │ │ ├── __init__.py
│ │ │ │ ├── mqueue.py
│ │ │ │ ├── network.py
│ │ │ │ ├── ptrace.py
│ │ │ │ ├── __pycache__
│ │ │ │ │ ├── abi.cpython-310.pyc
│ │ │ │ │ ├── alias.cpython-310.pyc
│ │ │ │ │ ├── boolean.cpython-310.pyc
│ │ │ │ │ ├── capability.cpython-310.pyc
│ │ │ │ │ ├── change_profile.cpython-310.pyc
│ │ │ │ │ ├── dbus.cpython-310.pyc
│ │ │ │ │ ├── file.cpython-310.pyc
│ │ │ │ │ ├── include.cpython-310.pyc
│ │ │ │ │ ├── __init__.cpython-310.pyc
│ │ │ │ │ ├── mqueue.cpython-310.pyc
│ │ │ │ │ ├── network.cpython-310.pyc
│ │ │ │ │ ├── ptrace.cpython-310.pyc
│ │ │ │ │ ├── rlimit.cpython-310.pyc
│ │ │ │ │ ├── signal.cpython-310.pyc
│ │ │ │ │ ├── userns.cpython-310.pyc
│ │ │ │ │ └── variable.cpython-310.pyc
│ │ │ │ ├── rlimit.py
│ │ │ │ ├── signal.py
│ │ │ │ ├── userns.py
│ │ │ │ └── variable.py
│ │ │ ├── rules.py
│ │ │ ├── sandbox.py
│ │ │ ├── severity.py
│ │ │ ├── tools.py
│ │ │ ├── translations.py
│ │ │ └── ui.py
│ │ └── apparmor-3.1.0-py3.10.egg-info
│ │ ├── dependency_links.txt
│ │ ├── PKG-INFO
│ │ ├── SOURCES.txt
│ │ └── top_level.txt
│ ├── local
│ │ ├── include
│ │ │ ├── aalogparse
│ │ │ │ └── aalogparse.h
│ │ │ └── sys
│ │ │ ├── apparmor.h
│ │ │ └── apparmor_private.h
│ │ ├── lib
│ │ │ ├── libapparmor.a
│ │ │ ├── libapparmor.la
│ │ │ ├── libapparmor.so -> libapparmor.so.1.12.2
│ │ │ ├── libapparmor.so.1 -> libapparmor.so.1.12.2
│ │ │ ├── libapparmor.so.1.12.2
│ │ │ ├── perl5
│ │ │ │ └── 5.36
│ │ │ │ ├── core_perl
│ │ │ │ │ └── perllocal.pod
│ │ │ │ └── vendor_perl
│ │ │ │ ├── auto
│ │ │ │ │ └── LibAppArmor
│ │ │ │ │ └── LibAppArmor.so
│ │ │ │ └── LibAppArmor.pm
│ │ │ ├── pkgconfig
│ │ │ │ └── libapparmor.pc
│ │ │ └── python3.10
│ │ │ └── site-packages
│ │ │ ├── LibAppArmor
│ │ │ │ ├── __init__.py
│ │ │ │ ├── _LibAppArmor.cpython-310-x86_64-linux-gnu.so
│ │ │ │ ├── LibAppArmor.py
│ │ │ │ └── __pycache__
│ │ │ │ ├── __init__.cpython-310.pyc
│ │ │ │ └── LibAppArmor.cpython-310.pyc
│ │ │ └── LibAppArmor-3.1.0-py3.10.egg-info
│ │ │ ├── dependency_links.txt
│ │ │ ├── PKG-INFO
│ │ │ ├── SOURCES.txt
│ │ │ └── top_level.txt
│ │ └── share
│ │ └── man
│ │ ├── man2
│ │ │ ├── aa_change_hat.2
│ │ │ ├── aa_change_profile.2
│ │ │ ├── aa_find_mountpoint.2
│ │ │ ├── aa_getcon.2
│ │ │ ├── aa_query_label.2
│ │ │ └── aa_stack_profile.2
│ │ └── man3
│ │ ├── aa_features.3
│ │ ├── aa_kernel_interface.3
│ │ ├── aa_policy_cache.3
│ │ └── aa_splitcon.3
│ ├── sbin
│ │ ├── aa-audit
│ │ ├── aa-autodep
│ │ ├── aa-cleanprof
│ │ ├── aa-complain
│ │ ├── aa-decode
│ │ ├── aa-disable
│ │ ├── aa-enforce
│ │ ├── aa-genprof
│ │ ├── aa-logprof
│ │ ├── aa-mergeprof
│ │ ├── aa-notify
│ │ ├── aa-remove-unknown
│ │ ├── aa-status
│ │ ├── aa-unconfined
│ │ └── apparmor_status -> aa-status
│ └── share
│ ├── apparmor
│ │ ├── apparmor.vim
│ │ ├── easyprof
│ │ │ ├── policygroups
│ │ │ │ ├── opt-application
│ │ │ │ └── user-application
│ │ │ └── templates
│ │ │ ├── default
│ │ │ ├── sandbox
│ │ │ ├── sandbox-x
│ │ │ └── user-application
│ │ └── extra-profiles
│ │ ├── bin.netstat
│ │ ├── chromium_browser
│ │ ├── etc.cron.daily.logrotate
│ │ ├── etc.cron.daily.slocate.cron
│ │ ├── etc.cron.daily.tmpwatch
│ │ ├── firefox
│ │ ├── firefox.sh
│ │ ├── postfix-anvil
│ │ ├── postfix-bounce
│ │ ├── postfix-cleanup
│ │ ├── postfix-discard
│ │ ├── postfix-dnsblog
│ │ ├── postfix-error
│ │ ├── postfix-flush
│ │ ├── postfix-lmtp
│ │ ├── postfix-local
│ │ ├── postfix-master
│ │ ├── postfix-nqmgr
│ │ ├── postfix-oqmgr
│ │ ├── postfix-pickup
│ │ ├── postfix-pipe
│ │ ├── postfix-postscreen
│ │ ├── postfix-proxymap
│ │ ├── postfix-qmgr
│ │ ├── postfix-qmqpd
│ │ ├── postfix-scache
│ │ ├── postfix-showq
│ │ ├── postfix-smtp
│ │ ├── postfix-smtpd
│ │ ├── postfix-spawn
│ │ ├── postfix-tlsmgr
│ │ ├── postfix-trivial-rewrite
│ │ ├── postfix-verify
│ │ ├── postfix-virtual
│ │ ├── README
│ │ ├── rpcbind
│ │ ├── sbin.dhclient
│ │ ├── sbin.dhclient-script
│ │ ├── sbin.dhcpcd
│ │ ├── sbin.portmap
│ │ ├── sbin.resmgrd
│ │ ├── sbin.rpc.lockd
│ │ ├── sbin.rpc.statd
│ │ ├── usr.bin.acroread
│ │ ├── usr.bin.apropos
│ │ ├── usr.bin.dumpcap
│ │ ├── usr.bin.evolution-2.10
│ │ ├── usr.bin.fam
│ │ ├── usr.bin.freshclam
│ │ ├── usr.bin.gaim
│ │ ├── usr.bin.man
│ │ ├── usr.bin.mlmmj-bounce
│ │ ├── usr.bin.mlmmj-maintd
│ │ ├── usr.bin.mlmmj-make-ml.sh
│ │ ├── usr.bin.mlmmj-process
│ │ ├── usr.bin.mlmmj-receive
│ │ ├── usr.bin.mlmmj-recieve
│ │ ├── usr.bin.mlmmj-send
│ │ ├── usr.bin.mlmmj-sub
│ │ ├── usr.bin.mlmmj-unsub
│ │ ├── usr.bin.opera
│ │ ├── usr.bin.passwd
│ │ ├── usr.bin.procmail
│ │ ├── usr.bin.pyzorsocket
│ │ ├── usr.bin.razorsocket
│ │ ├── usr.bin.skype
│ │ ├── usr.bin.spamc
│ │ ├── usr.bin.svnserve
│ │ ├── usr.bin.wireshark
│ │ ├── usr.bin.xfs
│ │ ├── usr.lib64.GConf.2.gconfd-2
│ │ ├── usr.lib.bonobo.bonobo-activation-server
│ │ ├── usr.lib.evolution-data-server.evolution-data-server-1.10
│ │ ├── usr.lib.firefox.mozilla-xremote-client
│ │ ├── usr.lib.GConf.2.gconfd-2
│ │ ├── usr.lib.man-db.man
│ │ ├── usr.lib.RealPlayer10.realplay
│ │ ├── usr.NX.bin.nxclient
│ │ ├── usr.sbin.clamd
│ │ ├── usr.sbin.cupsd
│ │ ├── usr.sbin.dhcpd
│ │ ├── usr.sbin.haproxy
│ │ ├── usr.sbin.httpd2-prefork
│ │ ├── usr.sbin.imapd
│ │ ├── usr.sbin.in.fingerd
│ │ ├── usr.sbin.in.ftpd
│ │ ├── usr.sbin.in.ntalkd
│ │ ├── usr.sbin.ipop2d
│ │ ├── usr.sbin.ipop3d
│ │ ├── usr.sbin.lighttpd
│ │ ├── usr.sbin.mysqld
│ │ ├── usr.sbin.oidentd
│ │ ├── usr.sbin.popper
│ │ ├── usr.sbin.postalias
│ │ ├── usr.sbin.postdrop
│ │ ├── usr.sbin.postmap
│ │ ├── usr.sbin.postqueue
│ │ ├── usr.sbin.sendmail
│ │ ├── usr.sbin.sendmail.postfix
│ │ ├── usr.sbin.sendmail.sendmail
│ │ ├── usr.sbin.spamd
│ │ ├── usr.sbin.squid
│ │ ├── usr.sbin.sshd
│ │ ├── usr.sbin.useradd
│ │ ├── usr.sbin.userdel
│ │ ├── usr.sbin.vsftpd
│ │ └── usr.sbin.xinetd
│ ├── locale
│ │ ├── af
│ │ │ └── LC_MESSAGES
│ │ │ ├── aa-binutils.mo
│ │ │ ├── apparmor-parser.mo
│ │ │ └── apparmor-utils.mo
│ │ ├── ar
│ │ │ └── LC_MESSAGES
│ │ │ └── apparmor-parser.mo
│ │ ├── be
│ │ │ └── LC_MESSAGES
│ │ │ └── apparmor-utils.mo
│ │ ├── bg
│ │ │ └── LC_MESSAGES
│ │ │ └── apparmor-parser.mo
│ │ ├── bn
│ │ │ └── LC_MESSAGES
│ │ │ └── apparmor-parser.mo
│ │ ├── bo
│ │ │ └── LC_MESSAGES
│ │ │ ├── apparmor-parser.mo
│ │ │ └── apparmor-utils.mo
│ │ ├── bs
│ │ │ └── LC_MESSAGES
│ │ │ ├── apparmor-parser.mo
│ │ │ └── apparmor-utils.mo
│ │ ├── ca
│ │ │ └── LC_MESSAGES
│ │ │ └── apparmor-parser.mo
│ │ ├── ce
│ │ │ └── LC_MESSAGES
│ │ │ └── apparmor-parser.mo
│ │ ├── cs
│ │ │ └── LC_MESSAGES
│ │ │ ├── apparmor-parser.mo
│ │ │ └── apparmor-utils.mo
│ │ ├── cy
│ │ │ └── LC_MESSAGES
│ │ │ └── apparmor-parser.mo
│ │ ├── da
│ │ │ └── LC_MESSAGES
│ │ │ └── apparmor-parser.mo
│ │ ├── de
│ │ │ └── LC_MESSAGES
│ │ │ ├── aa-binutils.mo
│ │ │ ├── apparmor-parser.mo
│ │ │ └── apparmor-utils.mo
│ │ ├── el
│ │ │ └── LC_MESSAGES
│ │ │ └── apparmor-parser.mo
│ │ ├── en_AU
│ │ │ └── LC_MESSAGES
│ │ │ └── apparmor-parser.mo
│ │ ├── en_CA
│ │ │ └── LC_MESSAGES
│ │ │ └── apparmor-parser.mo
│ │ ├── en_GB
│ │ │ └── LC_MESSAGES
│ │ │ ├── aa-binutils.mo
│ │ │ ├── apparmor-parser.mo
│ │ │ └── apparmor-utils.mo
│ │ ├── es
│ │ │ └── LC_MESSAGES
│ │ │ ├── aa-binutils.mo
│ │ │ ├── apparmor-parser.mo
│ │ │ └── apparmor-utils.mo
│ │ ├── et
│ │ │ └── LC_MESSAGES
│ │ │ └── apparmor-parser.mo
│ │ ├── fa
│ │ │ └── LC_MESSAGES
│ │ │ ├── aa-binutils.mo
│ │ │ ├── apparmor-parser.mo
│ │ │ └── apparmor-utils.mo
│ │ ├── fi
│ │ │ └── LC_MESSAGES
│ │ │ ├── aa-binutils.mo
│ │ │ └── apparmor-parser.mo
│ │ ├── fr
│ │ │ └── LC_MESSAGES
│ │ │ ├── apparmor-parser.mo
│ │ │ └── apparmor-utils.mo
│ │ ├── gl
│ │ │ └── LC_MESSAGES
│ │ │ ├── apparmor-parser.mo
│ │ │ └── apparmor-utils.mo
│ │ ├── gu
│ │ │ └── LC_MESSAGES
│ │ │ └── apparmor-parser.mo
│ │ ├── he
│ │ │ └── LC_MESSAGES
│ │ │ └── apparmor-parser.mo
│ │ ├── hi
│ │ │ └── LC_MESSAGES
│ │ │ ├── apparmor-parser.mo
│ │ │ └── apparmor-utils.mo
│ │ ├── hr
│ │ │ └── LC_MESSAGES
│ │ │ └── apparmor-parser.mo
│ │ ├── hu
│ │ │ └── LC_MESSAGES
│ │ │ └── apparmor-parser.mo
│ │ ├── id
│ │ │ └── LC_MESSAGES
│ │ │ ├── aa-binutils.mo
│ │ │ ├── apparmor-parser.mo
│ │ │ └── apparmor-utils.mo
│ │ ├── it
│ │ │ └── LC_MESSAGES
│ │ │ ├── apparmor-parser.mo
│ │ │ └── apparmor-utils.mo
│ │ ├── ja
│ │ │ └── LC_MESSAGES
│ │ │ └── apparmor-parser.mo
│ │ ├── ka
│ │ │ └── LC_MESSAGES
│ │ │ └── apparmor-parser.mo
│ │ ├── km
│ │ │ └── LC_MESSAGES
│ │ │ └── apparmor-parser.mo
│ │ ├── ko
│ │ │ └── LC_MESSAGES
│ │ │ ├── apparmor-parser.mo
│ │ │ └── apparmor-utils.mo
│ │ ├── lo
│ │ │ └── LC_MESSAGES
│ │ │ └── apparmor-parser.mo
│ │ ├── lt
│ │ │ └── LC_MESSAGES
│ │ │ └── apparmor-parser.mo
│ │ ├── mk
│ │ │ └── LC_MESSAGES
│ │ │ └── apparmor-parser.mo
│ │ ├── mr
│ │ │ └── LC_MESSAGES
│ │ │ └── apparmor-parser.mo
│ │ ├── ms
│ │ │ └── LC_MESSAGES
│ │ │ └── apparmor-parser.mo
│ │ ├── nb
│ │ │ └── LC_MESSAGES
│ │ │ └── apparmor-parser.mo
│ │ ├── nl
│ │ │ └── LC_MESSAGES
│ │ │ └── apparmor-parser.mo
│ │ ├── oc
│ │ │ └── LC_MESSAGES
│ │ │ ├── apparmor-parser.mo
│ │ │ └── apparmor-utils.mo
│ │ ├── pa
│ │ │ └── LC_MESSAGES
│ │ │ └── apparmor-parser.mo
│ │ ├── pl
│ │ │ └── LC_MESSAGES
│ │ │ ├── apparmor-parser.mo
│ │ │ └── apparmor-utils.mo
│ │ ├── pt
│ │ │ └── LC_MESSAGES
│ │ │ ├── aa-binutils.mo
│ │ │ ├── apparmor-parser.mo
│ │ │ └── apparmor-utils.mo
│ │ ├── pt_BR
│ │ │ └── LC_MESSAGES
│ │ │ ├── apparmor-parser.mo
│ │ │ └── apparmor-utils.mo
│ │ ├── ro
│ │ │ └── LC_MESSAGES
│ │ │ ├── aa-binutils.mo
│ │ │ ├── apparmor-parser.mo
│ │ │ └── apparmor-utils.mo
│ │ ├── ru
│ │ │ └── LC_MESSAGES
│ │ │ ├── aa-binutils.mo
│ │ │ ├── apparmor-parser.mo
│ │ │ └── apparmor-utils.mo
│ │ ├── si
│ │ │ └── LC_MESSAGES
│ │ │ └── apparmor-parser.mo
│ │ ├── sk
│ │ │ └── LC_MESSAGES
│ │ │ └── apparmor-parser.mo
│ │ ├── sl
│ │ │ └── LC_MESSAGES
│ │ │ └── apparmor-parser.mo
│ │ ├── sq
│ │ │ └── LC_MESSAGES
│ │ │ └── apparmor-parser.mo
│ │ ├── sr
│ │ │ └── LC_MESSAGES
│ │ │ └── apparmor-parser.mo
│ │ ├── sv
│ │ │ └── LC_MESSAGES
│ │ │ ├── aa-binutils.mo
│ │ │ ├── apparmor-parser.mo
│ │ │ └── apparmor-utils.mo
│ │ ├── sw
│ │ │ └── LC_MESSAGES
│ │ │ └── aa-binutils.mo
│ │ ├── ta
│ │ │ └── LC_MESSAGES
│ │ │ └── apparmor-parser.mo
│ │ ├── th
│ │ │ └── LC_MESSAGES
│ │ │ └── apparmor-parser.mo
│ │ ├── tr
│ │ │ └── LC_MESSAGES
│ │ │ ├── aa-binutils.mo
│ │ │ ├── apparmor-parser.mo
│ │ │ └── apparmor-utils.mo
│ │ ├── ug
│ │ │ └── LC_MESSAGES
│ │ │ ├── apparmor-parser.mo
│ │ │ └── apparmor-utils.mo
│ │ ├── uk
│ │ │ └── LC_MESSAGES
│ │ │ ├── apparmor-parser.mo
│ │ │ └── apparmor-utils.mo
│ │ ├── vi
│ │ │ └── LC_MESSAGES
│ │ │ └── apparmor-parser.mo
│ │ ├── wa
│ │ │ └── LC_MESSAGES
│ │ │ └── apparmor-parser.mo
│ │ ├── xh
│ │ │ └── LC_MESSAGES
│ │ │ └── apparmor-parser.mo
│ │ ├── zh_CN
│ │ │ └── LC_MESSAGES
│ │ │ ├── apparmor-parser.mo
│ │ │ └── apparmor-utils.mo
│ │ ├── zh_TW
│ │ │ └── LC_MESSAGES
│ │ │ └── apparmor-parser.mo
│ │ └── zu
│ │ └── LC_MESSAGES
│ │ └── apparmor-parser.mo
│ └── man
│ ├── man1
│ │ ├── aa-enabled.1
│ │ ├── aa-exec.1
│ │ └── aa-features-abi.1
│ ├── man5
│ │ ├── apparmor.d.5
│ │ ├── apparmor.vim.5
│ │ └── logprof.conf.5
│ ├── man7
│ │ ├── apparmor.7
│ │ └── apparmor_xattrs.7
│ └── man8
│ ├── aa-audit.8
│ ├── aa-autodep.8
│ ├── aa-cleanprof.8
│ ├── aa-complain.8
│ ├── aa-decode.8
│ ├── aa-disable.8
│ ├── aa-easyprof.8
│ ├── aa-enforce.8
│ ├── aa-genprof.8
│ ├── aa-logprof.8
│ ├── aa-mergeprof.8
│ ├── aa-notify.8
│ ├── aa-remove-unknown.8
│ ├── aa-status.8
│ ├── aa-teardown.8
│ ├── aa-unconfined.8
│ ├── apparmor_parser.8
│ └── apparmor_status.8 -> aa-status.8
└── var
└── lib
└── apparmor
197 directories, 622 files
到了这里,关于Profiles非默认目录构建和安装的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!