如何设置文件夹,以便其中创建的所有内容都继承权限?


18

我有一个/ data文件夹(实际上是一个分区),用于所有用户(在这种情况下为家庭成员)应该访问的所有数据。我们都有个人用户帐户,通常都可以随时在一台PC上登录。

如何设置权限,以便无论谁创建文件,包括新文件夹,我们所有人都保留对文件的访问权限?如果创建一个文件夹,它将获得我的用户和组,因此没有其他人可以写入该文件夹。


为游客。如果只希望继承组名chmod -R g+s /parentdir。注意:chmod -R 如果需要,请在此之前运行
Thamme Gowda '18

1
上面的说明:-R标志to chmod很少有用,因为我们很少希望目录(总是需要一些执行许可)和常规文件(很少需要任何执行许可)具有相同的许可
Zanna

Answers:


17

另一种方法是使用访问控制列表,它是文件权限的超集。

首先,我们必须安装acl 安装ACL软件包:

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

(在下次登录时有效)。

然后,我们向已经在其中的所有文件添加rwx对该组具有权限的ACLusershare/media/shared

sudo setfacl -Rm g:usershare:rwX /media/shared

最后,我们为从现在开始在内部创建的所有文件添加一个具有rwx该组权限的默认ACLusershare/media/shared

sudo setfacl -d -Rm g:usershare:rwX /media/shared

现在,该usershare网上论坛的所有用户都对下的所有文件拥有完全权限/media/shared。每个用户在其主目录和其他主目录上的权限均不受影响。

我测试了此解决方案,并且似乎可以正常工作,但是欢迎提出建议和更正。

备注:在所考虑的目录中创建的新文件和目录将对该usershare组具有写权限,但是在文件夹中复制或移动的文件将保留其原始权限。据我了解,如果该用户仅要求对新创建的目录具有写访问权,那么这不是问题。否则,它应该手动修改权限。请参阅此答案,以了解如何通过将用户的umask定义为来克服此问题002


我对ACL不太了解,您能否测试并将权限为rw-r--r-的文件从您的主文件夹复制到共享文件夹,并查看权限是否更改为该usershare组的默认rwx ?
安排

@arrange:不,它没有按预期工作。要指出答案。谢谢
enzotib 2011年

我会补充说/etc/fstab/ remount步骤不是必需的,因为默认情况下ext4应该使用aclactive选项安装它。
enzotib 2012年

8
  1. 制作文件夹。

    例如:

    mkdir /mnt/family
    

    如果您需要对其进行安装分区...如果使用ext4,/etc/fstab则 只需

    UUID=xxx    /mnt/family ext4    **rw,exec,defaults,auto,async   0   2**
    
  2. 创建组myfam。

    addgroup myfam
    
  3. 将一些用户添加到该组

    adduser papa myfam  
    adduser mom myfam
    
  4. 现在获取并给予许可。

    我认为你应该从改变开始umask

    12.04中的默认文件系统权限和访问权限

    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组作为主要组。

Edi2

正如@James_Henstridge所建议的那样,在主目录上设置setgid位会很方便,这样,新创建的文件和目录将具有相同的组,而用户组则相同。这样,您就可以避免将该集合users作为用户的主要组。


您可能想要编辑答案,还建议在所有目录中设置setgid位,/data以便新文件继承组所有权。
詹姆斯·亨斯特里奇

edit3 :)如果将文件复制到文件/data夹,则不会继承权限,因此具有gw权限的旧文件将不会被其他人修改。edit4:将其设置users为主要组和umask0002绝对不是一个好主意,因为该组中的任何人都将能够修改您新创建的文件。
安排

@arrange:关于您的edit4,我建议users仅将允许对共享拥有rw访问权限的用户分组。只是为了方便起见,它也可以为此创建另一个小组。关于您的edit3,这是不正确的,复制的文件获取文件夹组。
enzotib 2011年

@enzotib:重申我的观点:edit4-如果users是我的主要组,并且该组中有更多用户,则即使在共享目录之外,他们也可以修改我的文件;edit3-我写了权限,不是文件夹组。
安排

