1. 程式人生 > >Centos下vsftp的配置以及錯誤處理

Centos下vsftp的配置以及錯誤處理

    學習linux也有一段時間了,以前都是開個虛擬機器在虛擬機器下全屏搞學習,不過工作中貌似是沒有給我們在伺服器上寫程式碼的條件吧,所以決定模擬實際環境,配置一下學習環境

    首先是安裝SecureCRT 我安裝的是7.0。 破解什麼的大家自己懂得。

    然後是ftp伺服器,作用的話個人有個人的用處,我就講一下他的配置與出錯解決方法,因為自己的話花了一個上午的時間,最後終於可以上傳和下載。一方面可以給與我一樣正在安裝的小白的借鑑,一方面自己記錄一下,說不定哪天又要安裝,有一個成功的免得又去找一大推資料 最後還是沒搞成的苦楚。廢話不說 下面開始安裝

一、下載安裝

yum install vsftpd

二、配置vsftp服務

vim /etc/vsftpd/vsftpd.conf

2.1修改如下幾項:(來自他人部落格)

anonymous_enable=NO #設定不允許匿名訪問
local_enable=YES #設定本地使用者可以訪問。注:如使用虛擬宿主使用者,在該專案設定為NO的情況下所有虛擬使用者將無法訪問。
chroot_list_enable=YES #使使用者不能離開主目錄
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服務檔案

2.2 建立chroot list,將ftp使用者加入其中

touch /etc/vsftpd/chroot_list
echo ftp >> /etc/vsftpd/chroot_list

2.3 進行認證:

首先,安裝Berkeley DB工具,很多人找不到db_load的問題就是沒有安裝這個包。

yum install db4 db4-utils

然後,建立使用者密碼文字/etc/vsftpd/vuser_passwd.txt ,注意奇行是使用者名稱,偶行是密碼ftpuser1123456ftpuser2123456接著,.生成虛擬使用者認證的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_passwdaccount required pam_userdb.so db=/etc/vsftpd/vuser_passwd

2.4建立虛擬使用者個性RHEL/CentOS FTP服務檔案

mkdir /etc/vsftpd/vuser_conf
vim /etc/vsftpd/vuser_conf/ftpuser1

內容如下:
local_root=/var/ftp   虛擬使用者的根目錄(根據實際修改,這裡為我們在第二步中建立了/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

2.5重啟動vsftp服務:

service vsftpd restart

三、新增ftp使用者

3.1命令格式:

#adduser -d /目錄路徑 -g ftp -s /sbin/nologin 使用者名稱
如使用:

adduser -d /opt/dongge -g ftp -s /sbin/nologin dongge

增加了一個名為dongge的使用者,它的目錄屬於/opt/dongge下面,屬於ftp使用者組。此使用者是不可以登陸我們終端伺服器的。

3.2 新增密碼:

passwd dongge
設定使用者名稱為FTPUSER的使用者在目錄下可以讀寫的許可權
chown -R dongge:ftp /opt/dongge/

3.3 目錄掛載:

如果我們想把/var/www/html目錄掛到我們的ftp目錄下的html目錄上,可以使用mount命令

mkdir /var/ftp/html

mount –-bind /var/www//html /var/ftp/html

這樣我們就完成了新增使用者與掛載目錄的配置。
這樣完成以後還需要將虛擬使用者新增到apache使用者組中。
usermod -G ftp apache

四、支援http下載

編輯/etc/httpd/conf/httpd.conf檔案:
#vi /etc/httpd/conf/httpd.conf

新增如下程式碼:
Alias /fileshare "/var/ftp/ftpuser1"
<Directory "/var/ftp/ftpuser1">
     Options Indexes MultiViews
     AllowOverride None
     Order allow,deny
     Allow from all
</Directory>

重啟httpd服務,即可使用http://your_ip/fileshare來訪問並下載所需要檔案:)

五、錯誤以及處理方法

5.1 553 Could not create file

  一般都是SELinux的問題,設定SELinux的一個值,重啟伺服器即可。
  setsebool -P ftpd_disable_trans 1
  service vsftpd restart

  網上部落格上市這樣寫的 但是CentOS沒有這個哦,所以CentOS使用者的解決方法是:

 setsebool ftp_home_dir on 
  setsebool allow_ftpd_full_access on

5.2 500 OOPS: bad bool value in config file for: write_enable

   注意你的CentOS FTP服務檔案中保證每一行最後沒有任何空格,一般出錯就是在多餘的空格上。

5.3 虛擬使用者上傳後預設許可權為:600,使用者無法下載檔案

   在配置檔案中新增或修改anon_umask項的值。如anon_umask=022或000