centos7 安裝vsftpd安裝和配置以及虛擬用戶權限分配
系統環境 centos7.3 版本
ftp 根目錄 : /data/ftp
ftp 配置文件目錄:/etc/vsftpd
ftp 虛擬用戶權限配置文件目錄:/etc/vsftpd/vuser_config
實現目標:
1,匿名用戶可以登錄,但是不能訪問虛擬用戶的宿主目錄,只能訪問共享目錄
2,虛擬用戶對自己的宿主目錄有任何權限,且只能在自己宿主目錄中操作
1,安裝vsftpd和db_load加密工具
1 2 3 4 5 6 | #要關閉selinux 和防火墻或者開啟允許的端口,不然訪問會有問題 sed -i ‘s/SELINUX=enforcing/SELINUX=disabled/‘ /etc/selinux/config #修改配置文件 setenforce 0 #臨時關閉 systemctl stop firewalld.service #關閉防火墻
yum install vsftpd db4-utils -y |
2,創建本地用戶[用於映射虛擬用戶]
1 2 3 4 5 6 7 | #建立ftp用戶目錄 mkdir -p /data/ftp #創建用戶 useradd -d /data/ftp vuser -s /sbin/nologin 更改權限和主組權限 chmod 755 /data/ftp chown vuser.root /data/ftp |
3,創建虛擬用戶[用戶和密碼]文件
1 2 3 4 5 | vim /etc/vsftpd/vuser-list jin [用戶名] 123456 [密碼] jinc [用戶名] 123123 [密碼] |
4,加密用戶密碼文件生成數據庫文件
1 2 3 4 | cd /etc/vsftpd/ db_load -T -t hash -f ./vuser-list ./vuser-list.db chmod 600 vuser-list.db
|
5,創建PAM認證文件
1 2 3 4 | vim /etc/pam.d/vuser.vu auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser-list #註意64位系統寫/lib64這個路徑,32位系統要寫成/lib,下同! account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser-list
|
6,修改配置文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | vim /etc/vsftpd/vsftpd.conf
#允許匿名用戶訪問 anonymous_enable=yes
local_enable=YES write_enable=YES local_umask=022 dirmessage_enable=YES xferlog_enable=YES connect_from_port_20=YES xferlog_file=/var/log/xferlog xferlog_std_format=YES
listen=NO listen_ipv6=YES
#修改ftp默認目錄到/data/ftp下面 chroot_local_user=YES local_root=/data/ftp anon_root=/data/ftp
#pam認證文件 pam_service_name=vuser.vu
#虛擬用戶權限配置目錄 user_config_dir=/etc/vsftpd/vuser_config
userlist_enable=YES tcp_wrappers=YES allow_writeable_chroot=YES one_process_model=NO
#開啟虛擬用戶 guest_enable=YES guest_username=vuser
重啟vsftpd服務 systemctl restart vsftpd.service |
7,創建虛擬用戶[權限]配置文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | cd /etc/vsftpd/vuser_config vim jin [有所有權限] local_root=/data/ftp/jin #設置登錄後禁錮的目錄 write_enable=yes #開放寫權限 anon_world_readable_only=no #開放下載權限 anon_upload_enable=yes #開放上傳權限 anon_mkdir_write_enable=yes #開放創建目錄的權限 anon_other_write_enable=yes #開放刪除和重命名的權限
vim jinc [只有上傳下載的權限] local_root=/data/ftp/jinc anon_upload_enable=yes anon_world_readable_only=no
|
8,更改虛擬用戶目錄權限
1 2 3 | #如果不更改的話,匿名用戶是可以訪問到的 chmod 700 jin chmod 700 jinc |
9,訪問測試:[先在用戶文件夾中建個測試的文件夾或文件,方便識別]
匿名訪問
登錄jin 用戶訪問:
登錄jinc 用戶訪問:
錯誤1:226 Transfer done (but failed to open directory)
解決:selinux 和防火墻導致
錯誤2:500 OOPS: vsftpd: refusing to run with writable root inside chroot()
解決:配置文件中加入 allow_writeable_chroot=YES 針對標準vsftpd(standonly)模式, 然後重啟ftp
本文出自 “jinchuang” 博客,請務必保留此出處http://jinchuang.blog.51cto.com/8690689/1947579
centos7 安裝vsftpd安裝和配置以及虛擬用戶權限分配