# setsebool -P ftpd_full_access=on

FTP连接时报错如下:

500 OOPS: vsftpd: refusing to run with writable root inside chroot()  

解决方法:

chroot_local_user=YES ---锁定用户登录ftp后,只能到自己的家目录下,不能随便切换到其它目录。但是普通系统用户默认是可以在自己的家目录里写文件的,vsftp出于安全性要求,
如果锁定了用户的ftp登录目录,则所在目录不能有写权限。

方法1、 /etc/vsftpd/vsftpd.conf配置文件增加如下一行

local_root=/data/ftp  //系统用户登录后进入到该目录,注意该目录对其它用户同样不能有写的权限。(连写入的权限都没有,这个方法也不靠谱)

如果有写权限,则执行chroot a-w /var/ftp -R 取消写入权限。

方法2、简单粗暴的方法

不要设置local_root参数,取消用户往自己目录写权限: chmod a-w /home/username,但是用户登录操作系统后会影响用户使用,自己目录写的权限都没有。--不可行。

方法3、/etc/vsftpd/vsftpd.conf配置文件增加如下一行

allow_writeable_chroot=YES   --可行。ftp目录必须要有写权限。

方法4、添加例外

/etc/vsftpd/chroot_list 这个配置文件中加入用户名

修改完配置文件事要重启vsftpd服务。

==============

听起来有点绕,按下面的配置就没问题了:

#chmod o-w /data/ftp

vi /etc/vsftpd/vsftpd.conf 修改下面三行。

chroot_local_user=YES --锁定ftp用户目录。不能随便切换到其它目录。
local_root=/data/ftp ---指定用户登录后的目录。或者不指定也行,系统用户登录ftp后,直接到用户自己的家目录。
allow_writeable_chroot=yes
如果要添加例外,即允许某个用户可以切换到其它目录,则添加下面两行参数,否则可以不用配置。
chroot_list_enable= YES --这个是启用用户列表,对应下一句的chroot_list文件。
chroot_list_file=/etc/vsftpd/chrot_list ---在这个文件中的用户则不受限制,可以切换到其它目录。这个文件需要手动创建。

这样,FTP用户登录后,只能在指定目录下进行读写操作,不能随便切换到其它目录。

============

参考:


The problem is that your users root directory is writable, which isn’t allowed when using chroot restrictions in the new update.

To fix this you must either remove write permissions on the users root directory with the following command, replacing the directory with your users root:

chmod a-w /home/user

Or you can work around this security check by adding either of the two below into your configuration file.

For the standard vsFTPd build (vsftpd):

allow_writeable_chroot=YES

For the extended vsFTPd build (vsftpd-ext):

allow_writable_chroot=YES

Removing the write permission on the root isn’t a perfect solution as doing this can cause a few problems with things that need to write to the root directory, such as the bash history file or some graphical environments.

https://www.garron.me/en/bits/500-oops-vsftpd-refusing-to-run-with-writable-root-inside-chroot-solved.html

http://www.liquidweb.com/kb/error-500-oops-vsftpd-refusing-to-run-with-writable-root-inside-chroot-solved/

=========================

另外一种可行的配置方法:

(这个方法总比你让所有用户都有写入权限o+w要安全得多)

配置如下:

chroot_local_user=YES
local_root=/data/ftp
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list

使用root 帐号执行如下命令:

# setfacl -m u:用户名:rwx  /data/ftp   ---使用该命令来设置指定用户的acl权限,允许指定的用户可写,其它用户不可写。

#chmod o-w /data/ftp  --取消对比所有用户可写。

#systemctl restart vsftpd

