修复 Ubuntu 20 服务器上目录的所有权

修复 Ubuntu 20 服务器上目录的所有权

我客户的 WordPress 网站托管在 Digital Ocean。我已在此设置了他们建议的权限,但在使用 SSH 访问服务器上的 example.com 目录时遇到了权限问题。当我尝试使用 访问目录时cd example.com,显示以下消息:-bash: cd: example.com: Permission denied

我已经stat在 example.com 目录上运行了该命令,并且输出如下所示。

File: example.com
Size: 4096          Blocks: 8          IO Block: 4096   directory
Device: fc01h/64513d    Inode: 258961      Links: 5
Access: (0750/drwxr-x---)  Uid: (   33/www-data)   Gid: (   33/www-data)

我也无法使用设置 Droplet 时创建的 SSH 用户通过 SFTP 进行连接。我的 MacBook Pro 上的 Transmit 显示以下消息:请确保您有修改此文件的权限。

如果我将目录权限更改为sudo chown -R example:example /var/www/example.comSFTP 连接,但 WordPress 安装无法正常工作。

为了让 WordPress、SSH 和 SFTP 以适当的权限正常工作,我需要进行哪些更改?

答案1

网站文件的通用权限:

chown apache:apache -R * # change to the user and owner set for apache
find . -type d -exec chmod 755 {} \;  # directory permissions: rwxr-xr-x
find . -type f -exec chmod 644 {} \;  # file permissions: rw-r--r--

WP 硬化状态:

所有文件都应归您的用户帐户所有,并且应可由您写入。任何需要 WordPress 写入权限的文件都应可由 Web 服务器写入,如果您的托管设置需要,则可能意味着这些文件需要由 Web 服务器进程使用的用户帐户集体拥有。

  • /WordPress 根目录:所有文件只能由您的用户帐户写入,但如果您希望 WordPress 自动为您生成重写规则,则 .htaccess 除外。
  • /wp-admin/WordPress 管理区域:所有文件只能由您的用户帐户写入。
  • /wp-includes/WordPress 应用程序逻辑的大部分:所有文件都应该只能由您的用户帐户写入。
  • /wp-content/用户提供的内容:旨在由您的用户帐户和 Web 服务器进程写入。

你会/wp-content/发现:

  • /wp-content/themes/主题文件。如果您要使用内置主题编辑器,则所有文件都需要可由 Web 服务器进程写入。如果您不想使用内置主题编辑器,则所有文件只能由您的用户帐户写入。

  • /wp-content/plugins/插件文件:所有文件只能由您的用户帐户写入。

  • 可能存在的其他目录应由/wp-content/需要它们的插件或主题记录。权限可能有所不同。

进入cdWordpress 目录并执行:

chown $USER:$USER  -R * # Let your useraccount be owner
chown www-data:www-data wp-content # Let apache be owner of wp-content
  • 最后一个是主观的,因为这取决于你想如何使用它。

现在,您可以使用您的用户名直接通过 ssh 和 ftp 更新所有 WP 文件。

这可能会有用(我使用了我的云实例,但我没有 WP)


我个人的看法:

切勿直接更新网络服务器文件,而是间接更新,让系统本身进行更新。如果您将文件上传到特定目录,则可以以用户身份上传所有文件,而无需查看权限

  • 例如将您的网站复制到/home/$USER/website/

  • 使用这些文件来编辑

  • 然后创建一个脚本,进行备份并将这些文件复制到您的实际网站 - 而不更改权限。

  • 执行此操作的 2 个命令如下所示(根据您的情况进行调整;我使用了广泛的选择(即整个网站)):

    tar cvfz /u/backups/"$(date +"%Y_%m_%d_%I_%M_%p").tar.gz"  /var/www/
    sudo cp -rp /home/$USER/website/ /var/www/
    

相关内容