Linux下vsftpd的配置问题

1、添加FTP用户william
    sudo useradd -d /var/www -s /sbin/nologin william

2、设置用户密码
    passwd william

如果出现passwd: authentication token manipulation error,错误时,执行sudo /usr/sbin/pwconv

 

3、编辑vsftpd.conf文件
    vi /etc/vsftpd/vsftpd.conf

4、设置如下内容   

    anonymous_enable=NO    #禁止匿名登录

    local_enable=YES     #本地用户登录
    write_enable=YES     #可写入
    local_umask=022
    dirmessage_enable=YES
    chroot_local_user=YES    #所有用户都被限制在其主目录下
    chroot_list_enable=YES   #chroot_list里的用户不受锁定目录限制
    chroot_list_file=/etc/vsftpd.chroot_list    #
    listen=YES
    pam_service_name=vsftpd
    userlist_file=/etc/vsftpd.user_list
    userlist_enable=YES
    userlist_deny=NO
    allow_writeable_chroot=YES

 

5、建立/etc/vsftpd.chroot_list
加入账户名,这里的账户可以将目录切换到其主目录的上层目录

6、建立 /etc/vsftpd.user_list
    加入账户名,这里的账户允许登录,不在chroot_list里的账户无法切换到上层目录

7、vim /etc/ftpusers

     这里的用户不允许连接FTP,确保你的FTP账户不在这里

8、vim /etc/shells

     由于在这个文件(/etc/pam.d/vsftpd),配置了auth required pam_shells.so,意思就是仅允许用户的shell为 /etc/shells文件内的shell命令时,才能够成功

    所以我们将/sbin/nologin加入到/etc/shells中,这样避免了530 Login Incorrect

    第2中方法就是编辑/etc/pam.d/vsftpd,将auth required pam_shells.so修改为->auth required pam_nologin.so 

9、在防火墙中加入21端口例外

10、启动重启服务
   service vsftpd restart

11、连接FTP


vsftpd常见错误:
错误1:PASV failed, trying PORT
答:检查端口是否开启,或者port_enable是否开启

错误2:connection refuse
答:检查pasv_address是否正确

错误3:500 OOPS: cannot change directory
答:setsebool ftpd_disable_trans 1

错误4:532 OOPS
答:访问文件需要账户登录

问:如何修改FTP用户的目录
答:usermod -d /var/www/newfolder william

问:如何检查端口是否开启
答:netstat -an | grep 21

问:530 login incorrect
答:参见第8步

问:无法上传文件
答:修改目录权限sudo chown -R william /var/www


 

posted @ 2016-05-09 11:44  lovemx  阅读(425)  评论(0)    收藏  举报