解决Ubuntu下vsftp不能上传文件

     从开始用Ubuntu到现在有接近4个月的时间了,一直都在熟悉这个OS。从开始装ftp到现在,上传文件一直都有问题,也一直没有解决。今天实在是不想把硬盘拔了,用盒子拷贝了,索性把这个问题搞定。

       一直都觉得是配置的原因,今天终于解决了。vsftp的配置文件在/etc/vsftpd.conf  目录下。

       首先说说我上传出现的问题。

        1. 把一个log文件上传到/home/ftp下

              $ wput log  ftp://172.16.55.47

              Connecting to 172.16.55.47:21... connected!
              Logging in as anonymous ... Logged in!
              Send Failed (Could not create file.) Skipping this file
              FINISHED --10:52:18--

            在网上找了下资料,说是没有写权限,于是我就把ftp目录改成写权限了,即$ sudo chmod 777 /home/ftp, 然后继续上传

              $ wput log  ftp://172.16.55.47

                  Connecting to 172.16.55.47:21... connected!
                  Logging in as anonymous ... Error: Login-Sequence failed (OOPS: vsftpd: refusing to run with writable anonymous root)
                  Skipping all files from this account...
                  FINISHED --10:34:03--
                 Transmission of 1 file failed.

          这次报的错就是拒绝拥有写权限的匿名登录,具体原因为:对于vsftpd的根目录 /home/ftp 其权限为:drwxrwxrwx 即完全没有限制(或许是不小心执行了 chmod 777 /home/ftp);但vsftpd出于安全考虑对 /home/ftp是不允许没有限制的,这导致了上述错误的发生。也就是说我这里的权限给的太宽了。

          那现在就是不给权限,它说没写权限,给了写权限又说权限给的太多。那就说明,仅仅只改这些权限是没有用的吧。所以看看是不是配置有点问题。

         $ sudo vi /etc/vsftpd.conf

      添加后的选项 有:

        listen=YES

        anonymous_enable=YES

        local_enable=YES

        write_enable=YES

        anon_upload_enable=YES

        anon_mkdir_write_enable=YES

        dirmessage_enable=YES

        use_localtime=YES

        xferlog_enable=YES

        connect_from_port_20=YES

        chown_uploads=YES

        chown_username=whoever

        chroot_local_user=YES

        secure_chroot_dir=/var/run/vsftpd/empty

        pam_service_name=vsftpd

        rsa_cert_file=/etc/ssl/private/vsftpd.pem

        其中红色部分为添加的。

        接下来,

        $ cd /home/ftp
        $ sudo mkdir opendir
        $ sudo chmod 777 opendir/

        然后再把刚才的log文件上传就可以了,如:

        # wput  log  ftp://172.16.55.47/opendir/

        一定要注意的是,这里的opendir是一个目录,所以后面的/一定要记得带上,不然就会出错!

        如果是技术问题,那么就google吧         

阅读更多

没有更多推荐了,返回首页