我将一些内容存储在挂载/etc/fstab
到该位置的外部分区 (ext4)/vms
中。在该目录中,我有一个文件夹,shared
所有本地用户(包括来宾会话)都应该可以访问该文件夹(当前为只读,以后可能是读写)。
但是,这chmod -R a+r /vms/shared
使得所有标准用户都可以读取这些文件,但不能访问访客会话,据我所知,访客会话通过 AppArmor 或类似方式增加了另一层限制,拒绝访客访问他们家以外的所有内容。
我已经有一个单独的帐户guest-config
,作为新访客会话的默认配置文件(/etc/guest-session/skel
是一个符号链接/home/guest-config
),以便能够调整访客配置文件设置,以防万一这会有所帮助。
如何解锁此特定目录(及其所有文件和子目录)以授予来宾帐户只读或读写访问权限?顺便说一下,使用 Ubuntu 16.04。
答案1
(从我的回答中复制这里,因为我首先看到了它,并且将其标记为后来提出的问题的重复似乎不太合适。)
访客会话使用 AppArmor 锁定,它使用一长串特殊权限来阻止访客用户接触任何内容。这些会话可通过 访问etc/apparmor.d/lightdm-guest-session
。
在我的计算机上,该文件如下所示:
# Profile for restricting lightdm guest session
#include <tunables/global>
/usr/lib/lightdm/lightdm-guest-session {
# Most applications are confined via the main abstraction
#include <abstractions/lightdm>
# chromium-browser needs special confinement due to its sandboxing
#include <abstractions/lightdm_chromium-browser>
}
打开“主要抽象”(etc/apparmor.d/abstractions/lightdm
)会给出一些更有趣的东西:
...
/ r,
/bin/ rmix,
/bin/fusermount Px,
/bin/** rmix,
/cdrom/ rmix,
/cdrom/** rmix,
/dev/ r,
/dev/** rmw, # audio devices etc.
owner /dev/shm/** rmw,
/etc/ r,
/etc/** rmk,
...
这些是受限会话可以访问的所有目录及其权限。如果您将分区和共享文件夹添加到该列表(末尾带有/**
包含所有子目录的行,以及r
读取权限),则所有未来的来宾会话都将拥有对其的只读访问权限。
对于读写权限,使用rw
;这是 的默认权限/var/guest-data
。对于完整权限,使用rwlkmix
;这是 中客户机拥有的驱动器的默认权限/media
。这些代表读取、写入、链接、locK、内存映射和 Inherit-eXecute:最后一个赋予执行权限,但指定执行必须在当前限制内进行(因此您不能通过运行特制的 shell 脚本来突破客户机限制)。