vsftp的三种用户详解
vsfp上有三种用户类型:
annoymous 匿名用户
local_user 本地用户
virtual_user 虚拟用户
1、使用匿名用户
不需要认证
主配置文件中配置:anonymous_enable=YES
2、使用本地用户
本地用户,就是linux上的系统用户,满足下面两点就可以使用。
1、用户的bash是/bin/bash
2、主配置文件中配置:local_enable=YES
3、使用虚拟用户
为什么要使用虚拟用户呢?
如果ftp是提供给公司100多号员工的,岂不是要给每个用户都新建一个系统用户?
这100多个系统用户,还都可以登陆到服务器,对服务器安装增加隐患。
创建虚拟用户的账号、密码文件,用于下一步生成认证数据库文件。
cat virtual_user.list
ftpcitc
112233
生成数据库
db_load -T -t hash -f /etc/vsftpd/virtual_user.list /etc/vsftpd/virtual_user.db
修改权限
chmod 700 /etc/vsftpd/virtual_user.db
增加用户
cat virtual_user.list
ftpcitc
112233
vuser
112233
安装 Berkeley DB 工具
sudo apt-get install db-util -y
增加用户后要重新生成数据库
db_load -T -t hash -f /etc/vsftpd/virtual_user.list /etc/vsftpd/virtual_user.db
配置用户认证
cat /etc/pam.d/vsftpd
auth required pam_userdb.so db=/etc/vsftpd/virtual_user
account required pam_userdb.so db=/etc/vsftpd/virtual_user
配置虚拟用户映射
ps:1、所有的虚拟用户都要映射到一个本地系统用户
2、这个本地系统用户,不要有登陆服务器的权限,不要配置密码,只做虚拟用户的映射。
[root@hdp01 vsftpd]# useradd -s /sbin/nologin ftpuser
修配主配置文件
[root@hdp01 vsftpd]# grep ^[a-zA-Z] vsftpd.conf
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
pam_service_name=vsftpd
guest_enable=YES
guest_username=ftpuser
user_config_dir=/etc/vsftpd/vsftpd_user_conf
virtual_use_local_privs=YES
创建虚拟用户的配置目录、配置文件
ps: 配置文件要和虚拟用户的名字一致
mkdir -p /etc/vsftpd/vsftpd_user_conf
[root@hdp01 virtual_user_dir]# cd /etc/vsftpd/virtual_user_dir
[root@hdp01 virtual_user_dir]# cat ftpcitc
local_root=/data/ftp/ftpcitc
write_enable=YES
non_upload_enable=YES
anon_mkdir_write_enable-YES
anon_other_write_enable=YES
You have new mail in /var/spool/mail/root
[root@hdp01 virtual_user_dir]# cat vuser
local_root=/data/ftp/vuser
write_enable=YES
non_upload_enable=YES
anon_mkdir_write_enable-YES
anon_other_write_enable=YES
创建虚拟用户的家目录
ps:要把虚拟用户家目录的属主属组给,代理用户ftpuser
mkdir -p /data/ftp/vuser
mkdir -p /data/ftp/ftpcitc
chown ftpuser:ftpuser /data/ftp/vuser /data/ftp/ftpcitc
配置完成,重启vsftp,测试虚拟用户。