vsftp配置虛擬用戶登錄
1 查看系統(tǒng)當(dāng)前服務(wù)狀態(tài)
service --status-all
2 停用當(dāng)前ftp服務(wù)以免端口占用
Pure-FTPd
3 安裝vsftpd
yum install vsftpd
4 默認(rèn)配置項(xiàng)說明
vim /etc/vsftpd/vsftpd.conf
#關(guān)閉匿名用戶訪問
anonymous_enable=NO
#允許用戶寫權(quán)限
allow_writeable_chroot=YES
#本地用戶鎖定在自己的主目錄中
chroot_local_user=YES
#不使用chroot_list_file指定的用戶列表,沒有任何“例外”用戶
chroot_list_enable=NO
#主動(dòng)模式端口為20
connect_from_port_20=YES
#日志路徑在vsftpd_log_file
dual_log_enable=YES
#啟用虛擬用戶
guest_enable=YES
#虛擬用戶映射為本地用戶
guest_username=huchangyi
#ipv4
listen=YES
#ipv6
listen_ipv6=NO
#允許本地用戶登錄
local_enable=YES
#建立文件夾的權(quán)限為777-022=755
local_umask=022
#可插拔驗(yàn)證模塊名稱
pam_service_name=vsftpd
#主動(dòng)
port_enable=YES
#被動(dòng)
pasv_enable=YES
#被動(dòng)模式傳輸數(shù)據(jù)的端口范圍
pasv_min_port=10000
#被動(dòng)模式傳輸數(shù)據(jù)的端口范圍
pasv_max_port=10000
#屏蔽ftpusers列表中的用戶
userlist_enable=YES
#屏蔽user_list列表中的用戶
userlist_deny=YES
#user_list列表路徑
userlist_file=/etc/vsftpd/user_list
#虛擬用戶文件夾路徑
user_config_dir=/etc/vsftpd/user_conf
xferlog_enable=YES
xferlog_std_format=YES
xferlog_file=/etc/vsftpd/ftp.log
vsftpd_log_file=/etc/vsftpd/vsftpd.log
#對登錄用戶開啟寫權(quán)限
write_enable=YES
5 查看系統(tǒng)用戶
cat /etc/passwd?
6 虛擬用戶權(quán)限獨(dú)立控制
mkdir /etc/vsftpd/user_conf
vim /etc/vsftpd/user_conf/test
write_enable=YES
#虛擬用戶和本地用戶有相同的權(quán)限
#virtual_use_local_privs=YES
#不是只讀
anon_world_readable_only=NO
#下載
anon_upload_enable=YES
#下載文件和創(chuàng)建文件夾
anon_mkdir_write_enable=YES
#下載、刪除和重命名
anon_other_write_enable=YES
local_root=/home/huchangyi
7 重啟
systemctl restart vsftpd
8 新建虛擬賬號教程
8.1 建立虛擬用戶口令庫文件
建立口令文件(名字隨便)? 奇數(shù)是用戶? 偶數(shù)是密碼
vim /etc/vsftpd/login.txt
test
t123456
8.2 生成vsftpd的認(rèn)證文件
使用db_load命令生成認(rèn)證文件
db_load -T -t hash -f /etc/vsftpd/login.txt /etc/vsftpd/login.db
設(shè)置認(rèn)證文件只對用戶可寫可讀
chmod 600 /etc/vsftpd/login.db
8.3 建立虛擬用戶所需的pam配置文件
cd /etc/pam.d
vim /etc/pam.d/vsftpd
文件內(nèi)容如下:
auth required /lib/security/pam_userdb.so (so表示調(diào)用的共享模塊)
db=/etc/vsftpd/login(.db要去掉)? ?(自動(dòng)生成認(rèn)證文件)
account required /lib/security/pam_uesrdb.so
db=/etc/vsftpd/login(.db要去掉)? ?(以認(rèn)證文件為標(biāo)準(zhǔn)驗(yàn)證帳號)
最終調(diào)整為
auth sufficient pam_userdb.so db=/etc/vsftpd/login
account sufficient pam_userdb.so db=/etc/vsftpd/login
sufficient
表示該模塊驗(yàn)證成功是用戶通過認(rèn)證的充分條件。只要這個(gè)模塊驗(yàn)證成功了,就代表沒有必要繼續(xù)去認(rèn)證這個(gè)用戶了。
那么相應(yīng)的行為就是只要被sufficient標(biāo)記的模塊一旦認(rèn)證成功,就會(huì)立即返回給應(yīng)用,報(bào)告成功;
但是需要注意的是sufficient的優(yōu)先級低于required,那么如果有required失敗,剛最終的結(jié)果也是失敗的;
當(dāng)sufficient認(rèn)證失敗時(shí),相當(dāng)于optional。
8.4 建立虛擬用戶所要訪問的目錄并設(shè)置相應(yīng)權(quán)限
即:建立所以ftp虛擬用戶帳號使用的系統(tǒng)用戶帳號的映射文件并設(shè)置該帳號
宿主目錄的權(quán)限
useradd huchangyi -d /home/huchangyi -s /sbin/nologin
注意不能給虛擬用戶設(shè)密碼? 他只起映射作用
8.5 設(shè)置vsftpd.conf配 置文件
在配置文件中添加虛擬用戶的配置內(nèi)容
vim /etc/vsftpd/vsftpd.conf
guest_enable=YES
guest_username=huchangyi
pam_service_name=vsftpd
9 重啟服務(wù)
systemctl restart vsftpd
10 報(bào)錯(cuò)問題解決
euler系統(tǒng)報(bào)錯(cuò) 無法初始化數(shù)據(jù)庫:
gdbmtool /etc/vsftpd/login.pag store test test1234