前言

同事yum安装了vsftp,如果配置用户名和密码,抽空记录下

为了调试顺利,关闭selinux,防火墙iptables

一.yum安装vsftp

  1. # yum -y install vsftpd

二.启动服务

  1. centos7
  2. # systemctl start vsftpd.service

三.配置文件

  1. /etc/vsftpd/vsftpd.conf

四.配置部署

1、备份配置文件,修改配置文件

  1. # cd /etc/vsftpd/
  2. # cp vsftpd.conf vsftpd.conf.bak
  3. # echo '' > vsftpd.conf
  4. # vim /etc/vsftpd/vsftpd.conf

2、配置文件内容(虚拟用户必须关闭虚拟用户anonymous_enable=NO)

  1. anonymous_enable=NO
  2. write_enable=YES
  3. chroot_local_user=YES
  4. chroot_list_enable=YES
  5. use_localtime=YES
  6. local_enable=YES
  7. allow_writeable_chroot=YES
  8. xferlog_enable=YES
  9. local_umask=022
  10. pam_service_name=vsftpd
  11. use_localtime=YES
  12. listen_port=21
  13. chroot_local_user=YES
  14. idle_session_timeout=120
  15. data_connection_timeout=120
  16. guest_enable=YES
  17. guest_username=ftpuser
  18. user_config_dir=/etc/vsftpd/vuser_conf
  19. virtual_use_local_privs=YES
  20. pasv_min_port=10060
  21. pasv_max_port=10090
  22. accept_timeout=5
  23. connect_timeout=1

3、创建宿主用户

  • 创建用户 ftpuser 指定 /home/vsftpd 目录
  1. # useradd -g root -M -d /home/vsftpd -s /sbin/nologin ftpuser
  • 设置用户 ftpuser 的密码
  1. # passwd ftpuser
  • 把 /home/vsftpd 的所有权给ftpuser.root
  1. # mkdir -p /home/vsftpd
  2. # chown -R ftpuser.root /home/vsftpd

4、建立虚拟用户文件

  1. # touch /etc/vsftpd/vuser_passwd
  2. # 编辑虚拟用户名单文件:(
  3. # 第一行账号,第二行密码,注意:不能使用root做用户名,系统保留)
  4. # vi /etc/vsftpd/vuser_passwd
  5. # 编辑内容,下面是 vuser_passwd 内容
  6. ftp1
  7. 12345678
  8. ftp2
  9. 12345678

保存退出

5、生成虚拟用户数据文件

  1. # db_load -T -t hash -f /etc/vsftpd/vuser_passwd /etc/vsftpd/vuser_passwd.db
  2. # chmod 600 /etc/vsftpd/vuser_passwd.db

6、创建用户配置

  1. # mkdir /etc/vsftpd/vuser_conf # 建立虚拟用户个人vsftp的配置文件
  2. # cd /etc/vsftpd/vuser_conf # 进入目录
  3. # touch ftp1 ftp2

每个文件(ftp1和ftp2写入如下内容,local_root=/home/vsftpd/ftp1#这里写入这个用户的实际存储路劲)

  1. local_root=/home/vsftpd/ftp1
  2. write_enable=YES
  3. anon_world_readable_only=NO
  4. anon_upload_enable=YES
  5. anon_mkdir_write_enable=YES
  6. anon_other_write_enable=YES

7、创建用户目录

  1. # mkdir -p /home/vsftpd/ftp1
  2. # mkdir -p /home/vsftpd/ftp2

8、配置登录用户

  1. # vi /etc/vsftpd/chroot_list
  2. ftp1
  3. ftp2

9、服务启动、停止、状态命令

  1. # systemctl restart vsftpd.service # 重启服务
  2. # systemctl start vsftpd.service # 启动服务
  3. # systemctl status vsftpd.service # 服务状态查看

10、生成虚拟用户的PAM文件

  1. # cd /etc/pam.d/
  2. 备份vsftpd文件
  3. # cp vsftpd vsftpd.bak

修改vsftpd文件内容(加入第二和第三行,下面的都全部注释,注意下面是64位操作系统,如果是32位的话lib64需要改成lib)

  1. #%PAM-1.0
  2. auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser_passwd
  3. account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser_passwd
  4. #session optional pam_keyinit.so force revoke
  5. #auth required pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed
  6. #auth required pam_shells.so
  7. #auth include password-auth
  8. #account include password-auth
  9. #session required pam_loginuid.so
  10. #session include password-auth

Centos6 安装遇到的问题

  • Centos6 启动vsftp服务命令
  1. # service vsftpd restart
  • Centos6 启动报错500 OOPS: vsftpd: not configured for standalone, must be started from inetd
  1. # service vsftpd restart
  2. Shutting down vsftpd: [FAILED]
  3. Starting vsftpd for vsftpd: 500 OOPS: unrecognised variable in config file: allow_writeable_chroot
  4. [FAILED]

查看版本

  1. # vsftpd -version
  2. vsftpd: version 2.2.2

不支持,需要在配置文件/etc/vsftpd/vsftpd.conf屏蔽这个配置项

  • Centos6 启动报错500 OOPS: vsftpd: not configured for standalone, must be started from inetd
  1. # service vsftpd restart
  2. Shutting down vsftpd: [FAILED]
  3. Starting vsftpd for vsftpd: 500 OOPS: vsftpd: not configured for standalone, must be started from inetd
  4. [FAILED]

需要在配置文件/etc/vsftpd/vsftpd.conf里新增

  1. listen=yes