Ubuntu

如何允許 vsftpd 寫入預設的 /files 以外的文件夾?

  • April 4, 2022

我是 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,通常你放下,文件就在那裡,不需要導航到文件夾。

這是chownUbuntu中的某種問題嗎?

是否可以只允許使用者寫入 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

引用自:https://serverfault.com/questions/839610