本文是在課程課件基礎上修改的學習筆記
課程原地址:https://www.bilibili.com/video/BV1nW411L7xm
若有侵刪
運維基本功(一):Linux系統安裝
運維基本功(二):Linux基本命令
運維基本功(三):Linux文件管理
運維基本功(四):Linux文件管理-Vim編輯器概述
運維基本功(五):Linux文件管理-用戶管理
運維基本功(六):Linux用戶管理-遠程管理
運維基本功(七):Linux的權限管理操做
運維基本功(八):Linux自有服務與軟件包管理
運維基本功(九): Linux自有服務-防火牆&計劃任務
運維基本功(十): Linux計劃任務以及進程檢測與控制
運維基本功(十一): LAMP項目部署實戰
運維基本功(十二): Linux命令回顧與擴展
運維基本功(十三): 再談用戶組管理
運維基本功(十四):Linux下yum源配置實戰
運維基本功(十五):Linux系統優化基礎
運維基本功(十六):遠程管理SSH服務
運維基本功(十七):遠程管理SSH服務免密登陸解決方案
運維基本功(十八): Linux系統下數據同步服務RSYNC解決方案
運維基本功(十九): 文件共享服務之FTP解決方案linux
某創業公司剛剛起步,隨着業務量的增多,諮詢和投訴的用戶也愈來愈多,公司的客服部門由原來的2個增長到5個。客服部門平時須要處理大量的用戶反饋,不論是郵件,仍是QQ,仍是電話,客服人員都會針對每一次的用戶反饋作詳細的記錄 ,可是因爲客觀緣由,客服人員沒有成熟穩定的客戶服務系統,因此但願運維部門可以協助搭建一個文件共享服務來管理這些文檔,而且隨時跟蹤客戶的反饋狀況。web
FTP(File Transfer Protocol)是一種應用很是普遍而且古老的一個互聯網文件傳輸協議。shell
文件傳輸:文件上傳與文件下載vim
FTP軟件名稱 => vsftpd => vs(very secure ftp daemon)瀏覽器
在FTP服務中,其一共擁有兩種模式(主動模式 + 被動模式)服務器
參考點,FTP的服務器端。若是是FTP服務器端主動鏈接客戶端=>主動模式,若是是客戶端主動鏈接FTP服務器端=>被動模式。架構
cmd:命令端口(發送FTP請求)app
data:數據端口(後期用於傳輸數據)運維
1. 客戶端打開大於1023的隨機命令端口和大於1023的隨機數據端口向服務的的21號端口發起請求 2. 服務端的21號命令端口響應客戶端的隨機命令端口 3. 服務端的20號端口主動請求鏈接客戶端的隨機數據端口 4. 客戶端的隨機數據端口進行確認
1. 客戶端打開大於1023的隨機命令端口和大於1023的隨機數據端口向服務的的21號端口發起請求 2. 服務端的21號命令端口響應客戶端的隨機命令端口 3. 客戶端主動鏈接服務端打開的大於1023的隨機數據端口 4. 服務端進行確認
FTP默認使用的就是被動模式!tcp
1. 關閉防火牆和selinux 2. 配置yum源(mount /dev/sr0 /mnt) 3. 軟件三部曲 4. 瞭解配置文件 5. 根據需求修改配置文件來完成服務的搭建 6. 啓動服務,開機自啓動 7. 測試驗證
第一步:關閉防火牆與SELinux
# systemctl stop firewalld # systemctl disable firewalld # setenforce 0 # vim /etc/selinux/config SELINUX=disabled
第二步:配置YUM源
有網配置公網YUM源(阿里、清華、華爲),沒網就配置本地YUM源 # mount /dev/sr0 /mnt # yum clean all # yum makecache
第三步:安裝vsftpd軟件(FTP => vsftpd)
# yum install vsftpd -y
第四步:啓動ftp服務並添加到開機啓動項中
# systemctl start vsftpd # systemctl enable vsftpd
第五步:測試FTP是否安裝成功
# ifconfig ens33 inet 10.1.1.10 netmask 255.255.255.0 broadcast 10.1.1.255
☆ 基於瀏覽器的訪問
☆ 基於Windows資源管理器的訪問
☆ 基於FlashFxp、FileZilla軟件
☆ 基於ftp以及lftp命令進行鏈接(Linux與Linux之間的FTP文件傳輸)
yum install ftp lftp -y # ftp 10.1.1.10
在Server服務器端,使用rpm -ql vsftpd
# rpm -ql vsftpd /usr/lib/systemd/system/vsftpd.service 啓動腳本 /etc/vsftpd 配置文件的目錄 /etc/vsftpd/ftpusers 用戶列表文件,黑名單 /etc/vsftpd/user_list 用戶列表文件,可黑可白(默認是黑名單) /etc/vsftpd/vsftpd.conf 配置文件(主配置文件) /usr/sbin/vsftpd 程序自己(二進制的命令) /var/ftp 匿名用戶的默認數據根目錄 /var/ftp/pub 匿名用戶的擴展數據目錄
vsftpd配置文件詳解:
# grep -v ^# /etc/vsftpd/vsftpd.conf anonymous_enable=YES 支持匿名用戶訪問 local_enable=YES 支持非匿名用戶,普通帳號登陸,默認進入到本身家目錄 write_enable=YES 寫總開關 local_umask=022 反掩碼 file:644 rw- r-- r-- dir:755 dirmessage_enable=YES 啓用消息功能 xferlog_enable=YES 開啓或啓用xferlog日誌 connect_from_port_20=YES 支持主動模式(默認被動模式) xferlog_std_format=YES xferlog日誌格式 listen=YES ftp服務獨立模式下的監聽 pam_service_name=vsftpd 指定認證文件 userlist_enable=YES 啓用用戶列表 tcp_wrappers=YES 支持tcp_wrappers功能(FTP限速操做)
# man 5 vsftpd.conf
簡單來講:根據咱們所學的內容(FTP)搭建一個客戶服務系統(主要涉及客服資料上傳與下載)
1. 客服人員必須使用用戶名密碼(kefu/123)的方式登陸服務器來下載相應文檔 2. 不容許匿名用戶訪問 3. 客服部門的相關文檔保存在指定的目錄裏/data/kefu local_root=/data/kefu 4. 客服用戶使用用戶kefu/123登陸後就只能在默認的/data/kefu目錄裏活動
# useradd kefu # echo 123 |passwd --stdin kefu
# vim /etc/vsftpd/vsftpd.conf
12行 anonymous_enable=NO
配置修改完畢後,必定要重啓vsftpd服務
# systemctl restart vsftpd
# mkdir /data/kefu -p # vim /etc/vsftpd/vsftpd.conf 17行 local_root=/data/kefu
禁錮kefu用戶只能在/data/kefu目錄下
# vim /etc/vsftp/vsftpd.conf
18行 chroot_local_user=YES
配置修改完畢後,必定要重啓vsftpd服務
# systemctl restart vsftpd
以上問題主要出如今FTP2.3.5之後的版本中,固然你可使用
# rpm -qi vsftpd 查看版本信息
解決方案:
① 去除寫權限(治標不治本)
# chmod a-w /home/dhj
② 核心解決方案,添加一個選項
# vim /etc/vsftpd/vsftpd.conf19行 allow_writeable_chroot=YES
之因此沒法上傳,主要緣由在於kefu這個帳號對於/data/kefu文件夾沒有w寫權限
# setfacl -R -m u:kefu:rwx /data/kefu# systemctl restart vsftpd
18行 chroot_local_user=YES 禁錮全部用戶
需求:咱們能不能給一小部分用戶開通非禁錮權限。
# vim /etc/vsftpd/vsftpd.conf105行 chroot_list_enable=YES 開啓用戶列表文件107行 chroot_list_file=/etc/vsftpd/chroot_list 指定用戶列表文件echo kefu >> /etc/vsftpd/chroot_list 表明客服這個帳號不會被禁錮在指定目錄# systemctl restart vsftpd