我如何与另一个用户共享目录?

我如何与另一个用户共享目录?

我不希望系统上的任何人都可以访问共享文件夹,我只想让一组受限的用户可以访问它。

我如何做呢?

答案1

摘自这篇精彩的文章Ubuntu 论坛作者:Morbius1。

经典的 Linux 实现这种操作的方式如下:

  1. 创建共享文件夹:

    sudo mkdir /home/Shared
    
  2. 创建新的用户组:

    sudo addgroup newgroup
    
  3. 将共享文件夹的所有权更改为新组:

    sudo chown :newgroup /home/Shared
    
  4. 将您想要的用户添加到该组:

    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
    

1chmod 命令第一个位置上的A是粘着位这可以防止除所有者之外的任何人删除文件。

2chmod 命令第一个位置上的A是设置gid位强制所有新的或复制的文件都具有该文件夹的组。

chmod 命令第一个位置上的A是 sticky ( ) 和 setgid ( ) 位3的组合。1+2

就 setgid 位而言,所有这些都有一个警告。在该文件夹中创建的所有新文件和复制到该文件夹​​的任何文件实际上都将继承该文件夹的组。但不会继承移动到该文件夹​​的文件。移动的文件保留其移动来源的所有权。解决这个问题的一种方法是使用 bindfs。

最后,如果您希望组外的其他人能够看到这些文件但不能更改它们,请将命令中的最后一个 0 更改chmod为 5,例如:

sudo chmod 0775 /home/Shared

相关内容