搭建过程
1 安装环境
yum install vsftp* pam* db4* -y
cat /etc/vsftpd/vsftpd.conf
anonymous_enable=NO
chroot_list_enable=YES
xferlog_file=/var/log/vsftpd.log
ascii_upload_enable=YES
ascii_download_enable=YES
nopriv_user=vsftpd
pam_service_name=vsftpd
local_enable=YES
anon_umask=022
write_enable=YES
guest_enable=YES
guest_username=vsftpd
virtual_use_local_privs=YES
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=YES
userlist_enable=YES
tcp_wrappers=YES
user_config_dir=/etc/vsftpd/vuser_conf
chroot_local_user=NO
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot
2 创建秘钥文档
cd /etc/vsftpd/
cat vuser_passwd.txt
user
123456
3 生成数据库文件
db_load -T -t hash -f /etc/vsftpd/vuser_passwd.txt /etc/vsftpd/vuser_passwd.db
chmod 600 vuser_passwd.db
4 修改vsftp的pam认证配置文件
[root@localhost vsftpd]# cat /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 system-auth
#account include system-auth
#session include system-auth
#session required pam_loginuid.so
auth required pam_userdb.so db=/etc/vsftpd/vuser_passwd
account required pam_userdb.so db=/etc/vsftpd/vuser_passwd
5 创建虚拟用户配置文件
mkdir /etc/vsftpd/vuser_conf 根据vsftpd.conf下user_config_dir=/etc/vsftpd/vuser_conf创建
vim user
write_enable=YES
anon_umask=022
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
local_root=/opt/var/ftp
mkdir /opt/var/ftp -pv
6 vi chroot
user
7/etc/init.d/vsftpd restart
useradd vsftpd -s /sbin/nologin 根据配置文件里 guest_username=vsftpd 创建
注意所有的用户文件必须要给600权限
如果添加一个用户的话流程如下
在/etc/vsftpd/vuser_passwd.txt文件下追加用户名和追加密码
db_load -T -t hash -f /etc/vsftpd/vuser_passwd.txt/etc/vsftpd/vuser_passwd.db
cd /opt/var/ftp/
mkdir linyi
cd linyi
mkdir ftp
vi /etc/vsftpd/vuser_conf/linyi
write_enable=YES
anon_umask=022
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
local_root=/opt/var/ftp/linyi
vim /etc/vsftpd/chroot 添加用户名
mount --bind 要挂载的目录 ftp用户的目录
service vsftpd restart