1. 程式人生 > 實用技巧 ># 2021-01-11 #「vsftpd」- 實現:特定使用者帳號上傳,其他使用者只能下載(WIP)

# 2021-01-11 #「vsftpd」- 實現:特定使用者帳號上傳,其他使用者只能下載(WIP)

問題描述

在進行產品交付時,我們使用 FTP 提供下載:1)內部帳號,上傳到各子目錄中,2)客戶登入帳號,只能訪問自己的目錄,並且能進行下載且無法上傳。

該筆記將記錄:如何實現,某個使用者上傳,而其他使用者只能下載。

解決方案

這裡只記錄關鍵配置:

# 前臺執行(可選)
background=NO

# 禁止匿名訪問,允許本地訪問,允許客人(虛擬使用者)訪問
anonymous_enable=NO
local_enable=YES
guest_enable=YES

# 使虛擬使用者具有與本地使用者相同的許可權
virtual_use_local_privs=YES

# 使用 chroot 以禁止使用者訪問系統
chroot_local_user=YES
allow_writeable_chroot=YES

# 所有人禁止寫入,實現只能下載
write_enable=NO

# 為使用者設定各自的家目錄,
user_sub_token=$USER
local_root=/home/vsftpd/$USER

# 為使用者使用自己的配置檔案
user_config_dir=/etc/vsftpd/user_config.d/

通過 /etc/vsftpd/user_config.d/<username> 配置,只為需要上傳的使用者建立,內容如下:

write_enable=YES

參考文獻

WikiNotes/實現:特定使用者帳號上傳,其他使用者只能下載(WIP)
Manpage of VSFTPD.CONF
security - vsftp: why is allow_writeable_chroot=YES a bad idea? - Server Fault