1. 程式人生 > >centos中使用 vsftpd 服務,並且配置匿名使用者上傳和下載檔案

centos中使用 vsftpd 服務,並且配置匿名使用者上傳和下載檔案

首先我們需要再linux當中安裝 vsftpd服務

yum install vsftpd

然後cd當vsftpd的安裝配置資料夾 ,一般是  /etc/vsftpd 這個資料夾。

接下來配置一下vsftpd.conf檔案,配置檔案見下方,直接貼上進您的配置中即可:

#允許匿名使用者和本地使用者登陸。
anonymous_enable=YES
local_enable=YES
#本地使用者的登入名為本地使用者名稱,口令為此本地使用者的口令;本地使用者可以在自 己家目錄中進行讀寫操作;本地使用者可以離開自家目錄切換至有許可權訪問的其他目錄,並在許可權允許的情況下進行上傳/下載
write_enable=YES


#若是啟動這項功能,則使用匿名登入時,不會詢問密碼。預設值為NO
no_anon_password=YES
#定義匿名登入的使用者名稱。預設值為ftp
ftp_username=ftp
#使用匿名登入時,所登入的目錄。預設值為/var/ftp。注意ftp目錄不能是777的許可權屬性,即匿名使用者的家目錄不能有777的許可權
anon_root=/var/ftp
#如果設為YES,則允許匿名登入者有上傳檔案(非目錄)的許可權,只有在write_enable=YES時,此項才有效。當然,匿名使用者必須要有對上層目錄的寫入權。預設值為NO
anon_upload_enable=YES
#如果設為YES,則允許匿名登入者下載可閱讀的檔案(可以下載到本機閱讀,不能直接在FTP伺服器中開啟閱讀)。預設值為YES

anon_world_readable_only=YES
#如果設為YES,則允許匿名登入者有新增目錄的許可權,只有在write_enable=YES時,此項才有效。當然,匿名使用者必須要有對上層目錄的寫入權。預設值為NO
anon_mkdir_write_enable=YES
#如果設為YES,則允許匿名登入者更多於上傳或者建立目錄之外的許可權,譬如刪除或者重新命名。(如果anon_upload_enable=NO,則匿名使用者不能上傳檔案,但可以刪除或者重新命名已經存在的檔案;如果anon_mkdir_write_enable=NO,則匿名使用者不能上傳或者新建資料夾,但可以刪除或者重新命名已經存在的資料夾。)預設值為NO

anon_other_write_enable=YES
#設定是否改變匿名使用者上傳檔案(非目錄)的屬主。預設值為NO
chown_uploads=NO
#設定匿名使用者上傳檔案(非目錄)的屬主名。建議不要設定為root
chown_username=username
#設定匿名登入者新增或上傳檔案時的umask 值。預設值為077,則新建檔案的對應許可權為700
anon_umask=077


#standalone  (must config)
#設定vsftpd伺服器是否以standalone模式執行。以standalone模式執行是一種較好的方式,此時listen必須設定為YES,此為預設值。建議不要更改,有很多與伺服器執行相關的配置命令,需要在此模式下才有效。若設定為NO,則vsftpd不是以獨立的服務執行,要受到xinetd服務的管控,功能上會受到限制
listen=YES
#設定vsftpd允許的最大連線數,預設值為0,表示不受限制。若設定為100時,則同時允許有100個連線,超出的將被拒絕。只有在standalone模式執行才有效。
max_clients=0
#設定每個IP允許與FTP伺服器同時建立連線的數目。預設值為0,表示不受限制。只有在standalone模式執行才有效
max_per_ip=0
#設定FTP伺服器在指定的IP地址上偵聽使用者的FTP請求。若不設定,則對伺服器繫結的所有IP地址進行偵聽。只有在standalone模式執行才有效
#listen_address=IP地址


注意上面的配置中設定的 使用者登入之後的根路徑是  /var/ftp/,還有需要注意的是,一定不要把  /var/ftp 這個目錄的許可權配置成了 777 的許可權。

我們需要再這個資料夾下再新建一個 名字為 upload的資料夾,用這個來上傳和下載檔案
接下來我們使用 winscp這款 windows的客戶端登入匿名賬戶:

點選login即可登入其中,並且可以來到裡面的upload目錄裡面進行上傳和下載檔案的操作了。

需要注意的問題是:

如果這個匿名賬戶無法進行上傳和下載檔案的操作,這個時候需要檢查一下是不是下面的這些問題:

 配置要注意三部分,請一一仔細對照:
  1、vsftpd.conf檔案的配置(vi /etc/vsftpd/vsftpd.conf)
  #允許匿名使用者登入FTP
  anonymous_enable=YES


  #設定匿名使用者的登入目錄(如需要,需自己新增並修改)
  anon_root=/var/ftp/pub
  #開啟匿名使用者的上傳許可權
  anon_upload_enable=YES
#開啟匿名使用者的下載許可權
anon_world_readable_only=no
  #開啟匿名使用者建立目錄的許可權
  anon_mkdir_write_enable=YES
  #開啟匿名使用者刪除和重新命名的許可權(如需要,需自己新增)
  anon_other_write_enable=YES
  #匿名使用者的掩碼(如需要,需自己新增,含義:如umask是022,這時建立一個許可權為666的檔案,檔案的實際許可權為666-022=644)
  anon_umask=022
 2、ftp目錄的許可權設定
  預設情況下,ftp的根目錄為/var/ftp,為了安全,這個目錄預設不允許設定為777許可權,否則ftp將無法訪問。但是我們要匿名上傳檔案,需要“other”使用者的寫許可權,正確的做法:
  在/var/ftp中建立一個upload(名子自己起吧)資料夾,將個資料夾許可權設定為777(視具體需要自己設),在upload這個資料夾中,匿名使用者可以上傳檔案、建立資料夾、刪除檔案等。
  一般至此,便實現vsftpd匿名使用者的上傳下載了。如果還不行,就是下面的問題。
  3、selinux的配置
  SELinux(Security-Enhanced Linux) 是美國國家安全域性(NAS)對於強制訪問控制的實現,是 Linux上最傑出的新安全子系統。NSA是在Linux社群的幫助下開發了一種訪問控制體系,在這種訪問控制體系的限制下,程序只能訪問那些在他的任務中所需要檔案。SELinux 預設安裝在 Fedora 和 Red Hat Enterprise Linux 上,也可以作為其他發行版上容易安裝的包得到。
  最簡單的辦法,關閉selinux
  方法1:修改/etc/selinux/config檔案中的SELINUX="" 為 disabled ,然後重啟。
  方法2:用命令setenforce 0,無需重啟。(setenforce的格式:setenforce [ Enforcing | Permissive | 1 | 0 ])
  方法3:在lilo或者grub的啟動引數中增加:selinux=0,也可以關閉selinux。
最後記得關掉IPTABLES服務或在IPTABLES中新增FTP允許訪問的規則。