(linux系統服務)FTP、NFS以及SAMBA服務

一、FTP服務

1、Linux下ftp客戶端管理工具

ftp、lftp都是Linux下ftp的客戶端管理工具,但是需要獨立安裝

# yum install ftp lftp -y

☆ ftp工具

# ftp 10.1.1.10
Connected to 10.1.1.10 (10.1.1.10).
220 (vsFTPd 3.0.2)
Name (10.1.1.10:root): 輸入FTP的賬號331 Please specify the password.
Password: 輸入FTP賬號對應的密碼230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>

求幫助:

ftp> ?或help
Commands may be abbreviated.  Commands are:!               debug           mdir            sendport        site
$               dir             mget            put             size
account         disconnect      mkdir           pwd             status
append          exit            mls             quit            struct
ascii           form            mode            quote           system
bell            get             modtime         recv            sunique
binary          glob            mput            reget           tenex
bye             hash            newer           rstatus         tick
case            help            nmap            rhelp           trace
cd              idle            nlist           rename          type
cdup            image           ntrans          reset           user
chmod           lcd             open            restart         umask
close           ls              prompt          rmdir           verbose
cr              macdef          passive         runique         ?
delete          mdelete         proxy           send

第一個命令:ls命令

ftp> ls

查看當前連接的FTP目錄下有哪些文件。

第二個命令(快捷鍵):Ctrl + Shift + L

Ctrl + Shift + L代表清屏命令

第三個命令:help命令

ftp> help put
put             send one file

第四個命令:put與get命令

ftp> put 本地文件路徑+名稱	 上傳
ftp> get 遠程文件路徑+名稱	 下載

第五個命令:批量上傳或下載多個文件

ftp> mput 文件名稱1 文件名稱2 文件名稱3 ...
ftp> mget 文件名稱1 文件名稱2 文件名稱3 ...

第六個命令:prompt屏蔽批量輸出信息

ftp> prompt
Interactive mode on.	=> 開啟提示ftp> prompt
Interactive mode off.	=> 關閉提示

第七個命令:quit命令

ftp> quit

☆ lftp工具:批量操作

# lftp 用戶名稱@遠程IP地址
Password:用戶名稱對應的密碼

求幫助:help

lftp> help

針對某個命令求幫助:help + 命令

lftp> help mirror

案例:批量上傳(把shop文件夾上傳到FTP服務器端)

lftp> mirror -R 本地文件夾名稱

案例:批量下載(把整個FTP下載到本地)

lftp> mirror 遠程FTP路徑

2、FTP知識點補充

☆ FTP訪問對象控制(黑名單)

ftpusers 黑名單

user_list 默認是黑名單(可以成為白名單)

案例:默認情況下,root賬號是否允許登錄FTP服務器

[root@localhost ftp]# ftp 10.1.1.10
Connected to 10.1.1.10 (10.1.1.10).
220 (vsFTPd 3.0.2)
Name (10.1.1.10:root): root
530 Permission denied.
Login failed.
ftp>
原因:root用戶在黑名單里/etc/vsftpd/ftpusers黑名單中

案例:ftpusers 與 user_list黑名單效果不同點

ftpusers:
[root@localhost ftp]# ftp 10.1.1.10
Connected to 10.1.1.10 (10.1.1.10).
220 (vsFTPd 3.0.2)
Name (10.1.1.10:root): kefu
331 Please specify the password.
Password:
530 Login incorrect.			=>       ftpusers被禁用,可以輸入密碼,返回530
Login failed.user_list:
[root@localhost ftp]# ftp 10.1.1.10
Connected to 10.1.1.10 (10.1.1.10).
220 (vsFTPd 3.0.2)
Name (10.1.1.10:root): kefu
530 Permission denied.
Login failed.
原因:默認情況下user_list文件也是黑名單,如果在該文件里直接拒絕,不給輸入密碼的機會。

案例:user_list可以從黑名單變成白名單(允許某個用戶登錄FTP系統服務器)

user_list要成為白名單,需要再配置文件里增加:
userlist_deny=NO
注意:如果user_list是白名單,那么必須在該文件里的用戶才可以訪問ftp服務。

總結:

  1. 用戶在ftpusers文件中,那么用戶不能訪問ftp服務器
  2. 用戶在user_list文件中,如果該文件是白名單,那么在該文件中的用戶可以訪問ftp服務
  3. 如果user_list文件是白名單,用戶即在ftpusers中又在user_list中,那么ftpusers拒絕優先

☆ FTP網絡訪問控制(限IP+限速)

FTP必須支持tcp_wrappers

