云服务器 ECS Linux vsFTPd 报错 500 OOPS: vsftpd,云服务器 ECS Linux 系统使用 vsFTPd 搭建的 FTP 服务,客户端连接时系统提示: 500 OOPS: vsftpd: refusing to run with writable root inside chroot()
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
遇到 "500 OOPS: vsftpd: refusing to run with writable root inside chroot()" 这个错误,通常意味着 vsftpd 服务器配置不允许在 chroot 环境中使用可写入的根目录。这是出于安全考虑,避免 FTP 用户对系统造成潜在的破坏。
要解决这个问题,你可以按照以下步骤操作:
编辑 vsftpd 配置文件:
/etc/vsftpd/vsftpd.conf
。如果文件不存在或位置不同,请根据实际情况调整路径。修改配置:
# 禁止匿名登录
anonymous_enable=NO
# 启用本地用户登录
local_enable=YES
# 开启 chroot,限制用户在其家目录内
chroot_local_user=YES
# 确保用户的家目录是可读写的,但不包括 chroot 目录本身
allow_writeable_chroot=YES
注意:allow_writeable_chroot=YES
这一行配置可能会增加安全风险,因为它允许用户在其 chroot 目录下有写权限。在某些安全策略严格的环境中,这可能不是最佳实践。请根据你的具体需求和安全策略谨慎决定是否启用。
重启 vsftpd 服务:
systemctl
(适用于大多数现代 Linux 发行版):sudo systemctl restart vsftpd
service
(在较旧的系统中):sudo service vsftpd restart
测试连接:
如果问题仍然存在,建议检查 FTP 用户的家目录权限设置,确保它们正确且安全。同时,查看 vsftpd 的日志文件(通常位于 /var/log/vsftpd.log
),以获取更详细的错误信息,这有助于进一步诊断问题。