一:匿名用戶模式配置
anonymous_enable=YES # 允許匿名用戶訪問
no_anon_password=YES # 允許匿名用戶使用空密碼登錄
anon_upload_enable=yes # 允許匿名用戶上傳檔案
anon_umask=022 # 匿名用戶上傳的umask
anon_mkdir_write_enable=yes # 允許匿名用戶創建目錄
anon_other_write_enable=yes # 允許匿名用戶修改目錄名稱或洗掉目錄
anon_world_readable_only=NO # 關閉只有所有人都具有讀權限的檔案才能下載,YES表示能下載檔案
write_enable=yes
chroot_local_user=YES # 禁錮系統用戶
anon_root=/data # 指定匿名用戶登錄進來后的根目錄,如果不加就在該用戶的家目錄(/srv/ftp)
說明:
-
匿名用戶上傳檔案的時候需要開啟
anon_upload_enable和write_enable選項如果只是開啟了
anon_upload_enable,雖然允許了用戶上傳,但是沒有寫權限,可能還是沒法上傳成功, -
匿名用戶需要有權限修改、洗掉服務器上的內容,需要配置
anon_other_write_enable=YES選項, -
使用匿名檔案上傳到服務器后,如果需要下載這個檔案需要設定:
anon_world_readable_only=NO
例如:ubuntu1804 配置匿名用戶訪問FTP服務器
#1. 創建對應的目錄
root@ubuntu1804:~# mkdir /data
root@ubuntu1804:~# mkdir /data/data
root@ubuntu1804:~# chmod 777 /data/data #簡單粗暴的方法
# root@ubuntu1804:~# setfacl -m u:ftp:rwx /data/data # 給ftp用戶權限
#2. 修改組態檔
root@ubuntu1804:~# vim /etc/vsftpd.conf
anonymous_enable=YES
no_anon_password=YES
anon_upload_enable=yes
anon_mkdir_write_enable=yes
anon_other_write_enable=yes
anon_world_readable_only=NO
write_enable=yes
chroot_local_user=YES
anon_root=/data #指定匿名用戶登錄進來后的根目錄,如果不加就在該用戶的家目錄
#3. 重啟服務
root@ubuntu1804:~# systemctl restart vsftpd.service
二:本地用戶模式配置
anonymous_enable=NO # 禁用匿名用戶模式
local_enable=YES # 啟用本地用戶模式
write_enable=YES # 允許本地用戶上傳檔案
local_umask=022 # 上傳檔案的umask
local_root=/data # 指定用戶登錄進來所在的目錄
allow_writeable_chroot=YES # 允許對根目錄有寫權限
chroot_local_user=YES # 禁錮用戶不能離開自己的家目錄
例如:設定允許FTP服務器的系統用戶來登錄ftp服務器
# 1.創建測驗目錄
root@ubuntu1804:~# mkdir /ftproot
root@ubuntu1804:~# chmod 777 /ftproot
root@ubuntu1804:~# setfacl -m u:ftp:rwx /ftproot
# 2.更改組態檔
rot@ubuntu1804:~# vim /etc/vsftpd.conf
local_enable=YES
write_enable=YES
local_umask=022
local_root=/ftproot
allow_writeable_chroot=YES #允許對
chroot_local_user=YES
# 3. 重啟服務
root@ubuntu1804:~# systemctl restart vsftpd.service
三:本地用戶映射配置
可以將系統用戶映射為一個指定的本地用戶,或者將系統用戶映射為一個虛擬用戶,
# 啟用系統用戶
local_enable=YES
write_enable=yes
# 啟用虛擬用戶
guest_enable=YES
guest_username=ftp
chroot_local_user=YES # 禁錮虛擬用戶,因為真正操作對應檔案的是映射后的虛擬用戶
local_root=/ftproot # 用戶登錄服務器后所在目錄
#因為映射為了虛擬用戶 所以要配置虛擬用戶的相關權限
anon_upload_enable=yes # 允許上傳
anon_mkdir_write_enable=yes # 允許創建目錄
anon_other_write_enable=yes # 允許修改檔案
anon_world_readable_only=NO # 允許下載所有檔案
allow_writeable_chroot=YES # 對家目錄有寫權限
例如:設定系統用戶登錄FTP服務器后統一映射為一個匿名用戶
#1. 創建目錄檔案
root@ubuntu1804:~# mkdir /ftproot
root@ubuntu1804:~# chmod 777 /ftproot
#2. 修改組態檔
root@ubuntu1804:~# vim /etc/vsftpd.conf
local_enable=YES
write_enable=yes
guest_enable=YES
guest_username=ftp
chroot_local_user=YES
local_root=/ftproot
#因為映射為了虛擬用戶 所以要配置虛擬用戶的相關權限
anon_upload_enable=yes
anon_mkdir_write_enable=yes
anon_other_write_enable=yes
anon_world_readable_only=NO
allow_writeable_chroot=YES #允許對根目錄有寫權限
# 3.重啟服務
root@ubuntu1804:~# systemctl restart vsftpd.service
例如:將系統用戶映射為一個指定的系統用戶
# 1. 創建目錄
root@ubuntu1804:~# mkdir /ftproot
root@ubuntu1804:~# chmod 777 /ftproot
# 2. 修改組態檔 和上面的組態檔一樣
root@ubuntu1804:~# vim /etc/vsftpd.conf
local_enable=YES # 允許本地用戶登錄
write_enable=YES # 允許本地用戶上傳檔案
local_umask=022 # 允許本地用戶上傳檔案的權限
local_root=/ftproot # 指定用戶的目錄
allow_writeable_chroot=YES # 允許對根目錄有寫權限
chroot_local_user=YES # 禁錮用戶
guest_enable=YES # 允許映射為指定用戶
guest_username=bob # 系統用戶bob
# 映射為系統用戶,不加下面的資訊也無法正常下載和上傳檔案
anon_other_write_enable=yes
anon_upload_enable=yes
anon_mkdir_write_enable=yes
anon_world_readable_only=NO
anon_umask=022 # 指定映射后的用戶的默認檔案上傳權限
# 3. 重啟服務
root@ubuntu1804:~# systemctl restart vsftpd.service
四:虛擬用模式戶配置
guest_enable=YES # 啟用虛擬用戶
local_root=/data # 設定虛擬用戶的主目錄,
pam_service_name=vsftpd.virtual # 設定虛擬用戶的pam身份認證方式
write_enable=YES # 允許虛擬用戶上傳檔案
anon_upload_enable=YES
download_enable=YES # 允許虛擬用戶下載檔案
guest_username=user_name # 將虛擬用戶映射為一個指定的系統用戶
user_config_dir=/etc/vsftpd/conf.d/ # 組態檔名字應該和虛擬用戶名一致
說明:
虛擬用戶上傳檔案需要同時開啟write_enable和anon_upload_enable
anon_upload_enable雖然是針對虛擬用戶的上傳權限,但是在vsftpd的一些版本中,anon_upload_enable選項的實作方式可能會影響虛擬用戶的上傳權限,具體來說,一些版本的vsftpd在處理虛擬用戶的上傳請求時,可能會將其當作匿名用戶來處理,因此需要將anon_upload_enable設定為YES才能讓虛擬用戶能夠上傳檔案,
例如:ubuntu1804配置虛擬用戶
# 1. 創建虛擬用戶賬戶檔案 奇數行是用戶名 偶數行是用戶密碼
root@ubuntu1804:~# mkdir /etc/vsftpd/vusers.txt
ftp_tom
redhat
ftp_bob
redhat
# 2. 生成Berkeley DB檔案
root@ubuntu1804:~# db_load -T -t hash -f /etc/vsftpd/vusers.txt /etc/vsftpd/vusers.db
# 3. 創建虛擬用戶映射后的系統用戶
root@ubuntu1804:~# mkdir /data
root@ubuntu1804:~# useradd -d /data/ -s /sbin/nologin -r bob
root@ubuntu1804:~# chown -R bob:bob /data/
# 4. pam模塊配置 不用指定后綴也行
root@ubuntu1804:~# vim /etc/pam.d/vsftpd.db
auth required pam_userdb.so db=/etc/vsftpd/vusers
account required pam_userdb.so db=/etc/vsftpd/vusers
# 5. 組態檔配置
# 主組態檔設定
root@ubuntu1804:~# vim /etc/vsftpd.conf
guest_enable=YES
pam_service_name=vsftpd.db
guest_username=bob
user_config_dir=/etc/vsftpd/conf.d/
# 子組態檔設定 # 組態檔名字應該和虛擬用戶名一致
root@ubuntu1804:~# vim /etc/vsftpd/conf.d/ftp_bob
# 檔案上傳
anon_upload_enable=YES
write_enable=YES
# 創建目錄
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
# 檔案下載
download_enable=YES
anon_world_readable_only=NO
# 用戶禁錮
allow_writeable_chroot=YES
# 指定登陸后的默認位置
local_root=/data
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/548308.html
標籤:Linux
