centos7.3 vsftpd 多用戶配置


1. 安裝vsftpd及pam認證服務軟件

yum  install vsftpd*  -y
yum install pam* libdb-utils libdb* --skip-broken -y
#設置開機啟動
systemctl enable vsftpd.service

#啟動
systemctl start vsftpd.service

2. 配置/etc/vsftpd/vsftpd.conf 文件

listen=YES    #若設定為 YES 表示 vsftpd 是以 standalone 的方式來啟動的
anonymous_enable=NO #靜止匿名登錄
local_enable=YES #設定本地用戶可以訪問
local_umask=022 #設定上傳后文件的權限掩碼
dirmessage_enable=YES #設定開啟目錄標語功能
use_localtime=YES
xferlog_enable=YES #設定開啟日志記錄功能
connect_from_port_20=YES #設定端口20進行數據連接

chroot_local_user=YES #禁止用戶訪問除主目錄以外的目錄
local_root=/data/vsftpd #訪問的目錄
ascii_upload_enable=YES
ascii_download_enable=YES #設定支持ASCII模式的上傳和下載功能

pam_service_name=vsftpd #設定,啟用pam認證
guest_enable=YES #啟動虛擬用戶
guest_username=vsftpd #虛擬用戶使用的系統用戶名
user_config_dir=/etc/vsftpd/vsftpd_user_conf #虛擬用戶使用的配置文件目錄
virtual_use_local_privs=YES #虛擬用戶和本地用戶有相同的權限
allow_writeable_chroot=YES #只能訪問自身所屬目錄,否則會有 500 錯誤

3. 創建虛擬用戶

創建vsftpd系統用戶
#useradd vsftpd -d /data/vsftpd -s /sbin/nologin
#chown -R vsftpd:vsftpd /data/vsftpd

填寫用戶名good和密碼123,其它依次填寫
#vim /etc/vsftpd/ftpuser.txt
good
123
生成數據庫文件
#db_load -T -t hash -f /etc/vsftpd/ftpuser.txt /etc/vsftpd/vsftpd_login.db/etc/pam.d/下創建配置vsftpd的數據庫pam認證文件vsftpd,其它注釋或刪掉
#vim /etc/pam.d/vsftpd
auth       required     pam_userdb.so db=/etc/vsftpd/vsftpd_login
account    required     pam_userdb.so db=/etc/vsftpd/vsftpd_login
配置good用戶
#mkdir -p /etc/vsftpd/vsftpd_user_conf
#vim /etc/vsftpd/vsftpd_user_conf/good
local_root=/data/vsftpd/good
write_enable=YES
#mkdir -p /data/vsftpd/good

4. 配置selinux

查看 selinux配置 
[root@localhost ~]# getsebool -a | grep ftpd
ftpd_anon_write --> off
ftpd_connect_all_unreserved --> off
ftpd_connect_db --> off
ftpd_full_access --> off
ftpd_use_cifs --> off
ftpd_use_fusefs --> off
ftpd_use_nfs --> off
ftpd_use_passive_mode --> off
使能ftpd_full_access
#setsebool -P allow_ftpd_full_access 1
需要防火牆添加FTP服務。
#firewall-cmd --permanent --zone=public --add-service=ftp
#firewall-cmd --reload

5. 重啟vsftpd並測試

[root@localhost ~]#systemcl restart vsftpd.service

[root@localhost ~]# ftp localhost
Trying ::1...
ftp: connect to address ::1拒絕連接
Trying 127.0.0.1...
Connected to localhost (127.0.0.1).
220 (vsFTPd 3.0.2)
Name (localhost:root): good
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
227 Entering Passive Mode (127,0,0,1,166,74).
150 Here comes the directory listing.
-rwxrwxrwx    1 1001     1001            0 Sep 18 09:17 good
-rwxrwxrwx    1 1001     1001            0 Sep 18 09:23 test2
226 Directory send OK.
ftp>

6. 虛擬用戶權限配置

管理員權限
local_root=/data/vsftpd
anon_world_readable_only=NO
write_enable=YES
anon_mkdir_write_enable=YES
anon_upload_enable=YES
anon_other_write_enable=YES

只能讀寫不能修改刪除
local_root=/data/vsftpd/good
anon_world_readable_only=NO
write_enable=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=NO
virtual_use_local_privs=NO

只能讀
local_root=/data/vsftpd
anon_world_readable_only=NO

 

 

參考文獻:

https://www.cnblogs.com/chenbaoli/p/8195697.html

https://blog.csdn.net/xujin12368/article/details/80920246

http://www.cnblogs.com/fengdejiyixx/p/9324689.html

https://blog.csdn.net/programer_bei/article/details/52333586


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM