在我使用 Gnome 3.28 安装 Arch Linux 时,我最近注意到,当 Nautilus 在没有 root 权限的情况下启动时,我可以使用 Nautilus 进入私有目录 /root 并查看里面的文件。此外,当我像这样启动 nautilus 时,我可以作为非 root 用户在文件系统中的任何位置创建目录:
$ 鹦鹉螺管理员:///
Nautilus 没有 root 权限怎么可能?目前,这对我来说是一个非常奇怪的安全漏洞......
答案1
Linx/Unix 正常工作。系统root
文件有不是看不见,但它们应该是书写的禁区。有些文件您可以看到,但不能读取(例如/etc/shadow
)。
答案2
我的问题是由 sudo 系统的不安全配置引起的。当我安装 Arch Linux 系统并能够在没有 root 帐户的情况下执行命令时,我直接在 sudoers 文件中添加了我的用户名,如下所示:
martin ALL=(ALL) ALL
它与 sudo 配合得很好,但与 polkit 配合则完全不行。通过这种配置,当我刚刚输入pkexec
shell 时,它会打开一个 root shell,而不询问我任何密码。但是当 Nautilus 尝试访问该/root
目录时,他会执行该pkexec
命令。这样我就可以使用普通用户帐户进入这个目录,而无需任何密码。
为了解决这个问题,我将我的用户放入wheel
组中并取消注释 sudoers 文件中的这一行
# %wheel ALL=(ALL) ALL
总之,这不是 Nautilus 的安全漏洞,而是我所做的不安全配置......我很抱歉。