vsftp
安装
yum install vsftpd创建虚拟用户
# 创建用户目录
mkdir /home/ftpuser
# 添加匿名用户
useradd -s /sbin/nologin ftpuser主配置文件
配置文件:/etc/vsftpd/vsftpd.conf
anonymous_enable=NO
write_enable=YES
chroot_local_user=YES
chroot_list_enable=NO
use_localtime=YES
local_enable=YES
allow_writeable_chroot=YES
xferlog_enable=YES
local_umask=022
pam_service_name=vsftpd
listen_port=21
idle_session_timeout=120
data_connection_timeout=120
guest_enable=YES
guest_username=ftpuser
user_config_dir=/etc/vsftpd/conf.d
virtual_use_local_privs=YES
chroot_list_file=/etc/vsftpd/chroot_list
accept_timeout=60
connect_timeout=60
dirmessage_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=NO
listen_ipv6=YES
userlist_enable=YES
tcp_wrappers=YES
pasv_min_port=49000
pasv_max_port=50000            # 服务器安全组或防火墙需要对外开通TCP出口虚拟账号
配置文件
# 创建子用户根目录,并赋予ftp用户ftp属组
mkdir -p /home/wwwroot/user1 && chown -R ftpuser:ftp /home/wwwroot/user1
# 创建自配置文件目录
mkdir /etc/vsftpd/vuser
touch /etc/vsftpd/vuser/user1
vim /etc/vsftpd/vuser/user1local_root=/home/wwwroot/user1
write_enable=YES
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES建立虚拟账号数据库文件
# 一行账号
# 一行密码
# 一行账号
# 一行密码
# ... 
vim /etc/vsftpd/chroot_list.txt
user1
pass1把生成命令文件写到脚本,方便下次添加用户
#!/bin/sh
db_load -T -t hash -f /etc/vsftpd/vuser.txt /etc/vsftpd/chroot_list.db
chmod 600 /etc/vsftpd/chroot_list.db建立支持虚拟用户的PAM认证文件
配置文件:/etc/pam.d/vsftpd
#%PAM-1.0
# session    optional   pam_keyinit.so    force revoke
# auth       required   pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed
# auth       required   pam_shells.so
# auth       include    password-auth
# account    include    password-auth
# session    required   pam_loginuid.so
# session    include    password-auth
auth         required        pam_userdb.so   db=/etc/vsftpd/chroot_list
account    required        pam_userdb.so   db=/etc/vsftpd/chroot_list开放端口
服务器安全组或防火墙需要对外开通 80、[49000-50000]的端口