Centos下安裝FTP並進行虛擬用戶訪問方式配置

(如下全部都是在root用戶下操做)vim

一、準備工做瀏覽器

yum install pam*
yum install db4*
服務器

首先安裝PAM(用於用戶認證)和DB4(用於生成虛擬用戶的用戶名密碼的db文件)。session

mkdir  /home/ftpuserapp

在data下新建一個xx目錄,這個就做爲全部ftp文件上傳下載的根目錄(如今它的全部者是root,後面有更改它的全部者的操做)。tcp

 

二、安裝vsftpdide

yum install vsftpd測試

安裝之後會發現vsftpd的配置路徑在/etc/vsfpd/目錄下。同時會在系統內添加一個名稱爲ftp的用戶(固然也有了叫ftp的一個組)。ui

vim /etc/passwd 查看該用戶的參數:

該用戶不能經過登陸系統,它的home主目錄在/var/ftp。(若是要更改該用戶的主目錄等參數能夠:usermod -d /home/ftpuser ftp 。可是這不是必要的。)
spa

設置vsftpd開機啓動:

Shell代碼  收藏代碼

  1. chkconfig vsftpd on  

 這條命令也等同於:chkconfig --level 2345 vsftpd on

經過chkconfig --list

爲了不不能鏈接,修改SELinux(也可能沒有必要):

Shell代碼  

  1. setsebool -P ftpd_disable_trans=1  

 

三、配置vsftpd.conf

如今設置完畢之後vsft.conf的全部內容爲:

txt代碼  

  1. anonymous_enable=NO  

  2. local_enable=YES  

  3. write_enable=YES  

  4. local_umask=022  

  5.   

  6. xferlog_enable=YES  

  7. xferlog_file=/etc/vsftpd/vsftpd.log  

  8. xferlog_std_format=YES  

  9.   

  10. connect_from_port_20=YES  

  11. idle_session_timeout=600  

  12. listen=YES  

  13.   

  14. pam_service_name=vsftpd  

  15. userlist_enable=YES  

  16. tcp_wrappers=YES  

  17.   

  18. guest_enable=YES  

  19. guest_username=ftp   

  20. user_config_dir=/etc/vsftpd/virtualuser_conf  

 重要參數說明:

anonymous_enable=NO 不容許匿名訪問

local_enable=YES 本地用戶能夠訪問,若是設置成NO的話,ftp這個系統本地用戶無法進行訪問了,全部的ftp客戶端固然也無法進行上傳下載了。

write_enable=YES #可寫(可上傳)

 

xferlog_enable=YES
xferlog_file=/etc/vsftpd/vsftpd.log
xferlog_std_format=YES

這3項因爲設置log日誌,記得在/etc/vsftpd/下新建一個vsftpd.log文件。

 

guest_enable=YES  #啓用虛擬用戶
guest_username=ftp  #虛擬用戶借用的系統本地用戶名
user_config_dir=/etc/vsftpd/virtualuser_conf  #虛擬用戶的配置文件路徑,因此別忘了在/etc/vsftpd/目錄下新建一個virtualuser_conf文件夾

 

四、配置虛擬用戶

好比我要添加一個叫xx用戶,ftp客戶端就使用該用戶名(密碼後面設置)進行上傳下載,在/etc/vsftpd/virtualuser_conf新建一個名叫xx的文件:touch xx 。文件裏面的內容爲:

txt代碼  

  1. local_root=/data/xx  

  2. write_enable=YES  

  3. anon_umask=022 

  4. anon_world_readable_only=NO  

  5. anon_upload_enable=YES  

  6. anon_mkdir_write_enable=YES  

  7. anon_other_write_enable=YES  

 參數說明:

local_root=/data/xx  #該虛擬用戶上傳下載的根目錄
write_enable=YES  #可寫(可上傳)
anon_umask=022  #掩碼

接下來在/etc/vsftpd/目錄新建一個記錄全部客戶端用戶(虛擬用戶)的用戶名密碼的文本文檔:

touch virtualuser_passwd.txt

裏面的內容爲:

txt代碼  

  1. xx  

  2. passwd1  

  3. sj  

  4. passwd2  

 奇數行是用戶名,偶數行是密碼,這裏建了兩個虛擬用戶,可是sj這個用戶沒有給設置。

 接着,生成虛擬用戶認證的db文件 
db_load -T -t hash -f /etc/vsftpd/virtualuser_passwd.txt /etc/vsftpd/virtualuser_passwd.db 
隨後,編輯認證文件/etc/pam.d/vsftpd,所有註釋掉原來語句 
再增長如下兩句 
auth required pam_userdb.so db=/etc/vsftpd/virtualuser_passwd 
account required pam_userdb.so db=/etc/vsftpd/virtualuser_passwd

 

五、設置服務器上的目錄權限

由於這裏設置的上傳下載的根目錄爲/data/xx,因此這個文件夾的權限很重要,開始新建的時候它是root:root,屬於root用戶,屬於root組,後來改爲了root:ftp,即改爲了ftp組,由於客戶端進行上傳下載是藉助服務器上的ftp用戶,ftp用戶是屬於ftp組的。這樣能進行訪問下載,可是下載有問題,各類改權限,最後直接將這個目錄改爲ftp:ftp全部問題都沒有了,並且ftp用戶對該目錄具備rwx(可讀可寫可執行)的權限:

Shell代碼  

  1. chown -R ftp:ftp /home/ftpuser  

  2. chmod u=rwx /home/ftpuser  

 

六、測試

好了,全部配置完了測試一下,瀏覽器訪問ftp://xx:passwd1@10.6.6.50或者用FlashFXP鏈接就好了。

相關文章
相關標籤/搜索