Linux 进阶笔记(一)
這幾篇博文主要記錄博主的Linux 學(xué)習(xí)之路,用作以后回顧和參考。大家可以選擇略過也可以作參考。
(一)Linux 初步筆記
(二)Linux 進(jìn)階筆記(一)
(三)Linux 進(jìn)階筆記(二)
(四)Shell 編程進(jìn)階筆記
Linux 網(wǎng)絡(luò)管理
OSI(開放系統(tǒng)互聯(lián)(Open System Interconnection))的設(shè)計目的:
??????OSI模型的設(shè)計目的是成為一個所有銷售商都能實(shí)現(xiàn)的開放網(wǎng)路模型,來克服使用眾多私有網(wǎng)絡(luò)模型所帶來的困難和低效性。OSI是在一個備受尊敬的國際標(biāo)準(zhǔn)團(tuán)體的參與下完成的,這個組織就是ISO(國際標(biāo)準(zhǔn)化組織)。
(一)OSI 七層模型
- 物理層(physical layer):物理層是OSI分層結(jié)構(gòu)體系中最重要、最基礎(chǔ)的一層,它建立在傳輸媒介基礎(chǔ)上,起建立、維護(hù)和取消物理連接作用,實(shí)現(xiàn)設(shè)備之間的物理接口。物理層只接收和發(fā)送一串比特(bit)流,不考慮信息的意義和信息結(jié)構(gòu)。物理層包括對連接到網(wǎng)絡(luò)上的設(shè)備描述其各種機(jī)械的、電氣的、功能的規(guī)定。
- 數(shù)據(jù)鏈路層(date link layer):在物理層提供比特流服務(wù)的基礎(chǔ)上,將比特信息封裝成數(shù)據(jù)幀F(xiàn)rame,起到在物理層上建立、撤銷、標(biāo)識邏輯鏈接和鏈路復(fù)用以及差錯校驗(yàn)等功能。通過使用接收系統(tǒng)的硬件地址或物理地址來尋址。建立相鄰結(jié)點(diǎn)之間的數(shù)據(jù)鏈路,通過差錯控制提供數(shù)據(jù)幀(Frame)在信道上無差錯的傳輸,同時為其上面的網(wǎng)絡(luò)層提供有效的服務(wù)。
- 網(wǎng)絡(luò)層(network layer):網(wǎng)絡(luò)層也稱通信子網(wǎng)層,是高層協(xié)議之間的界面層,用于控制通信子網(wǎng)的操作,是通信子網(wǎng)與資源子網(wǎng)的接口。在計算機(jī)網(wǎng)絡(luò)中進(jìn)行通信的兩個計算機(jī)之間可能會經(jīng)過很多個數(shù)據(jù)鏈路,也可能還要經(jīng)過很多通信子網(wǎng)。網(wǎng)絡(luò)層的任務(wù)就是選擇合適的網(wǎng)間路由和交換結(jié)點(diǎn),確保數(shù)據(jù)及時傳送。網(wǎng)絡(luò)層將解封裝數(shù)據(jù)鏈路層收到的幀,提取數(shù)據(jù)包,包中封裝有網(wǎng)絡(luò)層包頭,其中含有邏輯地址信息源站點(diǎn)和目的站點(diǎn)地址的網(wǎng)絡(luò)地址。
- 傳輸層(transport layer):傳輸層建立在網(wǎng)絡(luò)層和會話層之間,實(shí)質(zhì)上它是網(wǎng)絡(luò)體系結(jié)構(gòu)中高低層之間銜接的一個接口層。用一個尋址機(jī)制來標(biāo)識一個特定的應(yīng)用程序(端口號)。傳輸層不僅是一個單獨(dú)的結(jié)構(gòu)層,它還是整個分層體系協(xié)議的核心,沒有傳輸層整個分層協(xié)議就沒有意義。傳輸層的數(shù)據(jù)單元是由數(shù)據(jù)組織成的數(shù)據(jù)段(segment)這個層負(fù)責(zé)獲取全部信息,因此,它必須跟蹤數(shù)據(jù)單元碎片、亂序到達(dá)的數(shù)據(jù)包和其它在傳輸過程中可能發(fā)生的危險。
- 會話層(session layer):這一層也可以稱為會晤層或?qū)υ拰?#xff0c;在會話層及以上的高層次中,數(shù)據(jù)傳送的單位不再另外命名,統(tǒng)稱為報文。會話層不參與具體的傳輸,它提供包括訪問驗(yàn)證和會話管理在內(nèi)的建立和維護(hù)應(yīng)用之間通信的機(jī)制。如服務(wù)器驗(yàn)證用戶登錄便是由會話層完成的。
- 表示層(presentation layer):表示層向上對應(yīng)用層提供服務(wù),向下接收來自會話層的服務(wù)。表示層是為在應(yīng)用過程之間傳送的信息提供表示方法的服務(wù),它關(guān)心的只是發(fā)出信息的語法與語義。表示層要完成某些特定的功能,主要有不同數(shù)據(jù)編碼格式的轉(zhuǎn)換,提供數(shù)據(jù)壓縮、解壓縮服務(wù),對數(shù)據(jù)進(jìn)行加密、解密。例如圖像格式的顯示,就是由位于表示層的協(xié)議來支持。
- 應(yīng)用層(application layer):網(wǎng)絡(luò)應(yīng)用層是通信用戶之間的窗口,為用戶提供網(wǎng)絡(luò)管理、文件傳輸、事務(wù)處理等服務(wù)。其中包含了若干個獨(dú)立的、用戶通用的服務(wù)協(xié)議模塊。網(wǎng)絡(luò)應(yīng)用層是OSI的最高層,為網(wǎng)絡(luò)用戶之間的通信提供專用的程序。應(yīng)用層的內(nèi)容主要取決于用戶的各自需要,這一層設(shè)計的主要問題是分布數(shù)據(jù)庫、分布計算技術(shù)、網(wǎng)絡(luò)操作系統(tǒng)和分布操作系統(tǒng)、遠(yuǎn)程文件傳輸、電子郵件、終端電話及遠(yuǎn)程作業(yè)登錄與控制等。
PS:圖片與介紹來自百度百科。
(二)TCP/IP 四層模型
- 網(wǎng)絡(luò)接口層:網(wǎng)絡(luò)接口層與OSI 參考模型中的物理層與數(shù)據(jù)鏈路層相對應(yīng)。它負(fù)責(zé)監(jiān)視數(shù)據(jù)在主機(jī)和網(wǎng)絡(luò)之間的交換。事實(shí)上,TCP/IP 本身未定義該層的協(xié)議,而由參與互連的各網(wǎng)絡(luò)使用自己的物理層和數(shù)據(jù)鏈路層協(xié)議,然后與TCP/IP 的網(wǎng)絡(luò)接入層進(jìn)行連接。地址解析協(xié)議(ARP) 就是工作在此層,及OSI 參考模型的數(shù)據(jù)鏈路層。
- 網(wǎng)際層:網(wǎng)際層對于OSI 參考模型的網(wǎng)絡(luò)層,主要解決主機(jī)到主機(jī)的通信問題。它所包含的協(xié)議設(shè)計數(shù)據(jù)包在整個網(wǎng)絡(luò)上的邏輯傳輸。該層有三個主要的協(xié)議:網(wǎng)際協(xié)議(IP)、互聯(lián)網(wǎng)組管理協(xié)議(IGMP)和互聯(lián)網(wǎng)控制報文協(xié)議(IXMP)。
- 傳輸層:傳輸層對應(yīng)于OSI 參考模型的傳輸層,為應(yīng)用層實(shí)體提供端到端的通信功能,保證了數(shù)據(jù)包的順序傳送及數(shù)據(jù)的完成性。運(yùn)輸層主要有兩個主要的協(xié)議:傳輸控制協(xié)議(TCP)、用戶數(shù)據(jù)報協(xié)議(UDP)。
- 應(yīng)用層:應(yīng)用層對應(yīng)于OSI 參考模型的高層,為用戶提供所需要的各種服務(wù),比如:FTP、Telnet、DNS 等。
(三)TCP/IP 模型與OSI模型 之間的比較
相同點(diǎn):
不同點(diǎn):
TCP/IP 文件傳輸協(xié)議中數(shù)據(jù)封裝的過程:
(四)Linux 下進(jìn)行網(wǎng)絡(luò)配置
ifconfig :-> 查看網(wǎng)絡(luò)狀態(tài)
ifconfig eth0 [ip地址] netmask [子網(wǎng)掩碼]:-> 臨時配置eth0 網(wǎng)卡的IP地址與子網(wǎng)掩碼
setup :-> 進(jìn)入圖形化界面配置IP 地址(在支持該命令的前提下),配置完成后執(zhí)行 “service network restart”命令
Linux 下使用文件永久配置IP 地址:
網(wǎng)卡信息文件:/etc/sysconfig/network-scripts/ifcfg-eth0
?????? 執(zhí)行 “vi /etc/sysconfig/network-scripts/ifcfg-eth0” 命令可以修改網(wǎng)卡信息,該文件中的內(nèi)容如下(藍(lán)色顯示的內(nèi)容表示不需要修改的部分):
主機(jī)名配置文件: /etc/sysconfig/network
DNS 配置文件: /etc/resolv.conf
(五)Linux 下網(wǎng)絡(luò)環(huán)境查看命令
if down [網(wǎng)卡設(shè)備名] :-> 禁用某一個網(wǎng)卡設(shè)備名
ifup [網(wǎng)卡設(shè)備名] :-> 啟用該網(wǎng)卡設(shè)備
netstat [選項(xiàng)] :-> 查看網(wǎng)絡(luò)狀態(tài)
[選項(xiàng)] :
- -t :列出tcp 協(xié)議端口
- -u :列出udp 協(xié)議端口
- -n :不使用域名與服務(wù)名,使用IP 地址和端口號
- -l :僅列出在監(jiān)聽狀態(tài)的網(wǎng)絡(luò)服務(wù)
- -a :列出所有的網(wǎng)絡(luò)連接
netstat -rn :-> 查看網(wǎng)關(guān) 與route -n 同
nslookup [主機(jī)名或ip] :-> 進(jìn)行域名與IP 地址解析
(六)Linux 下網(wǎng)絡(luò)測試命令
ping [IP或域名] -c 3 :->探測指定IP 或域名的網(wǎng)絡(luò)狀況b并指定ping 包的次數(shù)為3
telnet [域名或IP] [端口] :->遠(yuǎn)程管理與端口探測命令
traceroute [域名] :->路由跟蹤命令
traceroute -n [IP] :->使用IP 進(jìn)行路由跟蹤,速度更快
(七)SSH 遠(yuǎn)程管理命令
ssh [用戶名]@ip :->遠(yuǎn)程管理指定的服務(wù)器
scp -r [用戶名]@ip:[遠(yuǎn)程文件路徑] [本地路徑] :->從遠(yuǎn)程服務(wù)器上下載文件到本地(遞歸下載文件)
scp -r [本地文件] [用戶名]@ip:[上傳路徑] :->本地上傳文件到遠(yuǎn)程服務(wù)器
Linux 軟件安裝管理
(一)軟件包分類:①源碼包、②二進(jìn)制包
①優(yōu)點(diǎn):
?????? 開源,如果有足夠的能力可以修改源碼
?????? 可以自由選擇所需要的功能
?????? 軟件是編譯安裝,所以更加穩(wěn)定效率更高
?????? 卸載方便
①缺點(diǎn):
??????安裝步較多,容易出現(xiàn)錯誤
??????編譯時間過長,安裝比二進(jìn)制包時間較長
??????因?yàn)槭蔷幾g安裝,所以在出錯的時候?qū)π率植惶押?
②優(yōu)點(diǎn):
?????? 包管理系統(tǒng)簡單,只通過幾個命令就可以實(shí)現(xiàn)包的安裝,升級與卸載
?????? 安裝速度比源碼包快得多
②缺點(diǎn):
?????? 經(jīng)過編譯,不再可以看到源碼
?????? 功能選擇不如源碼包靈活
?????? 依賴性較強(qiáng)
(二)rpm 命令管理
所有的rpm 包都在系統(tǒng)的光盤中
rmp 包的依賴性:樹形依賴、環(huán)形依賴、模塊依賴
rpm 相關(guān)命令:
rpm -ivh [包全名] :-> rpm 安裝
選項(xiàng):
- -i(install) : 安裝
- -v(verbose) : 顯示詳細(xì)信息
- -h(hash) : 顯示進(jìn)度
rpm -Uvh [包全名]:-> rpm 安裝如果已經(jīng)安裝了軟件包表示更新,沒安裝則執(zhí)行安裝命令
rpm -e [包名] :-> rpm 卸載軟件包
rpm -q [包名] :-> 查詢包是否安裝
rpm-qa :-> 查詢所有已經(jīng)安裝的rpm 包,可以使用管道符幫助查詢
rpm -qi [包名] :-> 查詢安裝的軟件包的信息
rpm -qip [包全名] :-> 查詢未安裝的軟件包的信息
rpm -ql [包名] :-> 查詢rpm 安裝包文件的安裝位置
rpm -qlp [全包名] :-> 查詢未安裝的rpm 包文件將要安裝的位置
rpm -qf [系統(tǒng)文件名] :->查詢系統(tǒng)文件屬于哪個rpm 包
rpm -V [已安裝的包名] :->進(jìn)行包檢驗(yàn),是否與初始安裝的文件一致
rpm2cpio [包全名] | cpio -idv .[文件絕對路徑]:->從rpm 包中提取文件到當(dāng)前文件路徑下,注意.不能省略代表當(dāng)前目錄
(三)yum 在線安裝
yum 在線安裝的好處:將所有的軟件包放到官方的服務(wù)器上,當(dāng)進(jìn)行yum 安裝時,會自動進(jìn)行安裝并解決依賴性的問題。
ls /etc/yum.repos.d/ :->列出所有yum 源文件,默認(rèn)只有CentOS-Base.repo 源文件是生效的
CentOS-Base.repo 源文件中的大概內(nèi)容介紹:
光盤yum 源搭建:
yum 命令:
yum list :-> 查詢所有可用軟件包列表
yum search [關(guān)鍵字] :-> 查詢服務(wù)器上所有和關(guān)鍵字相關(guān)的包
yum -y install [包名] :-> yum 安裝命令
yum -y update [包名] :->安裝包升級,注意:如果不加包名將升級所有包及內(nèi)核
yum -y remove [包名] :-> 卸載安裝包
yum grouplist :-> 列出所有可用的軟件組列表
yum groupinstall [組名] :-> 安裝指定的軟件組
yum groupremove [組名] :-> 刪除指定的軟件組
(四)源碼包安裝
源碼包與rpm 包安裝后的區(qū)別:
??????安裝位置不同;rpm包不建議指定安裝位置,安裝目錄由提供軟件包的作者決定(他們覺得哪個位置下合適就安裝在哪個目錄下,所以提供了 rpm -e [包名] 命令卸載安裝的rpm 包);源碼包建議安裝目錄:/user/local/軟件名,沒有卸載命令,直接刪除安裝目錄。
源碼包的安裝過程(以Apache 為例):
曬一下結(jié)果(嘿嘿嘿):
特殊權(quán)限管理
(一)ACL 權(quán)限
一般的權(quán)限有所有者、所屬組、其他人這三種,當(dāng)這三種滿足不了我們的需求的時候就可以使用ACL權(quán)限。
dumpe2fs -h /dev/sda5 :-> 查看分區(qū)ACL 權(quán)限是否開啟
mount -o remount, acl / :-> 重新掛載根分區(qū),在掛載時加入ACL 權(quán)限
cat /etc/fstab :-> 修改配置文件永久開啟分區(qū)ACL 權(quán)限(在默認(rèn)的情況下是開啟的)
mount -o remount / :-> 修改后重新掛載,使修改生效
setfacl -m u:[用戶名]:[用戶權(quán)限r(nóng)、w、x] [文件] :-> 給指定用戶添加對某個文件的ACL 權(quán)限
setfacl -m g:[組名]:[組權(quán)限r(nóng)、w、x] [文件] :-> 給指定的組添加對某個文件的ACL 權(quán)限
getfacl [文件名]:-> 查看指定文件的ACL 權(quán)限
setfacl -x u:[用戶名] [文件名]:-> 刪除指定用戶的ACL 權(quán)限
setfacl -x g:[組名] [文件名]:-> 刪除指定組的ACL 權(quán)限
setfacl -b [文件名] :-> 刪除文件的所有ACL 權(quán)限
setfacl -m u:[用戶名]:[用戶權(quán)限r(nóng)、w、x] -R [目錄名] :-> 遞歸給目錄及目錄下文件設(shè)定ACL 權(quán)限(要注意權(quán)限溢出的問題)
setfacl -m d:u:[用戶名]:[用戶權(quán)限r(nóng)、w、x] -R [目錄名] :->在該文件目錄下新建的文件都會繼承該文件目錄的ACL 權(quán)限
本地做的一個測試,然后查看其ACL 權(quán)限信息
[root@localhost home]# getfacl test # file: test # owner: zhangsan # group: stu user::rwx user:Jas:r-x group::rwx mask::rwx other::---(二)sudo 權(quán)限
visudo:-> root 用戶下可以通過該命令編輯配置文件賦予普通用戶所沒有的權(quán)限命令
sudo -l :-> 普通用戶執(zhí)行該命令可以查看被賦予的可以執(zhí)行的命令
下面是該配置文件中的一條語句:
root ALL=(ALL) ALL [1] [2] [3] [4] [1]:表示用戶名 [2]:被管理主機(jī)的地址 [3]:可用的身份 [4]授權(quán)命令(注意權(quán)限命令最好是絕對路徑)%wheel[表示組名] ALL=(ALL) ALL (同上)舉例(賦予某個用戶關(guān)機(jī)的命令): ①:執(zhí)行"visudo" 命令,在該配置文件中添加一行數(shù)據(jù) ②:-[用戶名] ALL=(ALL) /sbin/shutdown -r now ③:普通用戶執(zhí)行 sudo /sbin/shutdown -r now 命令即可(三)SetUID
SetUID 的功能:
??????一:只有可執(zhí)行的二進(jìn)制程序才可以是指SetUID
??????二:命令執(zhí)行者要對程序有可執(zhí)行(x)權(quán)限
??????三:命令執(zhí)行者在執(zhí)行的時候會切換身份從而具備執(zhí)行的條件(這個身份一般是root)
??????四: SetUID 權(quán)限只有在程序執(zhí)行的過程中有效,也就意味著身份只有在執(zhí)行特定命令的時候才會改變
以用戶修改密碼為例:
??????所有的用戶密碼都保存在/etc/shadow 文件中,通過查看基本權(quán)限可以看出普通用戶對密碼不具備的任何權(quán)限,但是在查看用戶密碼命令時,普通用戶有著可讀可執(zhí)行的權(quán)限。再看前面的權(quán)限詳細(xì)信息,有一個s,所以普通用戶在進(jìn)行修改密碼的時候會切換到root 用戶,從而獲得修改密碼的權(quán)限,但是在密碼修改完成后會失去root 權(quán)限變成普通用戶的權(quán)限。
SetUID 相關(guān)命令:
chmod 4775 [文件名]:-> 設(shè)置SetUID 的命令
chmod u+s [文件名] :-> 同上
chmod 0775 [文件名]:-> 取消etUID
chmod u-s [文件名] :->取消用戶文件的SetUID
PS:除了系統(tǒng)默認(rèn)的SetUID 之外最好不要設(shè)置。
(四)SetGID
SetUID 針對文件的功能:
??????一:只有可執(zhí)行的二進(jìn)制文件才能設(shè)置SetGID 權(quán)限
??????二:命令執(zhí)行者要對該文件有x 權(quán)限
??????三:程序在執(zhí)行的時候用戶組的身份升級為該程序文件所屬組的身份
??????四:只有在執(zhí)行的過程中有效
以用戶執(zhí)行l(wèi)ocate 命令為例:
??????從下面可以看出普通用戶不具有l(wèi)ocate 命令的任何權(quán)限,之所以普通用戶可以執(zhí)行l(wèi)ocate 命令,是因?yàn)橛脩粼趫?zhí)行l(wèi)ocate 命令的時候會切換自己的用戶組為slocate 組,從而獲得執(zhí)行該命令的權(quán)限,但是在執(zhí)行完命令之后,用戶的組身份又會變成自己的所屬組。
SetUID 針對目錄的功能:
??????一:普通用戶必須對目錄具有r 、x 權(quán)限才可以進(jìn)入到該目錄并查看該目錄下的文件
??????二:普通用戶在這個目錄下所屬組的身份會變成該目錄的所屬組
??????三:若普通用戶對此目錄擁有w 權(quán)限時,當(dāng)普通用戶在該目錄下創(chuàng)建文件時,該文件默認(rèn)的所屬組會變成該文件目錄的所屬組
(五)Sticky BIT
Sticky BIT 粘著位作用
??????一:粘著位只對當(dāng)前目錄有效
??????二:普通用戶對該目錄至少擁有w 權(quán)限一般是有7 權(quán)限
??????三:如果沒有粘著位,由于普通用戶擁有w 權(quán)限,所以刪除該目錄下的所有文件,包括其他用戶創(chuàng)建的文件。一旦賦予了粘著位,除了root 用戶可以刪除所有文件,普通用戶就算擁有w 權(quán)限,也只能刪除自己創(chuàng)建的文件,但是不能刪除其他用戶創(chuàng)建的文件
粘著位相關(guān)命令:
chmod 1775 [目錄名]:-> 設(shè)置粘著位
chmod o+t [目錄名]:-> 同上
chmod 0775 [目錄名]:-> 取消粘著位
chmod o-t [目錄名] :-> 同上
(六)不可改變的權(quán)限
相關(guān)命令:
chattr [+-=][選項(xiàng)] [文件或目錄]:->設(shè)置某些不可改變的權(quán)限
[選項(xiàng)]:
- i(insert) : 如果對文件設(shè)置 i 屬性,那么不允許對文件進(jìn)行刪除、改名、也不能添加和修改文件中的數(shù)據(jù);如果對目錄設(shè)置i 屬性,那么只能修改目錄下的文件數(shù)據(jù),但是不允許刪除和創(chuàng)建文件
- a(append) :如果對文件設(shè)置a 屬性,那么只能在文件中添加數(shù)據(jù),但是不能修改也不能刪除數(shù)據(jù),可以使用echo 命令添加數(shù)據(jù);如果對目錄設(shè)置a 屬性,那么只允許在目錄中建立和修改文件,但是不允許修改
總結(jié)
以上是生活随笔為你收集整理的Linux 进阶笔记(一)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 没有信用卡怎么借钱
- 下一篇: linux下桥接模式设置静态IP实现上网