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

在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:无法打开目录/媒体:权限被拒绝

(非常有趣的是,如果我以root身份进入访客帐户,这确实有效)。 我知道这是一个安全措施,但我不知道它是如何完成的。 ls -l / reports

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

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

AppArmor配置文件/etc/apparmor.d/lightdm-guest-session限制对/media访问。 有两个例外(第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并且仅当guest [id]是bar的所有者时才允许访问/media/foo/bar bar 。 请注意,guest [id]仍然无法访问/media/foo本身。 因此ls /media/foo会失败,但ls /media/foo/bar起作用。

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

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