1. 程式人生 > 實用技巧 >CentOS 5.5之vsftpd伺服器配置(下)

CentOS 5.5之vsftpd伺服器配置(下)

vsftpd的登陸方式(三種)
1、匿名使用者登陸
使用預設使用者名稱anonymous或ftp,如CentOS 5.5之vsftpd伺服器配置(上)一節所示,登陸後的根目錄為/var/ftp。
2、本地使用者登陸
使用系統賬號和口令登陸ftp伺服器,登陸後的根目錄為使用者的宿主目錄,並且可以轉換到其他系統目錄。首先建立一個名為centos的系統賬號。
useraddcentos
passwdcentos
在windows客戶端用centos賬戶登陸FTP伺服器,登陸後的根目錄就是centos的宿主目錄,而且可以改變路徑前往其他目錄。如圖centos前往到了/home/centos目錄以外的/etc/vsftpd目錄下。而且在它自己的根目錄下,擁有可讀可寫可執行的許可權,也就是說在/home/centos目錄下可以自由上傳和下載。


注:.message的作用就是在ftp使用者訪問FTP目錄時顯示歡迎資訊。我們在使用者根目錄下用vi來建立一個.message檔案


用windows客戶端登入ftp,發現多了一行:Hello,everyone!Welcome to 51cto!其實不僅僅是在根目錄,在其他目錄中也可以使用。

這時如果要把系統賬號鎖定在自己的根目錄下,那麼可以在vsftpd.conf中新增一條語句chroot_loacl_user=YES,這樣就能限制系統賬號了。記住要重啟vsftpd服務才能生效。

回到windows客戶端登入ftp,發現centos賬號無法改變到其他目錄下了。

3、虛擬使用者登入
由於本地使用者存在一定的方式安全隱患,所以又有了另外一種登入方式,即虛擬使用者代替本地使用者登入。虛擬使用者賬戶和本地賬戶沒有任何關聯,而是儲存在一個加密的檔案中。下面來看一下虛擬使用者的建立和登入過程。
1)建立虛擬使用者口令庫檔案
在任意目錄下建立一個文字檔案vuser_list.txt (這裡在/etc/vsftpd目錄下)
[[email protected] ~]# cd /etc/vsftpd
[[email protected] vsftpd]# vi vuser_list.txt

其中奇數行代表使用者名稱,偶數行代表密碼,注意不要有多餘的回車。
2)生成vsftpd的認證檔案到/etc/vsftpd目錄下
[[email protected] ~]# db_load -T -t hash -f vuser_list.txt /etc/vsftpd/vuser_list.db
系統不能識別db_load命令,說明沒有安裝db4軟體,那麼用yum安裝下

這時再重新執行指令:db_load -T -t hash -f vuser_list.txt /etc/vsftpd/vuser_list.db ,就沒有報錯


[[email protected] ~]# chmod 600 /etc/vsftpd/vuser_list.db # 設定認證檔案只對使用者可讀可寫
3)建立虛擬使用者所需的PAM配置檔案
在/etc/pam.d/目錄下,有一個名為vsftpd的檔案,這是使用PAM相關模組時用到的檔案,主要用作本地使用者身份驗證之用。因為這時要用的是虛擬使用者,所以不能用這個檔案了,可以在這個目錄下新建立一個檔案vsftpd.vuser,輸入以下內容:[[email protected] pam.d]# vi /etc/pam.d/vsftpd.vuser

建一個本地使用者(vuser),但不要建立密碼,那麼建立的虛擬使用者根目錄都可以對映到這個本地使用者的根目錄下。

接下來修改vsftpd.conf檔案,如下:
guest_enable=YES #允許虛擬使用者訪問
guest_username=vuser #虛擬使用者所對映的本地使用者名稱
pam_service_name=vsftpd.vuser #將原有的vsftpd認證檔案改為新建立的vsftpd.vuser

[[email protected]300second ~]# service vsftpd restart #重啟vsftpd服務
這時就可以用之前建立的vuser1和vuser2登陸了,但是不能再用本地使用者登陸。
不過這時的虛擬使用者許可權很低,只有最基本的訪問許可權。所以還需要在主配置檔案裡修改不同虛擬使用者的許可權。在沒有指定虛擬賬號根目錄的情況下,vuser1和vuser2的根目錄都在/home/vuser目錄下。
[[email protected] home]# cd /etc/vsftpd/
[[email protected] vsftpd]# mkdir /etc/vsftpd_vuser #建立一個用於包含虛擬使用者許可權的目錄
[[email protected] vsftpd]# vi vsftpd.conf #進入vsftpd.conf,增加一行,指向剛才建立的目錄

對於虛擬使用者來說,有下面4個許可權可以設定。如果包含了後三個許可權的話,就代表這個虛擬使用者擁有了所有的許可權。
anon_world_readable_only=NO #使用者的只讀許可權
anon_upload_enable=YES #允許上傳
anon_mkdir_write_enable=YES #允許建立和刪除目錄的許可權
anon_other_write_enable=YES #允許其他可寫許可權(如改名和刪除)

進入/etc/vsftpd/vsftpd_vuser目錄,建立兩個檔案vuser1和vuser2
[[email protected] vsftpd]# cd vsftpd_vuser
[[email protected] vsftpd_vuser]# vi vuser1

[[email protected] vsftpd_vuser]# vi vuser2

[[email protected] ~]# service vsftpd restart #重啟vsftpd服務
這時對於vuser1來說,可以進行上傳、下載、建立、刪除等各種操作。
而對於vuser2來說,幾乎沒有任何許可權,什麼都做不了。

轉載於:https://blog.51cto.com/300second/719231