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 上传、删除或编辑文件/文件夹。
我需要做什么?
要在目录中删除或创建文件,您需要对该目录具有写入权限,但您没有该权限(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/