我正在尝试阻止某个应用的互联网访问,因为它总是要求购买或更新,尽管它是免费的。我为该应用创建了一个 apparmor 配置文件并强制执行,但强制执行后,该应用无法启动。
这是的个人资料/etc/apparmor.d/opt.sublime_text.sublime_text
:
/opt/sublime_text/sublime_text {
deny network inet,
deny network inet6,
deny network raw, #include <abstractions/base>
/opt/sublime_text/sublime_text mr,
/opt/sublime-text/ rw,
/home/shady/.config/sublime-text-3/ rw,
}
我已包含此应用可能需要的目录。我做错了什么?
答案1
您需要更多内容才能启动此类应用。如果您的个人资料中缺少某些内容,则无法访问。Sublimetext
必须具有以下访问权限:
- X 服务器
- 系统字体
- Xauthority 文件
- dconf
- 油嘴滑舌
- ETC ...
创建您自己的配置文件的最好和最简单的方法是安装apparmor-utils
sudo apt-get install apparmor-utils
然后使用生成配置文件工具创建您的配置文件:
sudo aa-genprof /opt/sublime_text/sublime_text
此时,它会在中创建 sublimetext 配置文件/etc/apparmor.d/
并监听程序操作。此配置文件处于complain
模式,并正在记录到/var/log/syslog
。现在您需要启动 sublimetext 并执行一些操作,例如打开和保存文件等。所有这些操作都将保存在日志文件中,该文件用于aa-genprof
创建规则。完成活动后,按下s
键并回答有关的问题使用权或者否定到您的资源。完成后,使用f
键保存您新创建的配置文件并将其转为enforce
模式。
但是,这个工具很容易出现无法完美运行的情况。它不会包含所有内容,您必须手动添加一些内容,例如X
访问/etc/apparmor.d/opt.sublime_text.sublime_text
:
include <abstractions/X>
如果进行了任何更改,则必须重新加载配置文件:
sudo apparmor_parser r /etc/apparmor.d/opt.sublime_text.sublime_text