我目前正在尝试了解 AppArmor 的功能。我找到了一个示例,让我/bin/ping
为其复制并生成 AppArmor 配置文件。
首先,我复制并按照说明/bin/ping
设置其net_raw
功能:permitted
effective
sudo cp /bin/ping /bin/fake_ping
sudo setcap cap_net_raw+ep /bin/fake_ping
然后我生成了一个 AppArmor 配置文件:
sudo aa-genprof /bin/fake_ping
AppArmor 配置文件以强制方式保存 - 一切正常。之后我取消设置net_raw
功能:
sudo setcap cap_net_raw-ep /bin/fake_ping
正如预期的那样,由于缺少此功能,它现在无法工作:
fake_ping: socktype: SOCK_RAW
fake_ping: socket: Operation not permitted
fake_ping: => missing cap_net_raw+p capability or setuid?
我的问题:
新生成的 apparmor 配置文件已经包含,那么为什么它在没有扩展属性设置的情况capability net_raw
下不起作用?cap_net_raw=ep
有何不同?