0

0

vsftpd 报 500 OOPS: refusing to run with writable root inside chroot 的写法

冷漠man

冷漠man

发布时间:2026-01-21 18:57:53

|

387人浏览过

|

来源于php中文网

原创

vsftpd报错500 OOPS: refusing to run with writable root inside chroot,是因2.3.5+版本默认禁止chroot用户根目录可写;推荐方案是设根目录root所有、755权限,并在其下建用户可写子目录;禁用allow_writeable_chroot以保安全。

vsftpd 报 500 oops: refusing to run with writable root inside chroot 的写法

vsftpd 报错 500 OOPS: refusing to run with writable root inside chroot,是因为从 vsftpd 2.3.5 版本起,默认禁止 chroot 用户的根目录具有写权限(出于安全考虑)。解决方法不是降级或关安全机制,而是按规范配置目录权限。

确保 chroot 用户根目录不可写(推荐做法)

这是最安全、官方推荐的方式:用户登录后的根目录(如 /home/username)本身设为 仅 root 可写,但在其下建一个子目录供用户上传文件。

  • 执行:sudo chown root:root /home/username
  • 执行:sudo chmod 755 /home/username(不能是 777 或 775)
  • 再创建可写子目录:sudo mkdir /home/username/upload
  • 赋权给用户:sudo chown username:username /home/username/upload

启用 allow_writeable_chroot(不推荐,仅测试环境用)

若确实需要用户根目录可写(例如旧业务强依赖),可在 vsftpd.conf 中显式允许,但必须配合 chroot_local_user=YES 使用:

Viggle AI
Viggle AI

Viggle AI是一个AI驱动的3D动画生成平台,可以帮助用户创建可控角色的3D动画视频。

下载
  • 编辑配置:sudo nano /etc/vsftpd.conf
  • 添加或修改两行:
    chroot_local_user=YES
    allow_writeable_chroot=YES
  • 重启服务:sudo systemctl restart vsftpd
注意:此选项会降低安全性,vsftpd 官方文档明确标注“not recommended”。

检查 SELinux 或 AppArmor 干扰(CentOS/RHEL 或 Ubuntu)

即使权限设置正确,SELinux 可能阻止 chroot 行为:

  • 临时测试是否是它导致:sudo setenforce 0(运行后重试 FTP 登录)
  • 若是,需恢复并打标签:sudo setsebool -P ftp_home_dir on
  • Ubuntu 用户检查 AppArmor 是否限制 vsftpd:sudo aa-status | grep vsftpd,必要时调整配置

确认用户属于 chroot 列表且配置生效

确保你的用户被纳入 chroot 控制范围,且配置未被其他规则覆盖:

  • 若使用 chroot_list_enable=YES,需在 /etc/vsftpd.chroot_list 中添加用户名(每行一个)
  • 若用 chroot_local_user=YES,则所有本地用户默认 chroot,除非出现在 chroot_list 中且 chroot_list_enable=YES + chroot_list_file=/etc/vsftpd.chroot_list
  • 改完配置务必重启服务,且检查日志:sudo tail -f /var/log/vsftpd.logjournalctl -u vsftpd -n 20

相关专题

更多
常见的linux系统有哪些
常见的linux系统有哪些

linux系统有Ubuntu、Fedora、CentOS、Debian、openSUSE、Arch Linux、Gentoo、Slackware、Linux Mint、Kali Linux。更多关于linux系统的文章详情请阅读本专题下面的文章。php中文网欢迎大家前来学习。

808

2023.10.27

ubunt上安装和配置vnc
ubunt上安装和配置vnc

安装方法:安装VNC服务器、启动VNC服务器、设置VNC密码等等。想了解更多ubuntu的相关内容,可以阅读本专题下面的文章。

412

2023.12.28

ubuntu启动黑屏解决方法
ubuntu启动黑屏解决方法

ubuntu启动黑屏解决方法:检查是否是电源问题、检查内存是否接触不良、检查显卡问题等。想了解更多ubuntu的相关内容,可以阅读本专题下面的文章。

657

2023.12.28

为什么ubuntu有网络连接但不能上网
为什么ubuntu有网络连接但不能上网

ubuntu有网络连接但不能上网的原因:1、dns配置问题;2、代理服务器设置问题;3、网络防火墙设置问题;4、路由器或调制解调器设置问题;5、网络驱动程序问题;6、网络配置文件问题;7、其他问题。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

452

2024.09.05

ubuntu安装golang
ubuntu安装golang

本专题整合了ubuntu安装golang所有方法汇总,阅读下面的文章了解更多详细操作。

106

2025.12.13

centos
centos

PHP中文网为大家提供centos相关信息,CentOS(Community Enterprise Operating System,中文意思是社区企业操作系统)是Linux发行版之一,是免费的、开源的、可以重新分发的开源操作系统,PHP中文网提供centos相关文章,以及安装教程。

431

2023.06.16

常见的linux系统有哪些
常见的linux系统有哪些

linux系统有Ubuntu、Fedora、CentOS、Debian、openSUSE、Arch Linux、Gentoo、Slackware、Linux Mint、Kali Linux。更多关于linux系统的文章详情请阅读本专题下面的文章。php中文网欢迎大家前来学习。

808

2023.10.27

Java编译相关教程合集
Java编译相关教程合集

本专题整合了Java编译相关教程,阅读专题下面的文章了解更多详细内容。

9

2026.01.21

C++多线程相关合集
C++多线程相关合集

本专题整合了C++多线程相关教程,阅读专题下面的的文章了解更多详细内容。

3

2026.01.21

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PostgreSQL 教程
PostgreSQL 教程

共48课时 | 7.5万人学习

Git 教程
Git 教程

共21课时 | 2.9万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号