今天我运行journalctl -k
后发现了数百个这样的条目:
Mar 27 22:15:11 charm kernel: audit: type=1400 audit(1679915711.422:1671372): apparmor="DENIED" operation="open" profile="snap.firefox.firefox" name="/etc/fstab" pid=14539 comm="firefox" requested_mask="r" denied_mask="r" fsuid=1000 ouid=0
为什么 Firefox 尝试访问 fstab 以及我该如何阻止它尝试?
答案1
我成功地重现了这一点:
[Mon Mar 27 12:31:56 2023] audit: type=1400 audit(1679916718.256:598): apparmor="DENIED" operation="open" class="file" profile="snap.firefox.firefox" name="/etc/fstab" pid=3791195 comm="firefox" requested_mask="r" denied_mask="r" fsuid=1001 ouid=0
我刚刚安装了 Firefox,运行了启动向导,浏览到某个页面,然后使用菜单“文件 -> 将页面另存为”来触发事件。
需要注意两点:Firefox 没有读取,/etc/fstab
因为 AppArmor 规则阻止了它(因此错误中显示为“DENIED”)。其次,这并非 Firefox 独有。我安装了“Musicpod”应用程序,它在选择音乐文件夹时也做了同样的事情。
[Mon Mar 27 12:37:25 2023] audit: type=1400 audit(1679917047.146:637): apparmor="DENIED" operation="open" class="file" profile="snap.musicpod.musicpod" name="/etc/fstab" pid=3793570 comm="musicpod" requested_mask="r" denied_mask="r" fsuid=1001 ouid=0
在我看来,应用程序(或 GTK 文件选择器)只是试图找出所有已安装的文件系统,以便将它们显示在文件选择器对话框中。没有什么险恶的,也没有什么可担心的。
也就是说,如果您愿意的话,可以禁用日志记录,不只是针对该操作,而是所有操作。
sudo apt install auditd
sudo auditctl -a exit,never -F exe=/snap/firefox/current/usr/lib/firefox/firefox
在这里测试,它完全抑制了系统日志中 apparmor 的输出。
答案2
当程序显示支持 GVFS 的文件系统访问对话框(打开/另存为)时,可能会发生这种情况。GVFS 支持特殊标志/etc/fstab
(例如x-gvfs-show
、x-gvfs-icon
等),用于决定哪些文件系统显示在这样的对话框中,以及它们的外观。