如何以访客用户身份访问已安装的文件系统?
在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