![自内核更改以来,Apparmor 拒绝了多个进程](https://linux22.com/image/1003815/%E8%87%AA%E5%86%85%E6%A0%B8%E6%9B%B4%E6%94%B9%E4%BB%A5%E6%9D%A5%EF%BC%8CApparmor%20%E6%8B%92%E7%BB%9D%E4%BA%86%E5%A4%9A%E4%B8%AA%E8%BF%9B%E7%A8%8B.png)
我碰巧遇到了一个非常奇怪的问题。我从 4 月左右开始以开发模式运行 Ubuntu 17.10,从那时起,我一直试图使用最新的内核 RC,以避免我在 Dell Precision 上遇到的挂起和 GPU 方面的严重问题。
由于我安装了 4.14-rc2,我突然失去了 WiFi 连接。运行 bisect 后,我将问题缩小到内核中的变更集已更新 Apparmor。
查看journalctl -xe
输出我注意到出现了很多类似的错误:
Oct 27 14:45:48 precision audit[6088]: AVC apparmor="DENIED" operation="create" profile="/sbin/dhclient" pid=6088 comm="dhclient" family="unix" sock_type="stream" protocol=0 requested_mask="create" denied_mask="create"
此类错误也发生在进程mysqld
、avahi-daemon
和上cups-browsed
。我已使用以下命令禁用这些进程的配置文件:
$ sudo ln -s /etc/apparmor.d/sbin.dhclient /etc/apparmor.d/disable
$ sudo apparmor_parser -R /etc/apparmor.d/sbin.dhclient
砰的一声,我的 WiFi 又回来了。但这是处理这种情况的正确方法吗?我应该修改配置文件,还是向 Launchpad 提交错误?
答案1
是的,由于一些问题,内核安全性的重大更改(即 apparmor)未包含在内核 4.14-rc1 中,但已包含在内核 4.14-rc2 中。而且,确实存在不向后兼容的更改。
我自己,我要么在禁用 apparmor 的情况下编译内核,要么更简单地在禁用的情况下启动。例如在“/etc/default/grub”中:
#GRUB_CMDLINE_LINUX_DEFAULT="ipv6.disable=1 consoleblank=300"
GRUB_CMDLINE_LINUX_DEFAULT="ipv6.disable=1 consoleblank=300 apparmor=0"
相关的启动板错误报告(尽管描述有点错误)是这里。确实有一些解决方法。
请注意,这个问题和答案最终可能会被搁置,因为候选发布内核实际上不受支持。
编辑:来自错误报告的最新进展:
导致问题的内核补丁已恢复。因此 4.14-rc7 应该可以像 4.14-rc2 之前一样工作