/etc/hosts.allow 允許

/etc/hosts.deny 拒絕

☆ 限制IP地址

案例:如何禁止某個IP或IP網段

# vim /etc/hosts.deny
服務程序:主機
vsftpd:all                        全部拒絕
vsftpd:all EXCEPT 192.168.0.2    拒絕所有除了192.168.0.2  
vsftpd:192.168.0.254			  拒絕單個IP地址vsftpd:192.168.0.254:allow  
//以上是允許192.168.0.254訪問,類似/etc/hosts.allow里增加vsftpd:192.168.0.254vsftpd:192.168.0.0/255.255.255.0   拒絕某個網段
vsftpd:192.168.0.0/255.255.255.0 EXCEPT 192.168.0.254   拒絕某個網段,但是除了某個ip地址
注意:子網掩碼不支持192.168.0.0/24這種寫法vim /etc/hosts.deny
vsftpd,sshd:10.1.1.1

案例:如何判斷某個服務是否支持tcp_wrappers

1)./configure –enable-libwrap 表示支持tcp_wrappers訪問控制(源碼安裝看配置項)

2)rpm安裝(也包括yum安裝)

# ldd命令 +二進制程序,查詢某個軟件包含哪些模塊

案例:查詢vsftpd與sshd是否支持tcp_wrappers

# ldd /usr/sbin/vsftpd |grep libwrap*libwrap.so.0 => /lib64/libwrap.so.0 (0x00007f2956480000)# ldd /usr/sbin/sshd |grep libwrap*libwrap.so.0 => /lib64/libwrap.so.0 (0x00007f015ff29000)

☆ 限制FTP流量

# vim /etc/vsftpd/vsftpd.conf
local_max_rate=0
0代表不限速local_max_rate=數值 + 字節

3、使用第三方平臺視頻

第一步:在Linux電腦中安裝httpd(阿帕奇)

# yum install httpd -y

第二步:啟動httpd

# systemctl start httpd

第三步:在/var/www/html項目目錄中創建一個demo.html文件

# vim /var/www/html/demo.html
<iframe height=498 width=815 src='https://player.youku.com/embed/XNDU4OTM3NzM0NA==' frameborder=0 'allowfullscreen'></iframe>

二、NFS服務概述

1、任務背景

① 搭建NFS服務器(用于靜態資源的存儲如圖片、視頻、附件)

② 使用mount指定對NFS服務器進行掛載,掛載到Web服務器中

③ 對NFS服務器中的靜態資源進行實時備份(inotify + rsync)

2、環境準備

編號 主機名稱FQDN IP地址 作用
1 web.itcast.cn 10.1.1.11 Web服務器
2 nfs.itcast.cn 10.1.1.12 NFS服務器
3 backup.itcast.cn 10.1.1.13 Backup服務器

第一步:設置計算機的在主機名稱

Web# hostnamectl set-hostname web.itcast.cn
NFS# hostnamectl set-hostname nfs.itcast.cn
Backup# hostnamectl set-hostname backup.itcast.cn

第二步:設置IP地址

# vim /etc/sysconfig/network-scripts/ifcfg-ens33
BOOTPROTO=none
IPADDR=10.1.1.11   /10.1.1.13   /10.1.1.13
NETMASK=255.255.255.0
GATEWAY=10.1.1.2
DNS1=119.29.29.29
DNS2=114.114.114.114UUID必須是唯一的,所以要么刪除,要么更改UUID的值(更改后3位)

第三步:關閉防火墻與SELinux

關閉防火墻
# systemctl stop firewalld
# systemctl disable firewalld關閉SELinux
# setenforce 0
# vim /etc/selinux/config
SELINUX=disabled

第四步:配置YUM源

# yum clean all
# yum mackecache

3、NFS概述

NFS(Network File System)網絡文件系統,主要用于Linux系統上實現文件共享的一種協議,其客戶端主要是Linux

沒有用戶認證機制,且數據在網絡上傳送的時候是明文傳送,一般只能在局域網中使用

支持多節點同時掛載及并發寫入

企業應用:為集群中的web server提供后端存儲(做靜態資源服務器)

4、NFS組成

rpcbind : 負責NFS的數據傳輸,遠程過程調用 tcp/udp協議 端口111

nfs-utils :控制共享哪些文件,權限管理

RPC(Remote Procedure Call Protocol):

遠程過程調用協議,它是一種通過網絡從遠程計算機程序上請求服務,不需要了解底層網絡技術的協議。

5、與NFS相關的軟件包

