获取 SFTP 来更新 Wordpress

获取 SFTP 来更新 Wordpress

我花了一段时间才弄清楚如何安装 SFTP,并设置一个用户 sftpwp,该用户被限制在其自己的主目录中,并且只能使用 SFTP 内部的命令。我在用户 sftpwp 的主目录中的 /var/www 之间创建了一个符号链接。

这是在 Ubuntu 12.04 上。(我没有运行较新版本的 Ubuntu,因为它们似乎不喜欢我用来直接访问这台机器的 KVM)。

唉,当我尝试更新 Wordpress 时出现以下错误。

无法复制文件:wordpress/wp-admin/includes/update-core.php

我知道 SFTP 正在运行,并且观察到 Wordpress 面板显示它已成功下载更新文件:但随后它停在上述错误处。

我尝试在 Wordpress 论坛上寻求帮助,但被告知由于这是一个管理问题,因此它偏离了 Wordpress 论坛的主题。

那么,问题可能是什么:将用户 sftpwp 限制为仅 sf​​tp 内部的内容,还是将其限制在其主目录中,或者是其他权限问题?而且,解决办法是什么?请记住,我不是管理员,而是程序员。

谢谢,

特德

答案1

我试过了。我刚刚注意到从 tar.gz 文件中提取的 Wordpress 目录归 拥有nobody:nogroup。你的情况是这样的吗?如果是这样,请将其更改为sftpwp:www-data。请注意,我们将组设置为www-data,但我们也可以将www-data用户添加到该sftponly组并用作www-data:sftponly所有者。无论哪种情况,这都是允许对服务器的写入权限,用于媒体上传等。因此,您至少需要执行以下操作:

chmod g+w wordpress/wp-content

此外,我们可以应用setgid。当目录为 时setgid,其中创建的任何文件都会继承该目录的组,而不管创建该目录的用户的活动组是什么。因此,这可以保证添加到 Wordpress 文件夹的任何文件都保留www-data(或sftponly,如果您选择的话)组。请执行以下操作:

chmod g+s wordpress/wp-{content,includes}

我只包括这两个文件夹,因为上传的内容通常会影响它们。我注意到上传的媒体有www-data:www-data所有者,所以你可能想使用sftponly组所有者,然后执行setgid- 然后 sftp 用户也可以访问它们。

相关内容