如何在其家外的文件夹上授予访客帐户读取(或读写)权限?

我有东西存储在通过/etc/fstab安装到位置/vms的外部分区(ext4)中。 在该目录中,我有一个shared文件夹,所有本地用户都可以访问(目前只读,后来可能是读写),包括访客会话。

但是, chmod -R a+r /vms/shared使文件对所有标准用户都是可读的,但不适用于访客会话,AFAIK通过AppArm或其他类似的限制访问家庭以外的所有内容。

我已经有一个单独的帐户guest-config作为新访客会话的默认配置文件( /etc/guest-session/skel/home/guest-config的符号链接),以便能够调整访客配置文件设置,以防万一这会有所帮助。

如何解锁此特定目录(及其所有文件和子目录)以授予访客帐户只读或读写访问权限? 使用Ubuntu 16.04 btw。

(从我在这里的回答中复制,因为我先看到了这一点,并且将此标记为稍后提出的问题的副本似乎不正确。)

使用AppArmor锁定访客会话,AppArmor使用一长串特殊权限来阻止访客用户触摸任何内容。 这些可以从etc/apparmor.d/lightdm-guest-session

在我的机器上,该文件如下所示:

 # Profile for restricting lightdm guest session #include  /usr/lib/lightdm/lightdm-guest-session { # Most applications are confined via the main abstraction #include  # chromium-browser needs special confinement due to its sandboxing #include  } 

打开“主要抽象”( 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来宾拥有的驱动器的默认权限。 这些代表Read,Write,Link,locK,Memory-map和Inherit-eXecute:最后一个提供执行权限,但指定执行必须在当前限制内发生(因此您不能通过以下方式中断访客限制:运行一个特制的shell脚本)。