nfs-utils-1.2.3-26.el6.x86_64 		nfs服務的一個腳本控制工具(服務端與客戶端)
nfs4-acl-tools-0.3.3-6.el6.x86_64	acl 工具包
nfs-utils-lib-1.1.5-4.el6.x86_64  	nfs 庫文件

6、安裝NFS軟件

# yum install rpcbind nfs-utils -y# rpm -q rpcbind
# rpm -aq|grep ^nfs

7、NFS的配置文件

# vim /etc/exports
共享目錄   共享選項
/share    *(ro,sync)
/public	  *(ro,sync)共享主機:
*   :代表所有主機
192.168.0.0/24:代表共享給某個網段192.168.0.1 ~ 192.168.0.254
192.168.0.0/24(rw) 192.168.1.0/24(ro) :代表共享給不同網段
192.168.0.254:共享給某個IP
*.itcast.cn:代表共享給某個域下的所有主機共享選項:
ro:只讀
rw:讀寫
sync:實時同步,直接寫入磁盤(安全性最高)
async:異步,先緩存數據在內存然后再同步磁盤(效率最高,但是有丟失文件風險)
anonuid:設置訪問nfs服務的用戶的uid,uid需要在/etc/passwd中存在
anongid:設置訪問nfs服務的用戶的gid
root_squash :默認選項 root用戶創建的文件的屬主和屬組都變成nfsnobody,其他人nfs-server端是它自己,client端是nobody。(訪問NFS服務器時,映射為匿名賬號)
no_root_squash:root用戶創建的文件屬主和屬組還是root,其他人server端是它自己uid,client端是nobody。(訪問NFS服務器時,映射為root管理員賬號)
all_squash: 不管是root還是其他普通用戶創建的文件的屬主和屬組都是nfsnobody說明:
anonuid和anongid參數和all_squash一起使用。
all_squash表示不管是root還是其他普通用戶從客戶端所創建的文件在服務器端的擁有者和所屬組都是nfsnobody;服務端為了對文件做相應管理,可以設置anonuid和anongid進而指定文件的擁有者和所屬組

三、NFS任務解決方案

1、搭建NFS服務器

第一步:安裝軟件

# yum install rpcbind nfs-utils -y

第二步:創建一個共享目錄,如/share

# mkdir /share

2、編寫NFS主配置文件

# vim /etc/exports
共享目錄   共享選項
/share    10.1.1.0/24(rw,sync)

3、啟動相關的NFS服務

# systemctl start rpcbind
# systemctl start nfs# ss -naltp |grep 111       111端口

4、搭建Web服務器

# yum install httpd -y
# systemctl start httpd

當Apache軟件啟動完畢后,會自動占用計算機的80端口。

80端口指向Web服務器的目錄 => /var/www/html

所以項目源代碼都可以直接存放于/var/www/html目錄下

# echo "NFS實戰演練" > /var/www/html/index.html

5、在Web服務器中掛載NFS

# mkdir /var/www/html/media# mount -t nfs 10.1.1.12:/share /var/www/html/media 
或
# mount.nfs 10.1.1.12:/share /var/www/html/media# df -h
Filesystem               Size  Used Avail Use% Mounted on
/dev/mapper/centos-root   17G  5.1G   12G  30% /
devtmpfs                 894M     0  894M   0% /dev
tmpfs                    910M     0  910M   0% /dev/shm
tmpfs                    910M   11M  900M   2% /run
tmpfs                    910M     0  910M   0% /sys/fs/cgroup
/dev/sda1               1014M  179M  836M  18% /boot
tmpfs                    182M   28K  182M   1% /run/user/1000
/dev/sr0                 4.3G  4.3G     0 100% /run/media/itheima/CentOS 7 x86_64
tmpfs                    182M     0  182M   0% /run/user/0
10.1.1.12:/share          17G  5.1G   12G  30% /var/www/html/media如果客戶端沒有安裝nfs工具可能導致掛載失敗:
yum -y install nfs-utils nfs-utils-lib nfs4-acl-tools

6、上傳aws.mp4視頻到NFS服務器的/share

第一步:使用MX上傳aws.mp4到/share目錄(NFS服務器)

第二步:在Web服務器中,ll /var/www/html/media目錄

# ll /var/www/html/media
aws.mp4

7、在html網頁中調用aws.mp4文件

# vim /var/www/html/index.html
<video width="800" height="450" controls><source src="media/aws.mp4">
</video>

8、對NFS服務器進行實時備份

NFS服務器:/share目錄有變化,馬上rsync進行同步Backup備份服務器的/backup目錄

第一步:安裝inotify工具(NFS服務器)

