红联Linux门户
Linux帮助

【求助】新版vsftp的chroot设置问题

发布时间:2012-05-26 10:46:26来源:红联作者:szfhx
一直用的vsftpd作为ftp服务器,最近升级了一下ubuntu系统,vsftpd版本升为 2.3.5-1 , 然后用原来的配置文件,结果发现登陆的时候出现问题:
500 OOPS: vsftpd: refusing to run with writable root inside chroot()
意思是,如果开启了chroot来控制用户路径,则用户不能再具有该用户根目录的写的权限。
解决办法1:
去掉该用户根目录的写的权限,再新建一目录,以后用新目录
#sudo chmod a-w /home/用户名
#sudo mkdir /home/用户名/新目录名
其实很不方便,用户登陆进去会发现必须要再进一层目录才能找到自己的文件

如果非要保证ftp用户根目录可写,
解决办法2:
在vsftpd.chroot_list上写进去我们不要限制的用户,其他用户则不让他们“漂移”。一个用户名一行
sudo vim /etc/vsftpd.chroot_list
但这样也有风险,这个ftp用户可以去浏览系统其它目录了,失去了chroot设置意义了。

有没有更好的办法,既能使用chroot功能,又能不去掉该用户根目录的写的权限?
文章评论

共有 6 条评论

  1. 657129880@qq.co 于 2013-04-21 17:59:15发表:

    谢谢分享!!!

  2. a228467053 于 2013-01-26 19:23:43发表:

    汗 慢慢学习吧 我真是个菜鸟

  3. li-0578 于 2012-05-27 22:00:26发表:

    试着修改 /etc/passwd 新建立一批用户对应的文件夹 然后在配置文件中把用户名和文件夹对应。

  4. 于 2012-05-27 12:50:48发表:

    没有哪位大侠知道吗?

  5. wonderful5115 于 2012-05-27 00:34:57发表:

    哗哗,这个不懂。飘过好了!!!

  6. szfhx 于 2012-05-26 11:14:13发表:

    下面是vsftpd.conf文件部分内容

    sudo vim /etc/vsftpd.conf
    #独立模式启动(默认不用改)
    listen=YES
    #不让匿名用户使用(默认,以前版本找到并修改为NO)
    anonymous_enable=NO
    #本地用户可用(默认,以前版本找到并去掉注释)
    local_enable=YES
    #可用写操作 (去掉注释)
    write_enable=YES
    #不想上传后的文件执行(找到并去掉注释)
    local_umask=022
    #不需要显示某目录下文件信息 (找到并注释)
    #dirmessage_enable=YES
    #本地所有帐户都只能在自家目录登录 (有两处这句话,去掉注释)
    chroot_local_user=yes
    #启动chroot列表(Change root) (去掉注释)
    chroot_list_enable=YES
    #指定列表位置(我这用的是默认地址) (去掉注释)
    chroot_list_file=/etc/vsftpd.chroot_list