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
增加使用者後要重新生成資料庫
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,測試虛擬使用者。