500 OOPS: vsftpd: refusing to run with writable root inside chroot()解决方法的更多相关文章

  1. vsftpd:500 OOPS: vsftpd: refusing to run with writable root inside chroot ()错误的解决方法

    ---恢复内容开始--- 最近在安装了vsftpd后 添加了虚拟账户后 新建用户 为新用户创立独立的工作目录 因为虚拟用户在工作目录需要上传文件 所以必须拥有此目录的W权限,但每当给此目录加上W权限后 ...

  2. 500 OOPS: vsftpd: refusing to run with writable root inside chroot()

    Ubuntu 12.04 64bit系统下安装的vsftpd,在登陆时提示500 OOPS: vsftpd: refusing to run with writable root inside chr ...

  3. 【转】vsftp 遇到错误 500 OOPS: vsftpd: refusing to run with writable root inside chroot()--不错

    原文网址:http://linux.it.net.cn/e/server/ftp/2015/0227/13554.html 当我们限定了用户不能跳出其主目录之后,使用该用户登录FTP时往往会遇到这个错 ...

  4. 500 OOPS: vsftpd: refusing to run with writable root inside chroot () 不能上传文件和文件夹

    500 OOPS: vsftpd: refusing to run with writable root inside chroot () 问题的是因为用户的根目录可写,并且使用了chroot限制,而 ...

  5. vsftpd.service: Main process exited, code=exited, status=2/INVALIDARGUMENT和vsftpd:500 OOPS: vsftpd: refusing to run with writable root inside chroot ()错误的解决方法

    今天在配置VSFTPD过程中遇到两个错误 1是启动失败,通过 SERVICE VSFTPD STATUS 查看到报错 May 02 16:06:58 debian systemd[1]: Starti ...

  6. 响应: 500 OOPS: vsftpd: refusing to run with writable root inside chroot()

    原vsftpd服务器的系统从centos6.8升级到centos7.2.vsftpd使用yum方式安装,用户采用系统用户登录.由于系统升级到centos7,yum安装的vsftpd版本改变.因此按ce ...

  7. ubuntu 14.04 下FTP服务器的搭建--锁定用户目录,解决vsftpd: refusing to run with writable root inside chroot()

    FTP服务器的搭建,我要实现的需求是: 不允许匿名访问,因为我的机器不想让谁都能登录上来,随便获取文件, 需要锁定一个目录,因为在家里,我需要给媳妇下载一些电影 韩剧之类的东西,媳妇会来我机器下载,但 ...

  8. 500 OOPS: vsftpd: refusing to run with writable anonymous root

    500 OOPS: vsftpd: refusing to run with writable anonymous root 以下就是解决的三个步骤,其中第一步,是我一直没有搞明白的,也是其中的重点: ...

  9. 解决vsftpd的refusing to run with writable root inside chroot错误

    参考 http://www.cnblogs.com/CSGrandeur/p/3754126.html 在Ubuntu下用 vsftpd 配置FTP服务器,配置 “ sudo chmod a-w /h ...

随机推荐

  1. 《C和指针》章节后编程练习解答参考——6.2

    <C和指针>——6.2 题目: 编写一个函数,删除源字符串中含有的子字符串部分. 函数原型: int del_substr(char *str, char const *substr); ...

  2. day2练习题

    #import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { @autoreleasepool { ...

  3. Java中的多线程总结(转)

      1.多线程概述 当一个程序运行时,内部可能包含了多个顺序执行流,每个顺序执行流就是一个线程.主要以下几个优点: 线程之间很容易实现共享内存 创建线程代价较小 Java语言内置多线程功能支持 2.线 ...

  4. Squares<哈希>

    Description A square is a 4-sided polygon whose sides have equal length and adjacent sides form 90-d ...

  5. delphi编程里的bool跟boolean类型有什么区别

    bool是LongBool类型. Delphi中定义了四种布尔类型:Boolean,ByteBool,WordBool和LongBool.后面三种布尔类型是为了与其他语言兼容而引入的,一般情况下建议使 ...

  6. 给java中的System.getProperty添加新的key value对

    由于系统被格了,所以,现在的java项目配置不对,代码里面的配置类调用了一个System.getProperty("env")发现找不到该变量的值,以前一直能找到的. 其实就是以前 ...

  7. HDU4003 Find Metal Mineral

    看别人思路的 树形分组背包. 题意:给出结点数n,起点s,机器人数k,然后n-1行给出相互连接的两个点,还有这条路线的价值,要求最小花费 思路:这是我从别人博客里找到的解释,因为很详细就引用了 dp[ ...

  8. Implement Trie (Prefix Tree) ——LeetCode

    Implement a trie with insert, search, and startsWith methods. Note:You may assume that all inputs ar ...

  9. C数组的相关知识

    数组的定义:具有相同数据类型的集合.在内存中开辟连续的存贮空间,从上往下,依次存储 补充:内存是以字节位单位的存储空间,内存中的每一个字节都唯一对应一个编号.这个编号就是地址.只要是存在内存中的数据都 ...

  10. 行为树(Behavior Tree)实践(1)– 基本概念

    原文地址:http://www.360doc.com/content/15/0107/11/15099545_438831036.shtml 自从开博以来,每天都会关心一下博客的访问情况,看到一些朋友 ...