我是 Linux 新手。我试图用我的服务器进行(我认为)非常简单的设置,但我发现了大量相互矛盾的信息。我使用我的服务器通过 samba 将文件夹共享给两台 Windows 8.1 机器和各种 Android 设备。我还运行 Transmission 并为此设置了一个单独的文件夹系统。
就我的目的而言,我实际上有 4 个用户。root userA userB debian-transmission
我希望userA
和userB
对多个目录中所有当前文件和所有创建文件具有读/写权限,包括 拥有和写入的目录debian-transmission
。但是,当 transmission 下载文件时,它是所有者 和 ,userA
并且userB
无法访问文件并将其移动到另一个文件夹,除非通过 SSH 进入服务器并手动更改文件的权限。
到目前为止,我的研究结果分为两派。第一,我应该使用 ACL 方法;第二,ACL 有点过头了,所有这些都可以通过标准权限来完成。我尝试了多个指南来让它使用标准权限,但都无济于事。
任何指导将不胜感激。
答案1
SETGID 就是我要找的答案。我选择避免使用 ACL 方法,因为我读过的大部分资料都表明,这种方法对于我的目的来说有点大材小用。
第一步是创建一个新组来容纳我的用户:
sudo groupadd MyNewGroup
然后将我的用户添加到其中:
sudo usermod -aG MyNewGroup userA
sudo usermod -aG MyNewGroup userB
sudo usermod -aG MyNewGroup debian-transmission
为该文件夹及其所有子文件夹分配所有权:
sudo chown -R userA:MyNewGroup /mnt/ParentFolder
根据需要为所有现有文件添加权限:
chmod -R 770 /mnt/ParentFolder
这是我一直不明白的部分,设置 GID,以便所有新文件都归该组所有:
chmod g+s /mnt/ParentFolder
在这样设置的目录中创建的所有新文件都将允许组中的任何人拥有您设置的权限。