Ubuntu中vsftp配置(三)-- 解决Ubuntu下vsftp不能上传文件

Ubuntu中vsftp配置(三)-- 解决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是不允许没有限制的,这导致了上述错误的发生。也就是说我这里的权限给的太宽了。


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


2. 主要修改配置文件即可

$ 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吧

你可能感兴趣的:(Linux)