centos下面安裝vsftp 1:安裝 vsftp使用chkconfig --list來查看是否裝有vsftpd服務; 使用yum命令直接安裝:yum -y install vsftpd 然後為它建立記錄檔:touch /var/log/vsftpd.log2: 啟動與配置自啟動 使用chkconfig --list來查看vsftpd服務啟動項情況; 如果看到的是如下顯示的結果: vsftpd 0:off 1:off 2:off 3:off 4:off 5:off 6:off 服務全部都是off的,注意這裡的off表示的是伺服器啟動的時候是否會自啟動服務,我們使用如下命令來配置其自啟動: chkconfig --level 2345 vsftpd on #2345對應的是上面對應的0-6項 查看與管理ftp服務: 啟動ftp服務:service vsftpd start 查看ftp服務狀態:service vsftpd status 重啟ftp服務:service vsftpd restart 關閉ftp服務:service vsftpd stop3. 配置vsftp服務 編輯/etc/vsftpd/vsftpd.conf檔案,配置vsftp服務: #vi /etc/vsftpd/vsftpd.conf 3.1 編輯修改如下項目: anonymous_enable=NO #設定不允許匿名訪問 local_enable=YES #設定本機使用者可以訪問。註:如使用虛擬宿主使用者,在該項目設定為NO的情況下所有虛擬使用者將無法訪問。 chroot_list_enable=YES #使使用者不能離開主目錄 xferlog_file=/var/log/vsftpd.log #設定vsftpd的服務日誌儲存路徑。注意,該檔案預設不存在。必須要手動touch出來 ascii_upload_enable=YES #允許使用ASCII模式上傳 ascii_download_enable=YES #設定支援ASCII模式的上傳和下載功能。 pam_service_name=vsftpd #PAM認證檔案名稱。PAM將根據/etc/pam.d/vsftpd進行認證 以下這些是關於Vsftpd虛擬使用者支援的重要CentOS FTP服務設定項目。預設vsftpd.conf中不包含這些設定項目,需要自己手動添加RHEL/CentOS FTP服務配置。 guest_enable=YES #設定啟用虛擬使用者功能。 guest_username=ftp #指定虛擬使用者的宿主使用者。-RHEL/CentOS中已經有內建的ftp使用者了 user_config_dir=/etc/vsftpd/vuser_conf #設定虛擬使用者個人vsftp的RHEL/CentOS FTP服務檔案存放路徑。存放虛擬使用者個性的CentOS FTP服務檔案(設定檔名=虛擬使用者名稱)3.2 建立chroot list,將ftp使用者加入其中: touch /etc/vsftpd/chroot_list echo ftp >> /etc/vsftpd/chroot_list 3.3 進行認證: 首先,安裝Berkeley DB工具,很多人找不到db_load的問題就是沒有安裝這個包。 yum install db4 db4-utils 然後,建立使用者密碼文本/etc/vsftpd/vuser_passwd.txt ,注意奇行是使用者名稱,偶行是密碼 test1pwd1接著,.產生虛擬使用者認證的db檔案 db_load -T -t hash -f /etc/vsftpd/vuser_passwd.txt /etc/vsftpd/vuser_passwd.db 隨後,編輯認證檔案/etc/pam.d/vsftpd,全部注釋掉原來語句 再增加以下兩句 auth required pam_userdb.so db=/etc/vsftpd/vuser_passwd account required pam_userdb.so db=/etc/vsftpd/vuser_passwd 最後,建立虛擬使用者個性RHEL/CentOS FTP服務檔案 mkdir /etc/vsftpd/vuser_conf/ vi /etc/vsftpd/vuser_conf/test1內容如下: local_root=/opt/var/ftp #虛擬使用者的根目錄(根據實際修改) write_enable=YES #可寫 anon_umask=022 #掩碼 anon_world_readable_only=NO anon_upload_enable=YES anon_mkdir_write_enable=YES anon_other_write_enable=YES 4. 為目錄附許可權並重啟動vsftp服務: mkdir /opt/var/ftpchmod 777 /opt/var/ftp ******** 這個很重要 ,如果不設定,有可能報530錯誤,test1使用者上傳的根目錄就是這個檔案service vsftpd restart5. 常見問題: 5.1 553 Could not create file 一般都是SELinux的問題,設定SELinux的一個值,重啟伺服器即可。 setsebool -P ftpd_disable_trans 1 service vsftpd restart 也有可能是上面的紅色字,設定有問題5.2 500 OOPS: bad bool value in config file for: write_enable 注意你的CentOS FTP服務檔案中保證每一行最後沒有任何空格,一般出錯就是在多餘的空格上。 5.3 虛擬使用者上傳後預設許可權為:600,使用者無法下載檔案 在設定檔中添加或修改anon_umask項的值。如anon_umask=022或000 這樣在windows的上就可以使用ftp的用戶端去串連了, 1. virtual_use_local_privs參數當virtual_use_local_privs=YES時,虛擬使用者和本機使用者有相同的許可權;當virtual_use_local_privs=NO時,虛擬使用者和匿名使用者有相同的許可權,預設是NO。 當virtual_use_local_privs=YES,write_enable=YES時,虛擬使用者具有寫入權限(上傳、下載、刪除、重新命名)。 當virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_only=YES,anon_upload_enable=YES時,虛擬使用者不能瀏覽目錄,只能上傳檔案,無其他許可權。 當virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_only=NO,anon_upload_enable=NO時,虛擬使用者只能下載檔案,無其他許可權。 當virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_only=NO,anon_upload_enable=YES時,虛擬使用者只能上傳和下載檔案,無其他許可權。 當virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_only=NO,anon_mkdir_write_enable=YES時,虛擬使用者只能下載檔案和建立檔案夾,無其他許可權。 當virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_only=NO,anon_other_write_enable=YES時,虛擬使用者只能下載、刪除和重新命名檔案,無其他許可權。