介绍一种通过一用户列表式文件实现FTP用户管理,虚用户模式
一、建立虚用户
[root@localhost pub]# useradd -d /www/ftp -s /sbin/nologin vftpuser
[root@localhost pub]# chown vftpuser:vftpuser /www/ftp -R
[root@localhost pub]# cd /www/
[root@localhost www]# ls -al
总用量 0
drwxr-xr-x. 3 root root 17 10月 6 01:41 .
dr-xr-xr-x. 18 root root 235 10月 6 01:40 ..
drwxr-xr-x. 3 vftpuser vftpuser 17 10月 6 01:41 ftp
[root@localhost www]# cd ftp
[root@localhost ftp]# mkdir showmuweb
[root@localhost ftp]# mkdir showmuftp
[root@localhost ftp]# mkdir showmuguest
[root@localhost /]# yum install -y tree
[root@localhost /]# tree /www
/www
└── ftp
├── pub
│?? └── upload
├── showmuftp
│?? └── test.txt
└── showmuweb
二、创建用户列表
[root@localhost www]# vim /etc/vsftpd/vftpusers.txt
showmuftp
111111
showmuweb
222222
showmuguest
333333
[root@localhost www]# cd /etc/vsftpd
[root@localhost vsftpd]# ls
ftpusers vftpusers.txt vsftpd.conf_2017-10-05 vsftpd.conf.rpmsave
user_list vsftpd.conf vsftpd_conf_migrate.sh
[root@localhost vsftpd]# db_load -T -t hash -f /etc/vsftpd/vftpusers.txt /etc/vsftpd/vftpusers.db
[root@localhost vsftpd]# ls
ftpusers vftpusers.db vsftpd.conf vsftpd_conf_migrate.sh
user_list vftpusers.txt vsftpd.conf_2017-10-05 vsftpd.conf.rpmsave
三、修改验证方式
[root@localhost vsftpd]# vim /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
auth required pam_userdb.so db=/etc/vsftpd/vftpusers
account required pam_userdb.so db=/etc/vsftpd/vftpusers
session required pam_loginuid.so
session include password-auth
四、修改vsftpd.conf设置
[root@localhost vsftpd]# vim /etc/vsftpd/vsftpd.conf
#结果如下
[root@localhost vsftpd]# grep -Ev '(^#\s.*|^#|^$)' vsftpd.conf
anonymous_enable=YES
anon_mkdir_write_enable=YES
anon_root=/www/ftp/pub
local_root=/www/ftp/pub
local_enable=YES
write_enable=YES
local_umask=022
anon_upload_enable=YES
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=NO
listen_ipv6=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
guest_enable=YES
guest_username=vftpuser
user_config_dir=/etc/vsftpd/vftpuser_conf
allow_writeable_chroot=YES
五、创建每个用户个性权限
root@localhost vsftpd]# mkdir vftpuser_conf
[root@localhost showmuftp]# vim /etc/vsftpd/vftpuser_conf/showmuweb
local_root=/www/ftp/showmuweb
root@localhost vsftpd]# mkdir vftpuser_conf
[root@localhost showmuftp]# vim /etc/vsftpd/vftpuser_conf/showmuftp
local_root=/www/ftp/showmuftp
[root@localhost showmuftp]# vim /etc/vsftpd/vftpuser_conf/showmuguest
local_root=/www/ftp/showmuguest
上面五步就能完成,重启vsftpd服务。
六、增加删减用户
重第二步,并通过第五步修改权限。