我有一个 /data 文件夹(实际上是一个分区),里面存放着所有用户(这里指家庭成员)可以访问的所有数据。我们都有单独的用户帐户,并且经常在同一时间登录这台电脑。
我该如何设置权限,以便我们所有人都能访问其中的文件,无论是谁创建的,包括新文件夹?如果我创建一个文件夹,它会获得我的用户和组,因此其他人都无法写入它。
答案1
另一种方法是使用访问控制列表,即文件权限的超集。
首先,我们必须安装访问控制列表 包裹:
sudo apt-get install acl
Ubuntu 14.04 之前,分区必须使用选项挂载,acl
才能使以下内容正常工作。它可以添加到 中/etc/fstab
,例如
UUID=<XXXX> /media/shared ext4 noatime,acl 0 2
或者对于已经挂载的文件系统
sudo mount -o remount,acl /media/shared
接下来,您应该创建一个新组,所有允许以读/写模式访问共享的用户都将添加到该组。我将其称为usershare
。可以使用已经存在的组。
sudo addgroup usershare
现在我们将用户添加enzotib
到steevc
该组:
sudo gpasswd -a steevc usershare
sudo gpasswd -a enzotib usershare
(下次登录时生效)。
然后我们添加一个 ACL,该 ACL 具有rwx
该组usershare
对所有已存在的文件的权限/media/shared
sudo setfacl -Rm g:usershare:rwX /media/shared
最后,我们添加一个默认 ACL,该 ACLrwx
具有该组usershare
从现在开始在里面创建的所有文件的权限/media/shared
sudo setfacl -d -Rm g:usershare:rwX /media/shared
现在,该组的所有用户usershare
对 下的所有文件都拥有完全权限/media/shared
。每个用户对其主目录和其他人的主目录的权限不受影响。
我测试了这个解决方案并且似乎有效,但欢迎提出建议和更正。
评论:在所考虑的目录中创建的新文件和目录将具有该usershare
组的写权限,但文件夹中复制或移动的文件将保留其原始权限。如果用户(据我了解)只需要对新创建的目录具有写权限,则这不是问题。否则,它应该手动修改权限。请参阅这个答案如何通过定义用户的 umask 来克服这个问题002
。
答案2
建立夾件夾。
例如:
mkdir /mnt/family
如果您需要将分区挂载到它们...如果是 ext4 您所需要的
/etc/fstab
就是UUID=xxx /mnt/family ext4 **rw,exec,defaults,auto,async 0 2**
创建群组 myfam。
addgroup myfam
添加一些用户到该组
adduser papa myfam adduser mom myfam
现在接受并给予许可。
我认为你应该从改变开始
umask
。chown -R you.myfam /mnt/family chmod -R g+rwx /mnt/family
现在最重要的是。该行创建
setgid
您在该文件夹下创建的所有内容,并将您的用户作为所有者和组myfam
。这让系统覆盖用户的主要组。chmod -R g+s /mnt/family
答案3
想到的最简单的事情就是将每个用户添加到所有其他用户的组中。
然后将每个用户的 umask 从 022 更改为 002,这可以在 中完成/etc/profile
。
编辑
第一步可以替换为以下内容:使所有用户都属于users
该组作为主要组。
埃迪2
正如@James_Henstridge 所建议的,在主目录上设置 setgid 位会很方便,这样新创建的文件和目录将拥有相同的组,与用户无关。这样,您可以避免将其设置users
为用户的主要组。
答案4
我不明白,所有的 linux-linux、linux-windows、linux-??? 都使用 Samba?、SSH?、Pigeons?;无论如何,您需要将其他人纳入使用您的用户名的组(您的组),这样他们将获得与您相同的权限。