如何以访客用户身份访问已挂载的文件系统?

如何以访客用户身份访问已挂载的文件系统?

在 Ubuntu 11.04 中,我可以在 /media/foo 中挂载文件系统,并chown guest:guest /media/foo/bar -R在来宾帐户中运行并拥有完全访问权限。升级到 12.04 后,我改变了我的惯例以反映新的来宾用户名 ( chown guest[id]:guest[id] /media/foo/bar -R),但我仍然无法以来宾用户身份访问它,因为我没有以来宾身份访问 /media 的权限:

ls:无法打开目录/media:权限被拒绝

(非常有趣的是,如果我以 root 身份进入 guest 帐户,这确实有效su)。我理解这意味着安全措施但我不知道这是怎么做到的。ls -l /报告

drwxr-xr-x  11 root root  4096 Sep  9 22:28 media

因此我有两个问题:这个限制如何工作,以及我如何以访客用户身份访问已安装的文件系统,理想情况下不允许访问所有其他已安装的文件系统?

答案1

访问/media受到 AppArmor 配置文件的限制/etc/apparmor.d/lightdm-guest-session。有两个例外(第 31 行和第 32 行):

 owner /media/ r,
 owner /media/** rmwlixk,  # we want access to USB sticks and the like

/media/foo如果属于 guest[id],则允许​​访问,这是解决我的问题的第一个选择。缺点是来宾帐户可以在 /media/foo 的根目录中创建任意目录和文件。我决定明确地找出漏洞/media/foo/bar,并添加了以下几行:

 owner /media/foo/bar rw,

语法描述可以在这里找到:http://doc.opensuse.org/documentation/html/openSUSE/opensuse-security/cha.apparmor.profiles.html

据我所知,这仅允许来宾会话访问/media/foo/bar,并且仅当来宾[id]是所有者时才允许bar。请注意,来宾[id]仍然无法访问/media/foo自身。因此ls /media/foo将失败,但ls /media/foo/bar可以工作。

最后重新加载使更改生效的配置文件:

 sudo apparmor_parser -r /etc/apparmor.d/lightdm-guest-session

相关内容