You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何解析AppArmor配置文件并查看指定进程的AppArmor限制

如何解析AppArmor配置文件并查看指定进程的AppArmor限制

嘿,我来帮你搞定这个查看AppArmor进程限制的问题!你之前用apparmor_parser去读/sys目录下的raw_data文件报错,是因为那个文件是二进制格式的,而apparmor_parser只能解析文本格式的AppArmor配置文件,自然会出现语法错误啦。

下面给你几种靠谱的方法,能轻松查看dhclient的AppArmor限制:

方法1:直接查看本地配置文件(最直观)

系统里的AppArmor规则文件一般都放在/etc/apparmor.d/目录下,对应dhclient的文件是usr.sbin.dhclient。直接用cat命令就能查看:

cat /etc/apparmor.d/usr.sbin.dhclient

这里面就是定义dhclient权限限制的完整文本规则,比如允许访问哪些文件、能不能联网、执行哪些命令等。

方法2:查看内核中已加载的生效规则

有时候本地配置文件可能和内核中实际加载的规则有差异(比如临时调整过),这时候可以用aa-show命令查看当前生效的规则:

aa-show usr.sbin.dhclient

这个命令会把dhclient的所有权限限制清晰列出来,比如允许的文件路径、网络操作、capabilities等,是最准确的查看方式。

方法3:确认profile是否已加载

如果不确定dhclient的AppArmor profile有没有被加载,可以先运行下面的命令查看所有已加载的profile:

aa-status
# 或者用旧版本的命令
apparmor_status

在输出里找usr.sbin.dhclient这一项,就能确认它的状态(比如是否处于enforce模式)。

关于/sys目录的补充说明

/sys/kernel/security/apparmor/policy/profiles/下的raw_data是内核存储的二进制格式profile数据,如果你非要从这里提取规则,可以用apparmor_parser-S参数来转成文本:

apparmor_parser -S /sys/kernel/security/apparmor/policy/profiles/usr.sbin.dhclient.6/raw_data

不过这个方法不如前面两种方便,一般不推荐。

总结一下,优先用aa-show usr.sbin.dhclient或者直接查看/etc/apparmor.d/usr.sbin.dhclient,这两个方法简单又准确~

备注:内容来源于stack exchange,提问作者vtable

火山引擎 最新活动