FTP就是文件傳輸協議,主要作數據上傳 數據下載。linux
FTP兩種模式:
主動模式服務器向客戶端敲門,而後客戶端開門
被動模式客戶端向服務器敲門,而後服務器開門算法
傳輸模式:能夠是文本模式,也能夠是二進制模式,二進制模式更適合傳輸圖片等非文本字符的文件數據庫
匿名用戶:不須要輸入用戶(多人共享一個)
本地用戶:本地的Linux登錄用戶(每一個共享用戶的家目錄)
虛擬用戶:不一樣於本地用戶,能夠建立一個匿名用戶的FTP,跟Linux沒有關係vim
首先查看服務端有沒有vsftpd命令,沒有則須要yum安裝一下
安全
yum裝完vsftpd天然就有/var/ftp/pub的共享目錄
服務器
屬主是root別的用戶沒有辦法讀寫,因此須要把pub屬主換成ftp,ftp程序用戶系統默認就有
安裝完vsftpd天然就有/etc/vsftpd/vsftpd.conf:ftp配置文件,爲了安全先備份一份
ide
vim打開ftp配置文件,配置以下
測試
服務端ftp配置完成後啓動ftp服務,啓動完成後檢查一下是否成功
ui
由於服務端共享目錄裏沒有文件,因此先建立一個
加密
客戶端只須要安裝ftp命令就能夠
ftp客戶端登錄服務端,匿名用戶名就是ftp,沒有密碼爲空,因此直接回車
ls看一下當前,看到了pub,cd進去看到了sl 天然就證實了我已經鏈接到了服務端
ftp有不少命令跟linux不同,因此須要help查看一下
在ftp裏get表明下載,你當前在哪一個目錄登錄ftp就下載到哪一個目錄
在ftp裏put表明上傳命令,也只能上傳客戶端當前目錄裏的文件,不能是絕對路徑上傳
首先先將配置完成後的匿名用戶備份,在把初始的配置文件複製回來
由於是ftp本地用戶搭建因此把匿名關閉,在把第96行的本地用戶家目錄取消註釋並開啓
由於是ftp本地用戶服務因此須要先建立一個普通用戶和密碼用客戶端ftp登錄服務端輸入yunjisuan帳號和密碼
剛建立用戶家目錄沒有任何東西,全部在服務端yunjisuan用戶建立一個文件
在客戶端ftp服務裏ls看到了建立的新文件
/etc/vsftpd/ftpusers:FTP給用戶加黑名單,優先級高於/etc/vsftpd/user_list能夠經過配置文件將此修改成白名單
首先須要把ftp本地用戶服務備份,在把源配置文件複製回來
先查看系統是否有db_load命令,沒有則須要安裝ftp虛擬用戶首先須要在/etc/vsftpd下建立密碼文件
建立完密碼文件須要弄db_load命令轉換成數據文件,-T容許非程序使用該數據庫 -t指定算法 hash -f表明加密,由於是密碼,爲了增長安全性須要給chmod 600 vusers.db權限
首先建立虛擬映射帳號,由於指定了家目錄因此給手動建立一個家目錄並賦上755權限
手動創建此pam認證文件以下
首先把匿名用戶關閉
把最下面配置文件
改爲這樣
配置完重啓服務,就能夠用客戶端進行ftp登錄,由於是指定建立的家目錄,因此須要去/var/ftproot建立點文件
ftp客戶端登錄服務端,輸入手動建立的虛擬帳號密碼,就能夠看到剛纔在服務端家目錄建立的文件
由於剛纔建立了2個帳號密碼,因此用第二個帳號登錄,也看到了指定的服務端家目錄文件
實現每一個虛擬用戶不一樣根目錄,不一樣權限的管控,首先在/etc/vsftpd建立mkdir /vusers.dir目錄,建立完進入目錄touch 虛擬帳號裏的名字
vim手動打開/etc/vsftpd/vusers.dir/虛擬帳號名
配置完手動mkdir -p /var/虛擬帳號名,chown virtual /var/虛擬帳號名:把帳號屬主換成virtual有讀寫權限
最後須要在/etc/vsftpd/vsftpd.conf手動填寫
重啓服務/etc/init.d/vsftpd reload後進入測試環境,手動在服務端家目錄建立個文件
在客戶端ftp登錄虛擬用戶,文件正好是在服務端配置文件目錄建立的文件