說明:
– vsftpd的版本:vsftpd-3.0.2-29.el7_9.x86_64
– ftp根目錄:/var/www
– ftp 配置檔案目錄:/etc/vsftpd
– ftp 虛擬使用者許可權配置檔案目錄:/etc/vsftpd/user_conf
實現目標:
– 匿名使用者可以登入,但是不能訪問虛擬使用者的宿主目錄,只能訪問共享目錄
– 虛擬使用者對自己的宿主目錄有任何許可權,且只能在自己宿主目錄中操作
搭建過程
1. 安裝vsftpd,ftp和libdb-utils(需要安裝db包,用來加密虛擬使用者的賬號資訊,centos7已經安裝好了)
- 建立本地使用者(用於對映虛擬使用者)
- 修改配置檔案
- 建立儲存虛擬使用者的檔案
- 生成資料庫檔案並建立PAM認證檔案
- 啟動vsftpd服務
- 更改虛擬使用者目錄許可權
- 測試訪問
- 新增新使用者(不需要重啟vsftpd服務)
- 問題處理
– 報錯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。
- vsftp上傳檔案許可權問題
file_open_mode上傳檔案的許可權,與chmod 所使用的數值相同。如果希望上傳的檔案可以執行,設此值為0777。
預設情況下vsftp上傳之後檔案的許可權是600,目錄許可權是700
* local_umask=xxx這是指定本地使用者上傳後的檔案許可權設定
* anon_umask=xxx這是指定虛擬使用者上傳後的檔案許可權設定
* umask是unix作業系統的概念,umask決定目錄和檔案被建立時得到的初始許可權
* umask = 022時,新建的目錄 許可權是755,檔案的許可權是 644
* umask = 077時,新建的目錄 許可權是700,檔案的許可權時 600
-
部署雲伺服器上,安全組放開1802還是連線失敗
按照配置檔案中設定被動埠範圍,放開安全組
-
使用FileZilla連線報超時
修改配置