War*_*ill 11
摘自Morbius1在Ubuntu 论坛上的这篇优秀文章。
做这种事情的经典 Linux 方式是这样的:
创建共享文件夹:
sudo mkdir /home/Shared
Run Code Online (Sandbox Code Playgroud)创建新用户的组:
sudo addgroup newgroup
Run Code Online (Sandbox Code Playgroud)将共享文件夹的所有权更改为新组:
sudo chown :newgroup /home/Shared
Run Code Online (Sandbox Code Playgroud)将您想要的用户添加到该组:
sudo adduser user1 newgroup
Run Code Online (Sandbox Code Playgroud)对所有用户重复此操作。
现在您需要做出一些决定来决定您希望这些用户能够做什么:
[a]所有组用户都可以在文件夹中添加和删除,并且可以读取但不能写入彼此的文件:
sudo chmod 0770 /home/Shared
Run Code Online (Sandbox Code Playgroud)[b]同上,但只有文件的所有者可以删除它:
sudo chmod 1770 /home/Shared
Run Code Online (Sandbox Code Playgroud)[c]所有组用户都可以在文件夹中添加和删除,并且可以读写彼此的文件:
sudo chmod 2770 /home/Shared
Run Code Online (Sandbox Code Playgroud)[d]与[c ]相同,但只有文件的所有者可以删除它:
sudo chmod 3770 /home/Shared
Run Code Online (Sandbox Code Playgroud)1chmod 命令第一个位置的A是粘滞位,可防止将文件删除给所有者以外的任何人。
一个2在chmod命令的第一个位置是setgid位,这迫使所有新的或复制的文件有组文件夹中。
3chmod 命令第一个位置的A是粘性 ( 1) 和 setgid ( +2) 位的组合。
就 setgid 位而言,所有这些都有一个警告。在该文件夹中创建的所有新文件以及复制到该文件夹中的任何文件实际上都将继承该文件夹的组。但不是文件移动到该文件夹。移动的文件保留其原处的所有权。解决这个问题的一种方法是使用 bindfs。
最后,如果您希望组外的其他人能够查看文件但不更改它们,请将chmod命令中的最后 0 更改为 5,例如:
sudo chmod 0775 /home/Shared
Run Code Online (Sandbox Code Playgroud)