根据我之前在这里发表的一篇文章: https://security.stackexchange.com/questions/180170/protecting-folder-contents-from-processes,从技术上来说,应该可以实现一个利用 Linux 内核原生支持的标准自主访问控制模型的系统,在这个系统中,我选择的进程列表将是唯一能够读取特定挂载目录的进程。
具体来说,我希望我的文件管理器(Nautilus)能够读取我安装的目录的内容并按正常方式向我显示里面的文件夹和文件,但任何其他进程都无法这样做。
为此,我为此特定目的创建了一个新组,我将可执行文件 /usr/bin/nautilus 的组从“root”更改为该特殊组,并在该文件上设置了 setgid 标志,以便从该文件启动的进程的有效组 ID 是有权访问该已安装文件夹的组的有效组 ID。基本上,nautilus 作为进程的有效运行组将是特殊组。
最后,我进入已安装的文件夹并执行了“chgrp -R special_group .”和“chmod -R 770 .”。该文件夹的所有者是“root”。
一切都很好,只是现在我被锁定在已安装的文件夹之外。Nautilus 不知出于什么原因无法访问此文件夹,并向我显示通用的“权限被拒绝”。更糟糕的是,由于同样的错误,我无法访问我自己用户的垃圾文件夹。
我在这里做错了什么吗?
答案1
您可以使用 sudo 命令启动 nautilus。
$ sudo nautilus