如何使用 vsftpd 设置可以访问 Web 根目录的 FTP 用户?
我目前正在建立一个网站,并且正在尝试了解有关 Web 服务器的更多信息。我以前使用过共享主机提供商,但这次我想用 VPS 从头开始设置服务器。我已经安装了 LAMP 堆栈并安装了 Wordpress。到目前为止一切正常,除了自动更新 Wordpress,因为它要求 FTP 访问。
因此我vsftpd
按照本教程安装。这也相应地起作用。
问题是在教程中 FTP 用户有它的专用文件目录 ( /home/ftp_user/ftp/files
),但我需要让用户访问 web 根目录 ( /var/www/html/site
) 以便 Wordpress 执行更新。
我试着local_root
指出/var/www/html
我尝试设置这样的符号链接
ln -s /var/www/html /home/ftp_user/ftp/files
但两种方式都行不通。当我尝试连接时,它说
vsftpd: refusing to run with writable root inside chroot()
实现这一目标的正确方法是什么?还是根本不使用该/var/www/html
位置会更好?
FTP 不遵循符号链接是有充分理由的。相反,您应该使用绑定安装。
试试看是否有效。
要使其永久化,请将其添加到
/etc/fstab
:请注意,与符号链接不同,如果您删除
www
-folder,您也将删除其中的所有文件/var/www/html
。RoVo描述的方法对我有用。但我认为我一开始有两个问题(chroot 和符号链接)。
通过添加
allow_writeable_chroot=YES
到文件中,它现在也可以vsftpd.conf
指向local_root
/var/www/html
我不确定添加
allow_writeable_chroot=YES
设置是否安全,但在多个站点/博客文章中都提到了它,例如为了完成这项
local_root
工作,我将此行添加到/ect/vsftpd.conf
:并在包含以下内容的文件夹中创建了一个具有 FTP 用户名称的文件
/etc/vsftpd/vsftpd-user-conf/
: