如何赋予不同组对特定文件夹的不同权限?

nux*_*nux 5 user-management

我有两个组“Group1”“Group2”

我也有文件夹“文件夹”

我想给Group1读写权限,而Group2只能读。

有什么建议吗?

Mal*_*ppa 11

让我说清楚:

  1. 您希望group1对特定文件夹具有读/写访问权限。

  2. 您希望group2对该文件夹具有只读访问权限。

  3. 您不想others拥有对该文件夹的读取权限。

默认情况下,Linux 的权限系统不允许这样做。原因很简单:对于每个 inode,只有三位 ( rwx) 描述特定组的权限,即拥有该 inode 引用的文件/目录的组。任何不是所有者也不属于该组的用户将自动归入others。在实践中,这通常是足够的,但在某些极少数情况下可能不够。

好消息是 Linux 实际上支持ACL(访问控制列表),它允许进行更细粒度的访问控制。为了启用 ACL,您必须添加acl到挂载选项。例如,如果包含要设置高级访问控制的目录的分区按/etc/fstab如下方式安装在:

/dev/sda1  /      ext4    defaults                    0 1
Run Code Online (Sandbox Code Playgroud)

...你可以将其更改为:

/dev/sda1  /      ext4    acl,defaults                0 1
Run Code Online (Sandbox Code Playgroud)

然后您需要重新挂载文件系统(例如,mount -o remount /dev/sda1),或者简单地重新启动。

接下来让我们确保您的文件夹/path/to/folder授予group1. 权限应该类似于

drwxrwx---   2 owner group1      4096 Dec 14 02:42 folder
Run Code Online (Sandbox Code Playgroud)

此外,您希望授予 读取访问权限group2而根本不others授予 访问权限。为此,请发出命令

setfacl -m g:group2:rx /path/to/folder
Run Code Online (Sandbox Code Playgroud)

就是这样。您可以稍后使用 来查看该文件夹的 ACL 权限getfacl,即:

getfacl /path/to/folder
Run Code Online (Sandbox Code Playgroud)

此处的更多信息:ACL:扩展文件权限


Wil*_*ilf 2

这些命令应该有效:

sudo chown -R OWNER-USERNAME:GROUPNAME /PATH/TO/Folder
sudo chmod -R 664 /PATH/TO/Folder
Run Code Online (Sandbox Code Playgroud)

这有望为所有者和组提供读写访问权限,以及对“其他”(应包括Group2 )的只读访问权限。

chmod手册页在这里
chown手册页在这里

要重置任何更改以便只有所有者才能访问,请运行:

sudo chown -R OWNER-USERNAME:OWNER-USERNAME /PATH/TO/Folder
sudo chmod -R 600 /PATH/TO/Folder
Run Code Online (Sandbox Code Playgroud)

  • 伙计,我不希望其他人有阅读权限 (2认同)