# tar xf inotify-tools-3.14.tar.gz
# cd inotify-tools-3.14
# ./configure && make && make install

第二步:編寫rsync.sh腳本,監控/share目錄的變化

# vim rsync.sh
#!/bin/bash
/usr/local/bin/inotifywait -mrq -e modify,delete,create,attrib,move /share |while read events
dorsync -a --delete /share/ 10.1.1.13:/backup/echo "`date +%F\ %T`出現事件$events" >> /var/log/rsync.log 2>&1
done

第三步:給rsync添加x權限

# chmod +x rsync.sh

第四步:把NFS服務器與Backup備份服務器進行免密登錄

# ssh-keygen
# ssh-copy-id root@10.1.1.13

第五步:在Backup服務器中創建一個/backup目錄,用于實時備份

# mkdir /backup

第六步:在NFS服務器中執行rsync腳本

# nohup ./rsync.sh &

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/39963.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/39963.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/39963.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

electron教程(一)創建項目

一、方式① 根據官網描述將electron/electron-quick-start項目克隆下來并啟動 electron/electron-quick-start地址&#xff1a; GitHub - electron/electron-quick-start: Clone to try a simple Electron app git clone https://github.com/electron/electron-quick-start…

代碼隨想錄Day71(圖論Part07)

53.尋寶 題目&#xff1a;53. 尋寶&#xff08;第七期模擬筆試&#xff09; (kamacoder.com) 思路&#xff1a;首先&#xff0c;我不知道怎么存這樣的東西&#xff0c;用三維數組嗎&#xff0c;沒搞懂&#xff0c;果斷放棄 prim算法實現 import java.util.*;class Main {publi…

LeetCode 3099.哈沙德數:計算一個數十進制下各位之和

【LetMeFly】3099.哈沙德數&#xff1a;計算一個數十進制下各位之和 力扣題目鏈接&#xff1a;https://leetcode.cn/problems/harshad-number/ 如果一個整數能夠被其各個數位上的數字之和整除&#xff0c;則稱之為 哈沙德數&#xff08;Harshad number&#xff09;。給你一個…

Github 2024-06-30開源項目日報 Top10

根據Github Trendings的統計,今日(2024-06-30統計)共有10個項目上榜。根據開發語言中項目的數量,匯總情況如下: 開發語言項目數量C#項目1Python項目1PowerShell項目1JavaScript項目1Jupyter Notebook項目1TypeScript項目1PHP項目1C++項目1Swift項目1Rust項目1shadcn/ui: 開源…

Laravel介紹與學習入門

Laravel 是一款優雅且功能強大的 PHP Web 開發框架&#xff0c;它被廣泛認為是 PHP 領域內構建現代 Web 應用程序的最佳選擇之一。Laravel 提供了一套簡潔、富有表現力的語法&#xff0c;使得開發者能夠高效地編寫清晰、可維護的代碼。以下是 Laravel 的一些關鍵特點和入門概念…

實戰項目——用Java實現圖書管理系統

前言 首先既然是管理系統&#xff0c;那咱們就要實現以下這幾個功能了--> 分析 1.首先是用戶分為兩種&#xff0c;一個是管理員&#xff0c;另一個是普通用戶&#xff0c;既如此&#xff0c;可以定義一個用戶類&#xff08;user&#xff09;&#xff0c;在定義管理員類&am…

DMA學習筆記

參考文章 https://blog.csdn.net/as480133937/article/details/104927922 DMA簡介 DMA&#xff0c;全稱Direct Memory Access&#xff0c;即直接存儲器訪問。DMAC 即 DMA 控制器&#xff0c;提供了一種硬件的數據傳輸方式&#xff0c;無需 CPU 的介入&#xff0c;可以處理外…

7.6、指針和數組

代碼 #include <iostream> using namespace std;int main() {//指針和數組//利用指針訪問數組中的元素int arr[10] { 1,2,3,4,5,6,7,8,9,10 };cout << "第一個元素為&#xff1a;" << arr[0] << endl;int * p arr;//arr就是數組首地址co…

kaggle量化賽金牌方案(第七名解決方案)(下)

— 無特征工程的神經網絡模型&#xff08;得分 5.34X&#xff09; 比賽進入最后階段&#xff0c;現在是時候深入了解一些關于神經網絡模型的見解了。由于 Kaggle 討論區的需求&#xff0c;我在這里分享兩個神經網絡模型。第一個是 LSTM 模型&#xff0c;第二個是卷積網絡&…

華為機試HJ6質數因子

