vsftpd服務器配置虛擬用戶
阿新 • • 發佈:2018-08-13
only 3.5 attr word ini 目錄 emc err chroot
添加宿主用戶
新建系統用戶vsftpd,用戶目錄為/home/wwwroot, 用戶登錄終端設為/bin/false(即使之不能登錄系統)
useradd vsftpd -d /home/wwwroot -s /bin/false
所配置的虛擬用戶其實都是映射成配置的宿主用戶。
建立虛擬用戶名單文件
touch /etc/vsftpd/virtusers
編輯虛擬用戶名單文件:
第一行賬號,第二行密碼,註意:不能使用root做用戶名,系統保留
vi /etc/vsftpd/virtusers
生成虛擬用戶數據文件
db_load -T -t hash -f /etc/vsftpd/virtusers /etc/vsftpd/virtusers.db
修改認證方式
修改/etc/pam.d/vsftpd配置文件
#%PAM-1.0
#session optional pam_keyinit.so force revoke
#auth required pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed
#auth required pam_shells.so
#auth include password-auth
#account include password-auth
#session required pam_loginuid.so
#session include password-auth
auth sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/virtusers
account sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/virtusers
註意:如果系統為32位,上面lib64
改為lib
,否則配置不生效。
建立虛擬用戶個人Vsftp的配置文件
建立目錄
mkdir /etc/vsftpd/vconf
cd /etc/vsftpd/vconf
編輯虛擬用戶配置文件
配置文件名必須為虛擬用戶名
touch web1
vi web1
添加以下內容
#設置用戶目錄
local_root=/home/wwwroot/web1/http/
#設置上傳文件的權限,掩碼表示
anon_umask=022
#其他設置
write_enable=YES
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_othr_write_enable=YES
配置vsftpd
編輯/etc/vsftpd/vsftpd.conf
文件
anonymous_enable=NO //設定不允許匿名訪問
local_enable=YES //設定本地用戶可以訪問。註:如使用虛擬宿主用戶,在該項目設定為NO的情況下所有虛擬用戶將無法訪問
chroot_list_enable=YES //使用戶不能離開主目錄
chroot_list_file=/etc/vsftpd/chroot_list
ascii_upload_enable=YES
ascii_download_enable=YES //設定支持ASCII模式的上傳和下載功能
pam_service_name=vsftpd //PAM認證文件名。PAM將根據/etc/pam.d/vsftpd進行認證
##下面的配置在conf中手動添加
guest_enable=YES //設定啟用虛擬用戶功能
guest_username=vsftpd //指定虛擬用戶的宿主用戶
allow_writeable_chroot=YES
user_config_dir=/etc/vsftpd/vuser_conf //設定虛擬用戶個人vsftp的CentOS FTP服務文件存放路徑。
重啟vsftpd服務器
systemctl restart vsftpd.service
- 1
常見問題
上傳文件的權限配置
設置上傳之後文件的權限,有兩種情況:
- 如果使用vsftp的是本地用戶,則要修改配置文件中的 local_umask 的值。
- 如果使用vsftp的是虛擬用戶,則要修改配置文件中的 anon_umask 的值。
登陸ftp服務器,報錯:500 OOPS: vsftpd: refusing to run with writable root inside chroot()
原因在於,從vsftpd_2.3.5版開始,取消了登陸用戶的根目錄的可寫權限。
解決辦法1:
去掉該用戶根目錄的寫的權限,再新建一目錄,以後用新目錄
解決辦法2:
保持舊版的管理策略,ftp用戶根目錄還是可以設置為可寫權限。
在vsftpd.conf中添加如下配置
allow_writeable_chroot=YES
vsftpd服務器配置虛擬用戶