Answers:
另一种方法是使用访问控制列表,它是文件权限的超集。
首先,我们必须安装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
。
usershare
组的默认rwx ?
/etc/fstab
/ remount
步骤不是必需的,因为默认情况下ext4
应该使用acl
active选项安装它。
制作文件夹。
例如:
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
想到的最简单的事情是将每个用户添加到所有其他用户的组中。
然后,将每个用户的umask从022更改为002,可以在中完成/etc/profile
。
编辑
第一步可以替换为以下步骤:使所有用户均属于users
组作为主要组。
Edi2
正如@James_Henstridge所建议的那样,在主目录上设置setgid位会很方便,这样,新创建的文件和目录将具有相同的组,而用户组则相同。这样,您就可以避免将该集合users
作为用户的主要组。
/data
以便新文件继承组所有权。
/data
夹,则不会继承权限,因此具有gw权限的旧文件将不会被其他人修改。edit4:将其设置users
为主要组和umask
0002绝对不是一个好主意,因为该组中的任何人都将能够修改您新创建的文件。
users
仅将允许对共享拥有rw访问权限的用户分组。只是为了方便起见,它也可以为此创建另一个小组。关于您的edit3,这是不正确的,复制的文件获取文件夹组。
users
是我的主要组,并且该组中有更多用户,则即使在共享目录之外,他们也可以修改我的文件;edit3-我写了权限,不是文件夹组。
这听起来像是ACL的工作。 Giles 在SE Unix和Linux站点上有一个非常详尽的答案,它帮助我解决了同样的问题。
我不明白,都是使用Samba,SSH,Pigeons的linux-linux,linux-windows,linux-???吗?无论如何,您都需要使用您的用户名(您的网上论坛)将其他用户包括在网上论坛中,他们将获得与您相同的权限。
我在寻找“组权限”问题的答案时遇到了这个问题。我已经阅读了该问题,并且看来我已经在执行该问题试图解决的问题。
所以我不愿回答。
我已经为局域网上的所有用户设置了共享,只能进行读取和执行,并且只有我的帐户有权在共享文件夹上进行写操作。
我的局域网上有一个使用ubuntu 12.04 LTS Desktop Edition的多功能服务器。我有Linux和Windows的混合客户端计算机。
以下是我的设置方法:
1.On我的服务器,我有用户帐户命名admin
和clientone
该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。
chmod -R g+s /parentdir
。注意:chmod -R
如果需要,请在此之前运行