天天看點

配置FTP伺服器(1) 匿名使用者下載下傳和上傳

需要強調的是,我們之前用Samba實作的檔案伺服器隻能在區域網路内部使用,如果要使網際網路中的使用者能夠下載下傳或上傳,那麼就多半得使用FTP伺服器了。

RHEL6中的FTP功能是由一款名叫vsftpd的軟體提供的,名字中的vs是very secure的縮寫,是以vsftpd的特點是其安全性和穩定性比較突出。其官方站點為:http://vsftpd.beasts.org/。

系統預設并沒有安裝vsftpd,我們首先用yum指令安裝該服務:

# yum install vsftpd

vsftpd的服務程序名也是vsftpd,啟動服務并設為開機自動啟動:

# service vsftpd start

# chkconfig vsftpd on

vsftpd的預設主目錄是“/var/ftp/”,主配置檔案是/etc/vsftpd/vsftpd.conf。配置檔案一共有一百多行,配置并不算複雜。

該檔案中預設有這樣幾項設定:

配置FTP伺服器(1) 匿名使用者下載下傳和上傳

“anonymous_enable=YES”表示允許匿名使用者通路。vsftpd中的匿名使用者有兩個:anonymous和ftp,在用戶端可以用這兩個匿名使用者中的任意一個通路伺服器。

“local_enable=YES”表示允許使用系統使用者通路,但是系統使用者在通路時預設隻能通路自己的主目錄,而不是vsftpd的主目錄/var/ftp/。

“write enable=YES”表示允許寫入。這項設定隻是一個開關,要使匿名使用者或系統使用者具有寫入權限,還得進行其它的設定。

我們保留預設設定,在FTP預設主目錄/var/ftp的pub目錄下建立一個測試檔案:

# touch /var/ftp/pub/test.txt

然後我們在一台Windows用戶端上首先用匿名使用者通路測試,

配置FTP伺服器(1) 匿名使用者下載下傳和上傳

匿名使用者可以成功通路,當然前提是要把FTP伺服器端的防火牆關閉。

但此時匿名使用者卻無法上傳,原因也很簡單,因為匿名使用者對/var/ftp/pub目錄不具備寫入權限:

配置FTP伺服器(1) 匿名使用者下載下傳和上傳

這裡将“/var/ftp/pub”目錄的屬主改為ftp,即可賦予匿名使用者寫入權限。

# chown ftp /var/ftp/pub

此時在用戶端再次通路,仍然無法寫入,這是因為我們還需要對配置檔案進行設定。

在配置檔案/etc/vsftpd/vsftpd.conf中增加以下幾行:

配置FTP伺服器(1) 匿名使用者下載下傳和上傳

“anon_upload_enable=YES”表示允許匿名使用者上傳。

“anon_mkdir_write_enable=YES”表示允許匿名使用者建立目錄。

“anon_umask=022”表示設定匿名使用者的umask值。umask值是一種反碼的形式,當匿名使用者在FTP主目錄中建立目錄或檔案時,目錄或檔案所具有的預設權限就是由umask值決定的。由于對于目錄,我們所能擁有的最大權限是777,對于檔案,我們所能擁有的最大權限是666。因為x執行權限對于目錄是必須的,沒有執行權限就無法進入目錄;而對于檔案則不必預設賦予x執行權限。是以對于匿名使用者建立的目錄,預設的權限就是用777減去umask值,即755;對于建立的檔案,預設的權限則是用666減去umask值,即644。

“anon_max_rate=500000”表示對匿名使用者的傳輸速率進行限制,機關為位元組。

修改完成後,重新加載服務:

# service vsftpd reload

這樣在用戶端再次測試,匿名使用者就可以上傳了。

添加anon_other_write_enable=YES後,就可以匿名删除了。但是匿名使用者删除并不建議在ftp裡面使用,因為會造成ftp伺服器難于管理。