文件/文件夹作为组所有者 www-data 和 SFTP 作为不同用户

Blu*_*nch 1 ssh permissions apache2 sftp

这里有很多类似的问题,我已经遵循了几个答案来尝试解决这个问题,但没有运气。

我在 AWS 的 EC2 实例上使用 Ubuntu 14.04.5 LTS。我在 /var/www/html/folder 中使用 WordPress。我以 ubuntu 用户身份登录 SSH 和 SFTP。

/var/www/html/folder 中的所有文件和文件夹都是 ubuntu 组所有者,我需要将所有这些更改为 WordPress 的 apache 用户 www-data。

首先,我将 ubuntu 用户添加到 www-data:

sudo usermod -a -G www-data ubuntu

我注销并登录,所以使用

getent group节目www-data:x:33:ubuntu

然后,我将 /var/www/html/folder 中的所有文件/文件夹从默认的 ubuntu 更改为 www-data 组和所有者

sudo chown -R www-data /var/www/html/folder/

sudo chgrp -R www-data /var/www/html/folder/

sudo chmod -R g+s /var/www/html/folder/

并使所有新文件/fodler 都位于 www-data 中

sudo chmod 2750 /var/www/html/folder/

WordPress 现在可以读/写,因此我可以从 WP 管理添加插件和媒体。我可以使用 nano 在 ubuntu 上通过 SSH 编辑文件。

问题是我仍然无法以 ubuntu 用户身份使用 SFTP 上传、删除或编辑文件/文件夹。

我需要做什么?

moo*_*765 5

要在目录中删除或创建文件,您需要对该目录具有写入权限,但您没有该权限(chmod 2750 /var/www/html/folder/,您属于该组,但不是该目录的所有者)。

须藤 chmod 2770 /var/www/html/文件夹/

将使属于该组的用户www-data能够创建或删除文件。

编辑目录中现有文件的能力取决于文件权限本身,但需要所有父目录的执行权限。这解释了为什么您能够编辑某些文件。

您的目录中已存在的文件/var/www/html/folder/可能仍然具有错误的权限,并且您只能编辑您拥有的文件。这表明组权限不够,您可能需要运行

sudo chmod -R g+w /var/www/html/folder/

为 的所有用户授予写入权限www-data

但是新创建的文件会发生什么情况呢?新创建的文件将带有错误的权限集(可能取决于 -valueumask或由绕过 -value 并设置其自己的权限的应用程序控制umask。解决该问题的一种方法是使用 ACL(访问控制列表)

setfacl -mg:www-data:rwx /var/www/html/folder/

应该足够了。以下是如何使用 ACL 的一些链接:

https://linuxconfig.org/how-to-manage-acls-on-linux

https://bencane.com/2012/05/27/acl-using-access-control-lists-on-linux/