文件共享服務之FTP
一、什么是文件共享服務
簡單理解就是文件或存儲塊設備可以共享給大家使用。
1、實現共享服務有三種!
(1)ftp:屬于應用層服務,可以跨平臺使用
(linux<--->uinx<--->windows)
(2)nfs:屬于內核模式,不可跨平臺
(linux<--->linux)
(3)samba:可跨平臺
(linux<--->uinx<--->windows)
2、實現存儲設備與服務器連接方式有三種!
(1)DAS:簡單說就是連接的磁盤
(2)NAS:通過nfs/CIFS協議實現網絡共享文件
(文件存儲方式)電子郵件、網頁服務器、多媒體流服務、檔案分享等就適用于NAS存儲架構
(3)SAN:通過網線或光纖實現iscsi和FCSAN將物理存儲設備連接起來使用
(塊存儲方式較底層,需要格式化并掛載當本地磁盤使用)數據庫有關的應用適用于SAN存儲架構
3、附:
(1) nfs(Network File System,網絡文件系統)協議實現linux的文件封裝共享傳輸。
(2)CIFS(Common Internet File System,公共互聯網文件系統)協議實現windows與linux的共享識別,例如samba就是基于CIFS(SMB)協議實現。
二、FTP
ftp:File Transfer Protocol
應用層協議:tcp,21端口
C/S架構
命令鏈接21(長鏈接)
數據鏈接20(傳完斷開在傳在鏈接)
數據傳輸格式
文本傳輸(不應該人為干預,原文件是什么格式就用什么格式傳輸)
二進制傳輸(不應該人為干預,原文件是什么格式就用什么格式傳輸)
主動ftp模式
主動:由服務器創建連接
命令:
Client:50000 –> Server: 21
數據:
Server: 20/tcp –> Client: 50000+1被動ftp模式
被動:由客戶端創建連接
命令:
Client:50000 –> Server: 21
數據:
Client:50000+1 –> Server: 隨機端口
三、響應碼
1xx: 信息
2xx: 成功類的狀態碼
3xx: 提示需進一步提供補充類信息的狀態碼
4xx: 客戶端錯誤
5xx: 服務端錯誤
四、FTP存儲和mysql存儲有什么不同?
FTP屬于非結構化數據存儲,無法定義類型關系等,包括圖片文件,二進制文件等
mysql屬于結構化關系數據庫存儲,表列對應關系,可定義type及字符長度。
五、用戶認證
1、虛擬用戶:
用于訪問某個服務的用戶(mysql用戶,http網站用戶)和操作系統上的用戶沒有關系,這樣做是為了安全
FTP默認是系統賬戶,為了系統安全,可以改成虛擬用戶登錄
虛擬用戶可以基于文件(非系統用戶的文件),也可以基于鏈接mysql數據實現FTP的認證登錄
nsswitch
: network server switch, 名稱解析框架
配置文件:/etc/nsswitch.conf
模塊:/lib64/libnss*, /usr/lib64/libnss*
pam
: pluggable authentication module, 用戶認證框架
模塊:/lib64/security/
配置文件:/etc/pam.conf, /etc/pam.d/*以上兩種框架linux自帶框架,通過庫調用的方式自由選擇基于系統賬戶實現,非系統賬戶實現,還是數據庫賬戶形式實現不用全部編譯進去浪費資源。
2、系統用戶
3、匿名用戶
總結:匿名用戶或虛擬用戶雖然和系統用戶沒有關系,但是登陸后獲取系統上的文件權限還是需要映射為系統用戶,以系統用戶的權限訪問系統文件(例如:ftp系統用戶,httpd系統用戶)
六、FTP安裝與配置
![]()
配置文件
用戶認證配置文件:/etc/pam.d/vsftpd
服務腳本:/etc/rc.d/init.d/vsftpd
置文件:/etc/vsftpd/vsftpd.conf
匿名用戶配置:
anonymous_enable=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_ohter_write_enable=YES
系統用戶的配置:
local_enable=YES
write_enable=YES
local_umask=022
禁錮所有的ftp本地用戶于其家目錄中:
chroot_local_user=YES
禁錮文件中指定的ftp本地用戶于其家目錄中:
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list(在此文件中添加系統用戶)
虛擬用戶映射系統用戶
guest_enable=YES
guest_username=vuser
通過pam用戶認證
pam_service_name=vsftpd
vsftpd在/etc/pam.d/vsftpd
匿名用戶(映射為ftp用戶)共享資源位置:/var/ftp
系統用戶通過ftp訪問的資源的位置:用戶自己的家目錄
虛擬用戶通過ftp訪問的資源的位置:給虛擬用戶指定的映射成為的系統用戶的家目錄
原創文章,作者:Net18-糖糖,如若轉載,請注明出處:http://www.www58058.com/14909