CentOS7 vsftp 配置虚拟用户
1、安装
yum install vsftpd db4-utils
2、备份配置文件
cd /etc/vsftpd/
cp vsftpd.conf vsftpd.src.conf
3、修改配置文件如下
vim vsftpd.conf
listen=YES anonymous_enable=NO dirmessage_enable=YES xferlog_enable=YES xferlog_file=/var/log/vsftpd.log xferlog_std_format=YES chroot_list_enable=YES chroot_list_file=/etc/vsftpd/chroot_list chroot_local_user=YES guest_enable=yes guest_username=vsftpd user_config_dir=/etc/vsftpd/vsftpd_user_conf pam_service_name=vsftpd local_enable=YES pasv_enable=YES pasv_min_port=5090 pasv_max_port=6000
4、创建虚拟用户账户文件
vim /etc/vsftpd/userfile
user1 123456 user2 123456
5、根据虚拟用户账户文件生成虚拟用户配置文件 vsftpd_login.db
db_load -T -t hash -f /etc/vsftpd/userfile /etc/vsftpd/vsftpd_login.db
chmod 600 /etc/vsftpd/vsftpd_login.db
6、配置虚拟用户登录认证,注释掉全部内容,新增下面的两行,最终效果如下:
vim /etc/pam.d/vsftpd
#%PAM-1.0 auth sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login account sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login #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
7、限制虚拟用户切换主目录
vim /etc/vsftpd/chroot_list
user1
user2
8、创建配置文件目录
mkdir /etc/vsftpd/vsftpd_user_conf
9、按用户名为每个用户写配置内容
仅下载权限
vim /etc/vsftpd/vsftpd_user_conf/user1
anon_world_readable_only=NO
local_root=/home/vsftpd/user1
上传、下载权限,不能删除、不能重命名
anon_world_readable_only=NO write_enable=YES anon_upload_enable=YES anon_mkdir_write_enable=YES local_root=/home/vsftpd/user1
全部权限:可上传、下载、删除和改名
write_enable=YES anon_world_readable_only=NO anon_upload_enable=YES anon_mkdir_write_enable=YES anon_other_write_enable=YES local_root=/home/vsftpd/user1
10、创建vsftpd用户(与vsftpd.conf 文件中的:guest_username=vsftpd 一致)
useradd -d /home/vsftpd -s /sbin/nologin vsftpd chown -R vsftpd:vsftpd /home/vsftpd
11、重启vsftpd服务
systemctl vsftpd restart.service
注意:建议使用filezilla等工具进行登录,如果出现问题,有明确的问题提示。