我不希望系统上的任何人都可以访问共享文件夹,我只想让一组受限的用户可以访问它。
我如何做呢?
答案1
摘自这篇精彩的文章Ubuntu 论坛作者:Morbius1。
经典的 Linux 实现这种操作的方式如下:
创建共享文件夹:
sudo mkdir /home/Shared
创建新的用户组:
sudo addgroup newgroup
将共享文件夹的所有权更改为新组:
sudo chown :newgroup /home/Shared
将您想要的用户添加到该组:
sudo adduser user1 newgroup
对所有用户重复此操作。
现在你需要决定希望这些用户能够做什么:
[A]所有组用户都可以向文件夹添加和删除文件,并且可以读取但不能写入彼此的文件:
sudo chmod 0770 /home/Shared
[二]与上面相同,但只有文件所有者可以删除它:
sudo chmod 1770 /home/Shared
[C]所有组用户都可以向文件夹添加和删除内容,并可以读取和写入彼此的文件:
sudo chmod 2770 /home/Shared
[d]与...一样[C]但只有文件的所有者才能删除它:
sudo chmod 3770 /home/Shared
1
chmod 命令第一个位置上的A是粘着位这可以防止除所有者之外的任何人删除文件。
2
chmod 命令第一个位置上的A是设置gid位强制所有新的或复制的文件都具有该文件夹的组。
chmod 命令第一个位置上的A是 sticky ( ) 和 setgid ( ) 位3
的组合。1
+2
就 setgid 位而言,所有这些都有一个警告。在该文件夹中创建的所有新文件和复制到该文件夹的任何文件实际上都将继承该文件夹的组。但不会继承移动到该文件夹的文件。移动的文件保留其移动来源的所有权。解决这个问题的一种方法是使用 bindfs。
最后,如果您希望组外的其他人能够看到这些文件但不能更改它们,请将命令中的最后一个 0 更改chmod
为 5,例如:
sudo chmod 0775 /home/Shared