vsftpd服務器的安裝和配置

vsftpd服務器的安裝和配置

在linux或者centOS下類似。
一直想在Ubuntu下設置FTP服務器,但一直就沒成功。
今天有些時間,經過測試終於成功了。
由於在linux中的ftp軟件很多,這裏我只介紹vsftpd。
1. 安裝vsftpd
frank@frank-desktop:/etc/apt$ sudo apt-get install vsftpd
2. 配置
以下是我的配置,我只介紹我配置的主要參數,帶“#”號的配置沒有介紹,以後如果應用到其他配置,我會更新此文章。
root@frank-desktop:~# vim /etc/vsftpd.conf
listen=YES
!—獨立模式,具體功能不知道,最好開啓
local_enable=YES
!—遠程用戶可以使用本地賬號(非ftp賬號)登陸ftp服務器
write_enable=YES
!—開啓寫權限
connect_from_port_20=YES
!—用port 20傳送數據
chroot_list_enable=YES
!—開啓本地限制,限制本地用戶在本地目錄中
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list
!—如果本地限制打開了,再打開chroot_list,那麼在list中的用戶將可以遊覽任何目錄,不被列入的用戶將被鎖在自己的目錄下,不能遊覽其他的目錄。如果你想讓本地用戶不被鎖住,只要手動把用戶名添加到chroot_list中就可以了。這個list是手動添加的,不是自動生成的。
3. 問題
啓動後發現能遊覽,而且在“/home/frank”目錄中可以獲得所有權限,包括刪除添加。
但是其他的目錄(如“/home/ftp”)不能上傳,只能下載。
上傳、創建文件或目錄時總是提示:
“550 Remove directory operation failed.”

root@frank-desktop:/home# ls -l
drwxr-xr-x 42 frank frank 4096 2009-08-04 14:54 frank
drwxr-xr-x 4 root nogroup 4096 2009-08-04 15:14 ftp

  1. 解決
    經過研究,如果你想在某個文件夾中獲得上傳及修改的權限,那麼需要把此文件夾的權限設置成777,這樣就可以了。關於777是怎麼計算出來的,可以參考《Ubuntu 自動加載NTFS分區》中的內容。
    但爲什麼把權限設置成跟“/home/frank”文件夾的權限一樣,結果還是不行呢?
    在 Linux/Unix 中,檔案的權限分爲三級 : 檔案所有者、羣組、其他。
    因此登陸ftp用的賬號是frank本地賬號,那麼他會應用frank的權限;所以對於“/home/frank”文件夾,他只關心所有者的權限,所以他有寫的權限。
    對於“/home/ftp”文件夾,它屬於root用戶,並且沒有組,所以他只關心其他的權限,由於其他的權限是5,沒有執行,所以不能進行寫的權限。
    可以有兩種方法解決不能上傳的問題:
  2. 設置文件夾“其他”的權限

root@frank-desktop:/home# chmod 757 ftp
root@frank-desktop:/home# ls -l
drwxr-xr-x 42 frank frank 4096 2009-08-04 14:54 frank
drwxr-xrwx 4 root nogroup 4096 2009-08-04 15:14 ftp

  1. 更改ftp文件夾得所有者

root@frank-desktop:/home# chown frank /home/ftp
root@frank-desktop:/home# ls -l
drwxr-xr-x 42 frank frank 4096 2009-08-04 14:54 frank
drwxr-xr-x 4 frank nogroup 4096 2009-08-04 15:14 ftp

另外擴展下chown的用法,下面是更改所屬組的例子。
冒號前面是所有者,冒號後面是組:

root@frank-desktop:/home# chown frank:frank /home/ftp/
root@frank-desktop:/home# ls -l
drwxr-xr-x 42 frank frank 4096 2009-08-04 14:54 frank
drwxr-xr-x 4 frank frank 4096 2009-08-04 15:14 ftp

另外有一個“小插曲”,就是當我把ftp用戶刪除後,登陸ftp會提示以下錯誤:
vsftpd: cannot locate user specified in ‘ftp_username’:ftp
Unable to make a connection. Please try again.
確認後vsftp默認的缺省用戶是ftp,我把ftp刪了,他就找不到了,需要在config文件中加入以下配置就ok了:
“ftp_username=nobody”

轉載[轉載日期2016-09-27].
http://www.server110.com/vsftpd/201404/10330.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章