如何允許 vsftpd 寫入預設的 /files
以外的文件夾?
我是 FTP 新手,我一直在關注這個 DigitalOcean 教程。
一切都很好,除了使用者(至少在 FileZilla 中)不能寫入他的
/home/user/ftp
文件夾的根目錄,只有/home/user/ftp/files
. 嘗試在根文件夾中創建會導致:命令:PASV 響應:227 進入被動模式 (104,131,29,61,191,224)。
命令:STOR asdfa
響應:553 無法創建文件。
錯誤:嚴重的文件傳輸錯誤
我掃描
/etc/vsftpd.conf
了文件中的單詞files
,但在任何地方都找不到該配置。我以前使用過 FTP,通常你放下,文件就在那裡,不需要導航到文件夾。這是
chown
Ubuntu中的某種問題嗎?是否可以只允許使用者寫入 root,如果可以,如何?
您的預設設置
/etc/vsftpd.conf
最初並不包括配置文件支持的所有可能指令。其餘的可以從 中找到man vsftpd.conf
。您可以在以下教程中找到您的問題的答案:
當使用者被限制在特定目錄時,FTP 通常更安全。vsftpd 使用 chroot 監獄來完成此任務。當為本地使用者啟用 chroot 時,預設情況下他們被限制在他們的主目錄中。但是,由於 vsftpd 保護目錄的方式,它不能被使用者寫入。這對於應該只通過 FTP 連接的新使用者來說很好,但如果現有使用者也有 shell 訪問權限,他們可能需要寫入他們的主文件夾。
換句話說,您已經創建了
/home/user/ftp
允許 vsftp 使用 chroot jails 的文件夾,而無需將主文件夾/home/user/
設置為只讀給使用者。因此,您已經在做最佳實踐,不應該擔心錯誤,因為這是正常且理想的行為。禁用 chroot jail是可能的,但強烈不建議這樣做。
如果這只是為了改變使用者體驗,您可以嘗試
/home/user/ftp/files
通過添加/修改 vsftp.conf 指令直接在登錄後追加:user_sub_token=$USER local_root=/home/$USER/ftp/files