在 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