ubuntu配置vsftpd記錄

2021-09-06 09:37:42 字數 2048 閱讀 7418

基本上,我是按照這篇文章來做的,當然中間還參考了一些別的教程,最終雖然跑起來了,但不完全合我的意,這玩意在windows上玩serveru和filezilla簡單爆了,到linux上腫麼就這麼複雜~~~

基本步驟:安裝》配置》新增(系統使用者)》新增組》設定目錄許可權

如果按照教程跑起來了,你的/etc目錄下最終會有這幾個配置檔案:

1,vsftpd.conf

主配置檔案

2,vsftpd.allowed_users 把userlist_enable開關開啟後,引入的配置檔案。配置允許該檔案裡的使用者登入,【注:該教程用的是vsftpd.userlist,但配置檔案中的是vsftpd.allowed_users,我就保持了配置檔案的名字】;

3,sftd.chroot_list 把chroot_list_enable開關開啟後,引入的配置檔案。配置允許該檔案裡的使用者登入成功後能跳到別的目錄去(所以不能跳到別的目錄,就叫jailed了);

要想跑起來注意幾點:

1,vsftpd安裝後預設的資料夾是/srv/ftp;

2,你在本地 ftp localhost 然後用使用者名稱密碼登入成功,卻發現遠端登入不成功,那麼(防火牆的事你自己搞定)在ftp客戶端上自己設定一下傳輸模式為「主動模式」(pasv);

3,/srv/ftp的目錄預設是沒有上傳檔案的許可權的,暫時不要去chmod它,會出問題,只有建了乙個有完全許可權的子資料夾(文後已經解決了這個問題);

4,chroot的問題,即允許登入使用者跳到根目錄外的目錄,下面單獨來講這個問題。

如果你的(ftp)使用者的根目錄(比如你沒有指向預設目錄)有寫許可權,那麼該使用者登入的時候會得到乙個「500 oops: vsftpd: refusing to run with writable root inside chroot ()」錯誤。

1,這時你就需要把這個使用者新增到上述提到的第二個配置檔案vsftpd.chroot_list裡面去,再測試登入,應該會成功,這不是chroot的目的,只是客觀上解決了上面這個500錯誤,而一旦你這麼做了,該使用者就能訪問這台電腦的所有目錄了,這不是你要的吧。。。(圖1)

(圖1)/srv/ftp/upload是我設定的該使用者的根目錄,但是chroot後顯然其它目錄也對使用者可見了

2,如果你把該使用者的根目錄指到ftp根目錄去(因為對ftp根目錄而言,該使用者屬於other組,不具有寫許可權),沒問題。可這也不是你要的吧,我們就來測試下:

a. 新建乙個/home/admin的資料夾(mkdir),

b. 把它定義成admin這個ftp使用者的根目錄(usermod),

c. 並且設為admin為其擁有者(chown),

d. 把admin使用者從chroot_list檔案中移除,

e. 然後登入ftp,500錯誤如願出現 ,(圖2)

f. 現在把home/admin目錄的寫許可權去掉(555),成功了。(圖3)

(圖2)

(圖3)

這個問題網上有解決方法,我嘗試失敗了。。。

所以我才選了上面提到的彆扭的解決方案是:

指向不可寫的根目錄,然後不允許chroot,在該目錄裡建乙個可寫的目錄用來給使用者上傳~~~糾結

ps*****===

才寫完這篇部落格,我就把/srv/ftp這個根目錄給chown給了乙個使用者,結果發現根目錄居然「既有寫許可權,又不需要chroot,還能正常登入」了,也就是說可以往根目錄上傳檔案了,奇怪,遂繼續上面的測試以期能復現我剛才的結果:

原因我就不深究了,兩次測試都成功了。

ubuntu 安裝配置vsftpd

一。安裝vsftp和db4 sudo apt get install vsftpd sudo apt get install db4.6 util 二。建立虛擬使用者口令庫檔案 sudo mkdir etc vsftpd 新建名為logins.txt的使用者口令檔案,sudo gedit etc v...

Ubuntu下配置vsftpd服務

一。安裝vsftp和db4 sudo apt get install vsftpd sudo apt get install db4.6 util 二。建立虛擬使用者口令庫檔案 sudo mkdir etc vsftpd 新建名為logins.txt的使用者口令檔案,sudo gedit etc v...

Ubuntu下配置vsftpd服務

一。安裝vsftp和db4 sudo apt get install vsftpd sudo apt get install db4.6 util 二。建立虛擬使用者口令庫檔案 sudo mkdir etc vsftpd 新建名為logins.txt的使用者口令檔案,sudo gedit etc v...