对现有文件具有写权限的组共享的目录

对现有文件具有写权限的组共享的目录

我需要帮助来了解如何在 Ubuntu 中向组授予写权限。我以 root 身份登录,并且拥有www-data:www-dataftpuser:ftpuser( user:group)。我使用以下命令将添加到组ftpuserwww-data

usermod -a -G www-data ftpuser

现在我的www-data小组有两个用户。

然后我使用以下命令创建该组www-data,即文件夹的所有者/var/www

chgrp -R www-data /var/www

我仍然无法让组成员写入该文件夹(尽管该组拥有该文件夹),除非我授予该组的写入权限。现在根据最佳答案我还需要设置目录使用的权限sudo chmod -R 770 /path/to/the/directory,这让我很困惑。

如果用户是目录的所有者,为什么他不能写入该目录?组用户可以授予组对其拥有的文件夹的写入权限吗?命令中定义的组在哪里sudo chmod -R 770 /path/to/the/directory?这不会向所有用户授予递归权限吗?

答案1

尽管该集团拥有它

不,从权限owner适用的意义上来说,组不拥有文件。所有者权限仅适用于所有者 - 用户;组权限适用于指定的组。

如果用户是目录的所有者,为什么他不能写入该目录?

他可以,但就ftpuser你的情况来说他不是主人。

最有可能的是,因为您没有明确说明:root或者是文件的www-data所有者,并且是该组的成员。/var/wwwftpuserwww-data

即使用户www-data和组www-data具有相同的名称,对于操作系统来说,它们也是不同的实体。

组内的用户可以授予组对其自己拥有的文件夹的写权限吗?

再次强调:文件夹不属于任何组。如果该组具有写入权限,则该组的任何成员都可以更改该对象的权限。

命令中定义的组在哪里sudo chmod -R 770 /path/to/the/directory

第二个7是指群组权限(是、和7的组合)。readwriteexecute

这不会向所有用户提供递归权限吗?

它将分配(递归):

  • readwriteexecute所有者(第一个7
  • read,,write并且execute对于组(第二7
  • 其他用户无权限(最后0

答案2

对现有文件具有写权限的组共享的目录

所有用户都应是 www-data 组的成员。您可以使用以下方式添加他们

usermod -a -G www-data user1 usermod -a -G www-data user2 ...

可以使用一系列命令授予组 www-data 对文件夹及其所有包含文件的写权限:

chgrp -R www-data /var/www chmod -R g+ws /var/www

所有新文件和目录都将分配有组 www-data 并可由该组成员写入。

新文件的权限

大多数 Linux 系统上的默认 umask 是 022,这意味着如果 user1 在 /var/www 下创建文件或目录,则该文件只有 user1 可“编辑”,但组 www-data 可读。

如果这是预期的行为,那么你应该在这里停止。

具有写权限的组共享的目录

您应该验证系统上是否启用了扩展 ACL。您可以查看 /etc/fstab 并查找类似以下内容: 检查后,您需要为目录提供扩展 ACL 参数。 /dev/sda5 / ext4 acl,.....

您将使用以下命令添加 ACL,以允许在 /var/www 文件夹下创建的新文件也可由 www-data 组写入:

setfacl -R -b -k -d -m g:www-data:rwx --mask $2

在这种情况下,如果用户 1 在 /var/www 下创建文件或文件夹,则用户 2 将能够写入/删除。

每个新文件或目录都具有权限 rw-rw-???。问号是您为其他文件或目录设置的。

如何验证权限

使用此命令:

getfacl /var/www

输出应该是这样的:

# file: /var/www # owner: www-data # group: www-data # flags: -s- user::rwx group::rwx other::--- default:user::rwx default:group::rwx default:group:www-data:rwx default:mask::rwx default:other::---

文件夹 /var/www 的默认权限为:drwxrws---

相关内容