@arrange:您的观点是正确的,我只是写了另一个答案,听到您的意见可能会很有趣。
enzotib


0

我不明白,都是使用Samba,SSH,Pigeons的linux-linux,linux-windows,linux-???吗?无论如何,您都需要使用您的用户名(您的网上论坛)将其他用户包括在网上论坛中,他们将获得与您相同的权限。


一台PC上有多个用户。我确定必须有一种方法可以将默认权限授予有用的东西。
steevc 2011年

0

我在寻找“组权限”问题的答案时遇到了这个问题。我已经阅读了该问题,并且看来我已经在执行该问题试图解决的问题。

所以我不愿回答。

我已经为局域网上的所有用户设置了共享,只能进行读取和执行,并且只有我的帐户有权在共享文件夹上进行写操作。

我的局域网上有一个使用ubuntu 12.04 LTS Desktop Edition的多功能服务器。我有Linux和Windows的混合客户端计算机。

以下是我的设置方法:

1.On我的服务器,我有用户帐户命名adminclientone

admin帐户是我安装ubuntu时创建的帐户,而该clientone帐户是使用ubuntu中的“ USER ACCOUNTS”菜单创建的帐户。它仅具有标准权限,没有管理员权限,并且已添加到users组中。当然,您可以只使用终端来执行这些操作。为您的客户端计算机添加更多其他用户帐户。

2.仅使用默认选项将共享分区/文件夹自动挂载到fstab中。

3.我的网络在工作组环境中,并且在mylan工作组中。

我局域网中的所有计算机都设置为使用mylan工作组。

4.我的共享文件夹中shared已经有文件了。所以我使用下面的命令递归地更改所有者和组。

 sudo chown -Rv admin:users /shared

5,我还/shared使用命令递归设置文件夹和文件的权限

 sudo chmod -Rv 750 /shared

我的mylan工作组中的来宾计算机无法使用chmod 750访问共享

您可以使用

 sudo chmod -Rv 755 /shared

users组内所有将来的用户帐户仅具有读取执行权限。

6.在我的客户端计算机(Windows XP)中,我设置了一个名为的用户帐户clientone。用户名和密码与在ubuntu服务器中创建的用户名和密码相同。clienttwo在ubuntu服务器中也创建了一个名为的第二个帐户,它与第二台计算机(linuxmint 15)中使用的用户帐户相同。

7.在我的客户端计算机上使用该clientone帐户登录后,我进入运行命令然后输入

 //192.168.10.254/shared

192.168.10.254是我的ubuntu服务器的ip地址,是我的ubuntu服务器中/shared共享的文件夹在我的两个客户端计算机(linuxmint 15)中,我进入菜单>网络,然后在位置:对话框中输入:

 smb://192.168.10.254/shared

如果提示您输入密码,请输入您的用户密码。如果您的linux机器中启用了KEYRING,还需要输入您的keyring密码。

在我自己的网络设置中,这对我有用。我的服务器是一台多用途服务器,用作鱿鱼服务器,xbmc,mediatomb服务器和amahi服务器。

我仍在寻找有关如何改善设置中文件共享部分的方法。上面的说明不是防弹解决方案,您可以尝试一下。我测试并尝试“ ACL”以及自动挂载共享文件夹。随着您的文件夹共享要求变得复杂,上述说明将无法保证您的成功。

添加的信息:

我的服务器中安装了Amahi Server,我还使用它来创建想要访问共享文件夹的用户帐户。我还用它来创建新的文件夹共享。

如果您想为不同的用户提供更复杂的用户权限,则可以使用ACL。


0

我的名字上有视频文件,但是当我带着女儿的名字登录时,她的帐户看不到视频文件。因此,我要做的是转到用户帐户,将其解锁(右上角),然后将其帐户类型从“标准”更改为“管理员(这就是我的帐户)”,现在所有的视频文件(实际上就是所有内容)都显示了使用她的帐户登录时。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.