您的位置:首页 > 编程语言 > PHP开发

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

2016-10-09 11:09 645 查看

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吧
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  vsftp ubuntu