華為機試HJ6質數因子 題目&#xff1a; 按照從小到大輸出給定數值的質數因子 想法&#xff1a; 遍歷判斷從小到大的數值是否是給定數值的質數因子&#xff0c;是就直接輸出&#xff0c;該方法輸出的數值已經排序好了 import mathinput_number int(input())# 循環判斷提取…

鴻翼FEX文件安全交換系統,打造安全高效的文件擺渡“綠色通道”

隨著數字經濟時代的到來&#xff0c;數據已成為最有價值的生產要素&#xff0c;是企業的重要資產之一。隨著數據流動性的增強&#xff0c;數據安全問題也隨之突顯。尤其是政務、金融、醫療和制造業等關鍵領域組織和中大型企業&#xff0c;面臨著如何在保障數據安全的同時&#…

llm學習-3(向量數據庫的使用)

1&#xff1a;數據讀取和加載 接著上面的常規操作 加載環境變量---》獲取所有路徑---》加載文檔---》切分文檔 代碼如下&#xff1a; import os from dotenv import load_dotenv, find_dotenvload_dotenv(find_dotenv()) # 獲取folder_path下所有文件路徑&#xff0c;儲存在…

【力扣 - 每日一題】3099. 哈沙德數 | 模擬 (Go/C++)

題目內容 如果一個整數能夠被其各個數位上的數字之和整除&#xff0c;則稱之為 哈沙德數&#xff08;Harshad number&#xff09;。給你一個整數 x 。如果 x 是 哈沙德數 &#xff0c;則返回 x 各個數位上的數字之和&#xff0c;否則&#xff0c;返回 -1 。 示例 1&#xff1…

C++Primer Plus 第十四章代碼重用:編程練習,第3題

CPrimer Plus 第十四章代碼重用&#xff1a;編程練習,第3題 編程練習,第3題 提示&#xff1a;寫完文章后&#xff0c;目錄可以自動生成&#xff0c;如何生成可參考右邊的幫助文檔 文章目錄 CPrimer Plus 第十四章代碼重用&#xff1a;編程練習,第3題前言定義一個 QueueTp 模板…

中國國產AI芯片的崛起

一、CUDA的壟斷 當討論半導體行業面臨的挑戰時&#xff0c;你首先想到的是什么&#xff1f;光刻機&#xff1f;3納米或者5納米技術&#xff1f;我們無法生產的完美方形芯片&#xff1f;是的&#xff0c;但也不完全是。 人們經常把半導體芯片歸類為硬件產業&#xff0c;但實際上…

【大模型LLM面試合集】大語言模型基礎_llm概念

1.llm概念 1.目前 主流的開源模型體系 有哪些&#xff1f; 目前主流的開源LLM&#xff08;語言模型&#xff09;模型體系包括以下幾個&#xff1a; GPT&#xff08;Generative Pre-trained Transformer&#xff09;系列&#xff1a;由OpenAI發布的一系列基于Transformer架構…

Linux常用查看日志方法-如使用less查看日志文件

在Linux系統中&#xff0c;查看日志文件是常見的運維任務之一。less命令是一個非常強大的工具&#xff0c;用于查看長文本文件&#xff0c;例如日志文件。它允許你按頁瀏覽文件&#xff0c;并提供了一些便捷的導航和搜索功能。 使用less查看日志文件 假設你有一個日志文件/va…

linux環境安裝elasticsearch緩存數據庫和Kibana客戶端

linux環境安裝elasticsearch緩存數據庫&#xff0c;今天我們安裝7.17.18版本&#xff0c;并分析遇到的問題。 一、elasticsearch安裝運行 1、直接下載 wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.17.18-linux-x86_64.tar.gz2、解壓 tar -…

驚艷眼球的視覺盛宴【二】

當晨光初破黎明的靜謐&#xff0c;一片絢爛便悄然鋪展在蔚藍的天際。那一刻&#xff0c;大地蘇醒&#xff0c;萬物復蘇&#xff0c;我們仿佛踏入了一幅活生生的畫卷。霧氣繚繞之中&#xff0c;群山似乎在低語&#xff0c;古樹在輕搖&#xff0c;一切都沐浴在柔和而金黃的光芒之…

如何理解vuex中的每個概念(通俗易懂)

文章目錄 1. 什么是 Vuex&#xff1f;2. Vuex 的四個核心概念 1. 什么是 Vuex&#xff1f; 想象一下&#xff0c;你家里有一個大冰箱&#xff0c;所有家庭成員都可以訪問這個冰箱。每個人都可以往里面放東西&#xff0c;也可以從里面拿東西。這個冰箱就像是 Vuex 中的“狀態”…