版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
Linux網(wǎng)絡(luò)操作系統(tǒng)項(xiàng)目教程
(RHEL7.4/CentOS7.4)(第3版)人民郵電出版社|楊云主編項(xiàng)目導(dǎo)入職業(yè)能力目標(biāo)和要求理解Linux文件系統(tǒng)結(jié)構(gòu)。能夠進(jìn)行Linux系統(tǒng)的文件權(quán)限管理,熟悉磁盤(pán)和文件系統(tǒng)管理工具。掌握Linux系統(tǒng)權(quán)限管理的應(yīng)用。
Linux系統(tǒng)的網(wǎng)絡(luò)管理員需要學(xué)習(xí)Linux文件系統(tǒng)和磁盤(pán)管理。尤其對(duì)于初學(xué)者來(lái)說(shuō),文件的權(quán)限與屬性是學(xué)習(xí)Linux的一個(gè)相當(dāng)重要的關(guān)卡,如果沒(méi)有這部分的知識(shí)儲(chǔ)備,那么當(dāng)你遇到“Permissiondeny”的錯(cuò)誤提示時(shí)將會(huì)一籌莫展。項(xiàng)目四配置與管理文件系統(tǒng)項(xiàng)目四配置與管理文件系統(tǒng)4.1全面理解文件系統(tǒng)與目錄4.2管理Linux文件權(quán)限4.3修改文件與目錄的默認(rèn)權(quán)限和隱藏權(quán)限4.4文件訪問(wèn)控制列表4.5企業(yè)實(shí)戰(zhàn)與應(yīng)用4.6項(xiàng)目實(shí)錄4.1任務(wù)1全面理解文件系統(tǒng)與目錄4.1.1子任務(wù)1認(rèn)識(shí)文件系統(tǒng)
文件系統(tǒng)(FileSystem)是磁盤(pán)上有特定格式的一片區(qū)域,操作系統(tǒng)利用文件系統(tǒng)保存和管理文件。
用戶在硬件存儲(chǔ)設(shè)備中執(zhí)行的文件建立、寫(xiě)入、讀取、修改、轉(zhuǎn)存與控制等操作都是依靠文件系統(tǒng)來(lái)完成的。文件系統(tǒng)的作用是合理規(guī)劃硬盤(pán),以保證用戶正常的使用需求。Linux系統(tǒng)支持?jǐn)?shù)十種的文件系統(tǒng),而最常見(jiàn)的文件系統(tǒng)如下所示。(2)Ext4:Ext3的改進(jìn)版本,作為RHEL6系統(tǒng)中的默認(rèn)文件管理系統(tǒng),它支持的存儲(chǔ)容量高達(dá)1EB(1EB=1
073
741
824GB),且能夠有無(wú)限多的子目錄。另外,Ext4文件系統(tǒng)能夠批量分配block塊,從而極大地提高了讀寫(xiě)效率。(3)XFS:是一種高性能的日志文件系統(tǒng),而且是RHEL7中默認(rèn)的文件管理系統(tǒng)。它的優(yōu)勢(shì)在發(fā)生意外宕機(jī)后顯得尤其明顯,即可以快速地恢復(fù)可能被破壞的文件,而且強(qiáng)大的日志功能只用花費(fèi)極低的計(jì)算和存儲(chǔ)性能。它最大可支持的存儲(chǔ)容量為18EB,這幾乎滿足了所有需求。RHEL7系統(tǒng)中一個(gè)比較大的變化就是使用了XFS作為文件系統(tǒng),XFS文件系統(tǒng)可支持高達(dá)18EB的存儲(chǔ)容量。(1)Ext3:是一款日志文件系統(tǒng),能夠在系統(tǒng)異常宕機(jī)時(shí)避免文件系統(tǒng)資料丟失,并能自動(dòng)修復(fù)數(shù)據(jù)的不一致與錯(cuò)誤。然而,當(dāng)硬盤(pán)容量較大時(shí),所需的修復(fù)時(shí)間也會(huì)很長(zhǎng),而且也不能百分之百地保證資料不會(huì)丟失。它會(huì)把整個(gè)磁盤(pán)的每個(gè)寫(xiě)入動(dòng)作的細(xì)節(jié)都預(yù)先記錄下來(lái),以便在發(fā)生異常宕機(jī)后能回溯追蹤到被中斷的部分,然后嘗試進(jìn)行修復(fù)。日常在硬盤(pán)需要保存的數(shù)據(jù)實(shí)在太多了,因此Linux系統(tǒng)中有一個(gè)名為superblock的“硬盤(pán)地圖”。Linux只是把每個(gè)文件的權(quán)限與屬性記錄在inode中,而且每個(gè)文件占用一個(gè)獨(dú)立的inode表格。該表格的大小默認(rèn)為128字節(jié),里面記錄著如下信息。該文件的訪問(wèn)權(quán)限(read、write、execute)。該文件的所有者與所屬組(owner、group)。該文件的大?。╯ize)。該文件的創(chuàng)建或內(nèi)容修改時(shí)間(ctime)。該文件的最后一次訪問(wèn)時(shí)間(atime)。該文件的修改時(shí)間(mtime)。文件的特殊權(quán)限(SUID、SGID、SBIT)。該文件的真實(shí)數(shù)據(jù)地址(point)。
文件的實(shí)際內(nèi)容則保存在block塊中(大小可以是1KB、2KB或4KB),一個(gè)inode的默認(rèn)大小僅為128B(Ext3),記錄一個(gè)block則消耗4B。當(dāng)文件的inode被寫(xiě)滿后,Linux系統(tǒng)會(huì)自動(dòng)分配出一個(gè)block塊,專(zhuān)門(mén)用于像inode那樣記錄其他block塊的信息,這樣把各個(gè)block塊的內(nèi)容串到一起,就能夠讓用戶讀到完整的文件內(nèi)容了。
對(duì)于存儲(chǔ)文件內(nèi)容的block塊,有下面兩種常見(jiàn)情況(以4KB的block大小為例進(jìn)行說(shuō)明)。情況1:文件很?。?KB),但依然會(huì)占用一個(gè)block,因此會(huì)潛在地浪費(fèi)3KB。情況2:文件很大(5KB),那么會(huì)占用兩個(gè)block(5KB
4KB后剩下的1KB也要占用一個(gè)block)。
計(jì)算機(jī)系統(tǒng)在發(fā)展過(guò)程中產(chǎn)生了眾多的文件系統(tǒng),為了使用戶在讀取或?qū)懭胛募r(shí)不用關(guān)心底層的硬盤(pán)結(jié)構(gòu),Linux內(nèi)核中的軟件層為用戶程序提供了一個(gè)VFS(VirtualFileSystem,虛擬文件系統(tǒng))接口,這樣用戶實(shí)際上在操作文件時(shí)就是統(tǒng)一對(duì)這個(gè)虛擬文件系統(tǒng)進(jìn)行操作了。圖4-1所示為VFS的架構(gòu)示意圖。圖4-1VFS的架構(gòu)示意圖4.1.2子任務(wù)2Linux文件系統(tǒng)目錄結(jié)構(gòu)
在Linux系統(tǒng)中,目錄、字符設(shè)備、塊設(shè)備、套接字、打印機(jī)等都被抽象成了文件:Linux系統(tǒng)中一切都是文件。想要找到一個(gè)文件,我們要依次進(jìn)入該文件所在的磁盤(pán)分區(qū)(假設(shè)這里是D盤(pán)),然后在進(jìn)入該分區(qū)下的具體目錄,最終找到這個(gè)文件。
在Linux系統(tǒng)中并不存在C/D/E/F等盤(pán)符,Linux系統(tǒng)中的一切文件都是從“根(/)”目錄開(kāi)始的,并按照文件系統(tǒng)層次化標(biāo)準(zhǔn)(FilesystemAierarchyStandard,F(xiàn)HS)采用樹(shù)形結(jié)構(gòu)來(lái)存放文件,以及定義了常見(jiàn)目錄的用途。Linux系統(tǒng)中的文件和目錄名稱(chēng)是嚴(yán)格區(qū)分大小寫(xiě)的。例如,root、rOOt、Root、rooT均代表不同的目錄,并且文件名稱(chēng)中不得包含斜杠(/)。Linux系統(tǒng)中的文件存儲(chǔ)結(jié)構(gòu)如圖4-2所示。圖4-2Linux系統(tǒng)中的文件存儲(chǔ)結(jié)構(gòu)在Linux系統(tǒng)中,最常見(jiàn)的目錄以及所對(duì)應(yīng)的存放內(nèi)容如表4-1所示。目錄名稱(chēng)應(yīng)放置文件的內(nèi)容/Linux文件的最上層根目錄/boot開(kāi)機(jī)所需文件—內(nèi)核、開(kāi)機(jī)菜單以及所需配置文件等/dev以文件形式存放任何設(shè)備與接口/etc配置文件/home用戶家目錄/binBinary的縮寫(xiě),存放用戶的可運(yùn)行程序,如ls、cp等,也包含其他shell,如bash和cs等表4-1Linux系統(tǒng)中常見(jiàn)的目錄名稱(chēng)以及相應(yīng)內(nèi)容在Linux系統(tǒng)中,最常見(jiàn)的目錄以及所對(duì)應(yīng)的存放內(nèi)容如表4-1所示。表4-1Linux系統(tǒng)中常見(jiàn)的目錄名稱(chēng)以及相應(yīng)內(nèi)容/lib開(kāi)機(jī)時(shí)用到的函數(shù)庫(kù),以及/bin與/sbin下面的命令要調(diào)用的函數(shù)/sbin開(kāi)機(jī)過(guò)程中需要的命令/media用于掛載設(shè)備文件的目錄/opt放置第三方的軟件/root系統(tǒng)管理員的家目錄/srv一些網(wǎng)絡(luò)服務(wù)的數(shù)據(jù)文件目錄/tmp任何人均可使用的“共享”臨時(shí)目錄/proc虛擬文件系統(tǒng),如系統(tǒng)內(nèi)核、進(jìn)程、外部設(shè)備及網(wǎng)絡(luò)狀態(tài)等/usr/local用戶自行安裝的軟件/usr/sbinLinux系統(tǒng)開(kāi)機(jī)時(shí)不會(huì)使用到的軟件/命令/腳本/usr/share幫助與說(shuō)明文件,也可放置共享文件/var主要存放經(jīng)常變化的文件,如日志/lost+found當(dāng)文件系統(tǒng)發(fā)生錯(cuò)誤時(shí),將一些丟失的文件片段存放在這里4.1.3子任務(wù)3理解絕對(duì)路徑和相對(duì)路徑絕對(duì)路徑與相對(duì)路徑絕對(duì)路徑:由根目錄(/)開(kāi)始寫(xiě)起的文件名或目錄名稱(chēng),如/home/dmtsai/basher。相對(duì)路徑:相對(duì)于目前路徑的文件名寫(xiě)法,如./home/dmtsai或../../home/dmtsai/等。
相對(duì)路徑是以當(dāng)前所在路徑的相對(duì)位置來(lái)表示的。舉例來(lái)說(shuō),你目前在/home這個(gè)目錄下,如果想要進(jìn)入/var/log這個(gè)目錄時(shí),可以怎么寫(xiě)呢?有兩種方法。cd/var/log:絕對(duì)路徑。cd../var/log:相對(duì)路徑。
因?yàn)槟隳壳霸?home下,所以要回到上—層(../)之后,才能進(jìn)入/var/log目錄。特別注意兩個(gè)特殊的目錄。.:代表當(dāng)前的目錄,也可以使用./來(lái)表示。..:代表上—層目錄,也可以用../來(lái)代表。
常??吹降腸d..或./command之類(lèi)的指令表達(dá)方式,就是代表上一層與目前所在目錄的工作狀態(tài)。4.2任務(wù)2管理Linux文件權(quán)限
文件是操作系統(tǒng)用來(lái)存儲(chǔ)信息的基本結(jié)構(gòu),是一組信息的集合。文件通過(guò)文件名來(lái)唯一地標(biāo)識(shí)。Linux中的文件名稱(chēng)最長(zhǎng)可允許255個(gè)字符,這些字符可用A~Z、0~9、.、_、-等符號(hào)來(lái)表示。
與其他操作系統(tǒng)相比,Linux沒(méi)有“擴(kuò)展名”的概念,也就是說(shuō)文件的名稱(chēng)和該文件的種類(lèi)并沒(méi)有直接的關(guān)聯(lián)。它的另一個(gè)特性是Linux文件名區(qū)分大小寫(xiě)。
在Linux中的每一個(gè)文件或目錄都包含有訪問(wèn)權(quán)限,這些訪問(wèn)權(quán)限決定了誰(shuí)能訪問(wèn)和如何訪問(wèn)這些文件和目錄。通過(guò)設(shè)定權(quán)限可以從以下3種訪問(wèn)方式限制訪問(wèn)權(quán)限。只允許用戶自己訪問(wèn)。允許一個(gè)預(yù)先指定的用戶組中的用戶訪問(wèn)。允許系統(tǒng)中的任何用戶訪問(wèn)。4.2.1子任務(wù)1理解文件和文件權(quán)限
根據(jù)賦予權(quán)限的不同,3種不同的用戶(所有者、用戶組或其他用戶)能夠訪問(wèn)不同的目錄或者文件。所有者是創(chuàng)建文件的用戶,文件的所有者能夠授予所在用戶組的其他成員以及系統(tǒng)中除所屬組之外的其他用戶的文件訪問(wèn)權(quán)限。
每一個(gè)用戶針對(duì)系統(tǒng)中的所有文件都有它自身的讀、寫(xiě)和執(zhí)行權(quán)限。
第一套權(quán)限控制訪問(wèn)自己的文件權(quán)限,即所有者權(quán)限。
第二套權(quán)限控制用戶組訪問(wèn)其中一個(gè)用戶的文件的權(quán)限。
第三套權(quán)限控制其他所有用戶訪問(wèn)一個(gè)用戶的文件的權(quán)限。
這三套權(quán)限賦予用戶不同類(lèi)型(即所有者、用戶組和其他用戶)的讀、寫(xiě)及執(zhí)行權(quán)限,就構(gòu)成了一個(gè)有9種類(lèi)型的權(quán)限組。我們可以用“l(fā)s-l”或者ll命令顯示文件的詳細(xì)信息,其中包括權(quán)限。如下所示:[root@RHEL7-1~]#lltotal84drwxr-xr-x 2rootroot4096Aug915:03Desktop-rw-r--r-- 1rootroot1421Aug914:15anaconda-ks.cfg-rw-r--r-- 1rootroot6107Aug914:15install.log.syslogdrwxr-xr-x 2rootroot4096Sep113:54webmin圖4-3文件屬性示意圖4.2.2子任務(wù)2詳解文件各種屬性信息1.第1組為文件類(lèi)型權(quán)限
每一行的第一個(gè)字符一般用來(lái)區(qū)分文件的類(lèi)型,一般取值為d、-、l、b、c、s、p。具體含義如下。d:表示是一個(gè)目錄,在ext文件系統(tǒng)中目錄也是一種特殊的文件。-:表示該文件是一個(gè)普通的文件。l:表示該文件是一個(gè)符號(hào)鏈接文件,實(shí)際上它指向另一個(gè)文件。b、c:分別表示該文件為區(qū)塊設(shè)備或其他的外圍設(shè)備,是特殊類(lèi)型的文件。s、p:這些文件關(guān)系到系統(tǒng)的數(shù)據(jù)結(jié)構(gòu)和管道,通常很少見(jiàn)到。
每一行的第2~10個(gè)字符表示文件的訪問(wèn)權(quán)限。這9個(gè)字符每3個(gè)為一組,左邊3個(gè)字符表示所有者權(quán)限,中間3個(gè)字符表示與所有者同一組的用戶的權(quán)限,右邊3個(gè)字符是其他用戶的權(quán)限。代表的意義如下。字符2、3、4表示該文件所有者的權(quán)限,有時(shí)也簡(jiǎn)稱(chēng)為u(User)的權(quán)限。字符5、6、7表示該文件所有者所屬組的組成員的權(quán)限。例如,此文件擁有者屬于“user”組群,該組群中有6個(gè)成員,表示這6個(gè)成員都有此處指定的權(quán)限。簡(jiǎn)稱(chēng)為g(Group)的權(quán)限。字符8、9、10表示該文件所有者所屬組群以外的權(quán)限,簡(jiǎn)稱(chēng)為o(Other)的權(quán)限。這9個(gè)字符根據(jù)權(quán)限種類(lèi)的不同,也分為3種類(lèi)型。r(Read,讀?。簩?duì)文件而言,具有讀取文件內(nèi)容的權(quán)限;對(duì)目錄來(lái)說(shuō),具有瀏覽目錄的權(quán)限。w(Write,寫(xiě)入):對(duì)文件而言,具有新增、修改文件內(nèi)容的權(quán)限;對(duì)目錄來(lái)說(shuō),具有刪除、移動(dòng)目錄內(nèi)文件的權(quán)限。x(execute,執(zhí)行):對(duì)文件而言,具有執(zhí)行文件的權(quán)限;對(duì)目錄來(lái)說(shuō),具有進(jìn)入目錄的權(quán)限。-:表示不具有該項(xiàng)權(quán)限。下面舉例說(shuō)明。brwxr--r--:該文件是塊設(shè)備文件,文件所有者具有讀、寫(xiě)與執(zhí)行的權(quán)限,其他用戶則具有讀取的權(quán)限。-rw-rw-r-x:該文件是普通文件,文件所有者與同組用戶對(duì)文件具有讀寫(xiě)的權(quán)限,而其他用戶僅具有讀取和執(zhí)行的權(quán)限。drwx--x--x:該文件是目錄文件,目錄所有者具有讀寫(xiě)與進(jìn)入目錄的權(quán)限,其他用戶能進(jìn)入該目錄,卻無(wú)法讀取任何數(shù)據(jù)。lrwxrwxrwx:該文件是符號(hào)鏈接文件,文件所有者、同組用戶和其他用戶對(duì)該文件都具有讀、寫(xiě)和執(zhí)行權(quán)限。2.第2組表示有多少文件名連結(jié)到此節(jié)點(diǎn)(i-node)
每個(gè)文件都會(huì)將其權(quán)限與屬性記錄到文件系統(tǒng)的i-node中,不過(guò),我們使用的目錄樹(shù)卻是使用文件來(lái)記錄,因此每個(gè)文件名就會(huì)連接到一個(gè)i-node。這個(gè)屬性記錄的就是有多少不同的文件名連接到相同的一個(gè)i-node。3.第3組表示這個(gè)文件(或目錄)的擁有者賬號(hào)4.第4組表示這個(gè)文件的所屬群組
在Linux系統(tǒng)下,你的賬號(hào)會(huì)附屬于一個(gè)或多個(gè)的群組中。舉例來(lái)說(shuō)明:class1、class2、class3均屬于projecta這個(gè)群組,假設(shè)某個(gè)文件所屬的群組為projecta,且該文件的權(quán)限為(-rwxrwx---),則class1、class2、class33人對(duì)于該文件都具有可讀、可寫(xiě)、可執(zhí)行的權(quán)限(看群組權(quán)限)。但如果是不屬于projecta的其他賬號(hào),對(duì)于此文件就不具有任何權(quán)限了。5.第5組為這個(gè)文件的容量大小,默認(rèn)單位為bytes6.第6組為這個(gè)文件的創(chuàng)建日期或者是最近的修改日期
這一欄的內(nèi)容分別為日期(月/日)及時(shí)間。如果這個(gè)文件被修改的時(shí)間距離現(xiàn)在太久了,那么時(shí)間部分會(huì)僅顯示年份而已。如果想要顯示完整的時(shí)間格式,可以利用ls的選項(xiàng),即ls-l--full-time就能夠顯示出完整的時(shí)間格式了。7.第7組為這個(gè)文件的文件名
比較特殊的是:如果文件名之前多一個(gè)“.”,則代表這個(gè)文件為隱藏文件。請(qǐng)讀者使用ls及l(fā)s-a這兩個(gè)指令去體驗(yàn)一下什么是隱藏文件。4.2.3子任務(wù)3使用數(shù)字表示法修改權(quán)限通常在權(quán)限修改時(shí)可以用兩種方式來(lái)表示權(quán)限類(lèi)型:數(shù)字表示法和文字表示法。chmod命令的格式是:chmod選項(xiàng)
文件
所謂數(shù)字表示法是指將讀?。╮)、寫(xiě)入(w)和執(zhí)行(x)分別以數(shù)字4、2、1來(lái)表示,沒(méi)有授予的部分就表示為0,然后再把所授予的權(quán)限相加而成。表4-2是幾個(gè)示范的例子。原始權(quán)限轉(zhuǎn)換為數(shù)字?jǐn)?shù)字表示法rwxrwxr-x(421)(421)(401)775rwxr-xr-x(421)(401)(401)755rw-rw-r--(420)(420)(400)664rw-r--r--(420)(400)(400)644表4-2以數(shù)字表示法修改權(quán)限的例子1.文字表示法使用權(quán)限的文字表示法時(shí),系統(tǒng)用4種字母來(lái)表示不同的用戶。u:user,表示所有者。g:group,表示屬組。o:others,表示其他用戶。a:all,表示以上3種用戶。使用下面3種字符的組合表示法設(shè)置操作權(quán)限。
r:read,可讀。w:write,寫(xiě)入。x:execute,執(zhí)行。4.2.4子任務(wù)4使用數(shù)字表示法修改權(quán)限操作符號(hào)包括以下幾種。+:添加某種權(quán)限。-:減去某種權(quán)限。=:賦予給定權(quán)限并取消原來(lái)的權(quán)限。以文字表示法修改文件權(quán)限時(shí),上例中的權(quán)限設(shè)置命令為[root@RHEL7-1~]#chmodu=rw,g=rw,o=r/etc/file修改目錄權(quán)限和修改文件權(quán)限相同,都是使用chmod命令,但不同的是,要使用通配符“*”來(lái)表示目錄中的所有文件。2.利用chmod命令也可以修改文件的特殊權(quán)限例如,要設(shè)置/etc/file文件的SUID權(quán)限的方法如下[root@RHEL7-1~]#ll/etc/file-rw-rw-rw-.1rootroot05月2023:15/etc/file[root@RHEL7-1~]#chmodu+s/etc/file[root@RHEL7-1~]#ll/etc/file-rwSrw-rw-.1rootroot05月2023:15/etc/file特殊權(quán)限也可以采用數(shù)字表示法。SUID、SGID和sticky權(quán)限分別為4、2和1。使用chmod命令設(shè)置文件權(quán)限時(shí),可以在普通權(quán)限的數(shù)字前面加上一位數(shù)字來(lái)表示特殊權(quán)限。例如:[root@RHEL7-1~]#chmod6664/etc/file[root@RHEL7-1~]#ll/etc/file-rwSrwSr--1rootroot2211-2711:42file3.使用文字表示法的有趣實(shí)例【例4-1】假如我們要“設(shè)定”一個(gè)文件的權(quán)限為-rwxr-xr-x時(shí),所表述的含義如下。user(u):具有可讀、可寫(xiě)、可執(zhí)行的權(quán)限。group與others(g/o):具有可讀與執(zhí)行的權(quán)限。執(zhí)行結(jié)果如下:[root@RHEL7-1~]#chmodu=rwx,go=rx.bashrc#注意:u=rwx,go=rx是連在一起的,中間并沒(méi)有任何空格[root@RHEL7-1~]#ls-al.bashrc-rwxr-xr-x1rootroot395Jul411:45.bashrc【例
4-2】假如設(shè)置-rwxr-xr--這樣的權(quán)限又該如何操作呢?可以使用“chmodu=rwx,g=rx,o=rfilename”來(lái)設(shè)定。此外,如果不知道原先的文件屬性,而想增加.bashrc文件的所有人均有寫(xiě)入的權(quán)限,那么可以使用如下命令:[root@RHEL7-1~]#ls-al.bashrc-rwxr-xr-x1rootroot395Jul411:45.bashrc[root@RHEL7-1~]#chmoda+w.bashrc[root@RHEL7-1~]#ls-al.bashrc-rwxrwxrwx1rootroot395Jul411:45.bashrc【例4-3】如果要將權(quán)限去掉而不改動(dòng)其他已存在的權(quán)限呢?例如,要去掉所有人的可執(zhí)行權(quán)限,則可以使用如下命令:[root@RHEL7-1~]#chmoda-x.bashrc[root@RHEL7-1~]#ls-al.bashrc-rw-rw-rw-1rootroot395Jul411:45.bashrc特別提示:在+與-的狀態(tài)下,只要不是指定的項(xiàng)目,權(quán)限是不會(huì)變動(dòng)的。4.2.5子任務(wù)5理解權(quán)限與指令間的關(guān)系權(quán)限對(duì)于使用者賬號(hào)來(lái)說(shuō)非常重要,因?yàn)闄?quán)限可以限制使用者能不能讀取/建立/刪除/修改文件或目錄。11.理解權(quán)限與指令間的關(guān)系4.3任務(wù)3修改文件與目錄的默認(rèn)權(quán)限與隱藏權(quán)限
文件權(quán)限包括讀(r)、寫(xiě)(w)、執(zhí)行(x)等基本權(quán)限,決定文件類(lèi)型的屬性包括目錄(d)、文件(-)、連結(jié)符等。修改權(quán)限的方法(chgrp,chown,chmod)在前面已經(jīng)提過(guò)。在Linux的ext2/ext3/ext4文件系統(tǒng)下,除基本r、w、x權(quán)限外,還可以設(shè)定系統(tǒng)隱藏屬性。設(shè)置系統(tǒng)隱藏屬性使用chattr命令,而使用lsattr命令可以查看隱藏屬性。另外,基于安全機(jī)制方面(security)的考慮,設(shè)定文件不可修改的特性,即文件的擁有者也不能修改。4.3.1子任務(wù)1理解文件預(yù)設(shè)權(quán)限:umask查閱默認(rèn)權(quán)限的方式有兩種:一是直接輸入umask,可以看到數(shù)字形態(tài)的權(quán)限設(shè)定;
二是加入-S(Symbolic)選項(xiàng),則會(huì)以符號(hào)類(lèi)型的方式顯示權(quán)限。
目錄與文件的默認(rèn)權(quán)限是不一樣的。我們知道,x權(quán)限對(duì)于目錄是非常重要的。但是一般文件的建立是不應(yīng)該有執(zhí)行的權(quán)限。因?yàn)橐话阄募ǔJ怯糜跀?shù)據(jù)的記錄,當(dāng)然不需要執(zhí)行的權(quán)限。因此,預(yù)設(shè)的情況如下。若使用者建立文件,則預(yù)設(shè)沒(méi)有可執(zhí)行(x)權(quán)限,即只有rw這兩個(gè)項(xiàng)目,也就是最大為666,預(yù)設(shè)權(quán)限為:-rw-rw-rw-。若用戶建立目錄,則由于x與是否可以進(jìn)入此目錄有關(guān),因此默認(rèn)所有權(quán)限均開(kāi)放,即為777,預(yù)設(shè)權(quán)限為:drwxrwxrwx。
umask的分值指的是該默認(rèn)值需要減掉的權(quán)限(r、w、x分別對(duì)應(yīng)的是4、2、1),具體如下。去掉寫(xiě)入的權(quán)限時(shí),umask的分值輸入2。去掉讀取的權(quán)限時(shí),umask的分值輸入4。去掉讀取和寫(xiě)入的權(quán)限時(shí),umask的分值輸入6。去掉執(zhí)行和寫(xiě)入的權(quán)限時(shí),umask的分值輸入3。
以上面的例子,因?yàn)閡mask為022,所以u(píng)ser并沒(méi)有被去掉任何權(quán)限,不過(guò)group與others的權(quán)限被去掉了2(也就是w這個(gè)權(quán)限),那么使用者的權(quán)限如下。建立文件時(shí):(-rw-rw-rw-)-(-----w--w-)=-rw-r--r--。建立目錄時(shí):(drwxrwxrwx)-(d----w--w-)=drwxr-xr-x。是這樣嗎?請(qǐng)看測(cè)試結(jié)果。[root@RHEL7-1~]#umask0022[root@RHEL7-1~]#touchtest1[root@RHEL7-1~]#mkdirtest2[root@RHEL7-1~]#11-rw-r—-r—-1rootroot0Sep2700:25test1drwxr-xr-x2rootroot4096Sep2700:25test24.3.2子任務(wù)2利用umask
假如你與同學(xué)進(jìn)行的是同一個(gè)專(zhuān)題,你們的賬號(hào)屬于相同群組,并且/home/class/目錄是你們的專(zhuān)題目錄。想象一下,有沒(méi)有可能你所制作的文件你的同學(xué)無(wú)法編輯?如果是這樣,該怎么辦呢?
這個(gè)問(wèn)題可能經(jīng)常發(fā)生。以上面的案例,test1的權(quán)限是644。也就是說(shuō),如果umask的值為022,那新建的數(shù)據(jù)只有用戶自己具有寫(xiě)入(w)的權(quán)限,同群組的人只有讀?。╮)的權(quán)限,肯定無(wú)法修改。這樣怎么能共同制作專(zhuān)題呢?
因此,當(dāng)我們需要新建文件給同群組的使用者共同編輯時(shí),umask的群組就不能去掉2這個(gè)w的權(quán)限。這時(shí)umask的值應(yīng)該是002,這樣才能使新建的文件的權(quán)限是-rw-rw-r--。那么如何設(shè)定umask呢?直接在umask后面輸入002就可以了。命令運(yùn)行情況如下:[root@RHEL7-1~]#umask002[root@RHEL7-1~]#touchtest3[root@RHEL7-1~]#mkdirtest4[root@RHEL7-1~]#11-rw-rw-r--1rootroot0Sep2700:36test3drwxrwxr-x2rootroot4096Sep2700:36test4思考:假設(shè)umask為003,在此情況下建立的文件與目錄的權(quán)限又是怎樣的呢?umask為003,所以去掉的權(quán)限為--------wx,因此相關(guān)權(quán)限如下。文件:(-rw-rw-rw-)-(--------wx)=-rw-rw-r--。目錄:(drwxrwxrwx)-(d-------wx)=drwxrwxr--。4.3.3子任務(wù)3設(shè)置文件影藏屬性1.chattr命令功能說(shuō)明:改變文件屬性。語(yǔ)法:chattr[-RV][-v<版本編號(hào)>][+/-/=<屬性>][文件或目錄...]。這項(xiàng)指令可改變存放在ext4文件系統(tǒng)上的文件或目錄屬性,這些屬性共有以下8種模式。
a:系統(tǒng)只允許在這個(gè)文件之后追加數(shù)據(jù),不允許任何進(jìn)程覆蓋或截?cái)噙@個(gè)文件。如果目錄具有這個(gè)屬性,系統(tǒng)將只允許在這個(gè)目錄下建立和修改文件,而不允許刪除任何文件。b:不更新文件或目錄的最后存取時(shí)間。
c:將文件或目錄壓縮后存放。
d:將文件或目錄排除在傾倒操作之外。
i:不得任意改動(dòng)文件或目錄。
s:保密性刪除文件或目錄。
S:即時(shí)更新文件或目錄。
u:預(yù)防意外刪除。
chattr的相關(guān)參數(shù)如下。其中,最重要的是+i與+a這兩個(gè)屬性。由于這些屬性是隱藏的,所以需要使用lsattr命令。-R:遞歸處理,將指定目錄下的所有文件及子目錄一并處理。
-v<版本編號(hào)>:設(shè)置文件或目錄版本。
-V:顯示指令執(zhí)行過(guò)程。
+<屬性>:開(kāi)啟文件或目錄的該項(xiàng)屬性。
-<屬性>:關(guān)閉文件或目錄的該項(xiàng)屬性。
=<屬性>:指定文件或目錄的該項(xiàng)屬性?!纠?-4】請(qǐng)嘗試在/tmp目錄下建立文件,加入i參數(shù),并嘗試刪除。[root@RHEL7-1~]#cd/tmp[root@RHEL7-1tmp]#touchattrtest<==建立一個(gè)空文件[root@RHEL7-1tmp]#chattr+iattrtest<==給予i屬性[root@RHEL7-1tmp]#rmattrtest<==嘗試刪除,查看結(jié)果rm:removewrite-protectedregularemptyfile`attrtest'?yrm:cannotremove`attrtest':Operationnotpermitted<==操作不允許#看到了嗎?連root也沒(méi)有辦法將這個(gè)文件刪除!趕緊解除設(shè)定吧將該文件的i屬性取消的代碼如下:[root@RHEL7-1tmp]#chattr-iattrtest2.lsattr命令(顯示文件隱藏屬性)該命令的語(yǔ)法為[root@RHEL7-1~]#lsattr[-adR]文件或目錄該命令的選項(xiàng)與參數(shù)如下-a:將隱藏文件的屬性也顯示出來(lái)。-d:如果是目錄,僅列出目錄本身的屬性而非目錄內(nèi)的文件名。-R:連同子目錄的數(shù)據(jù)也一并列出來(lái)。例如:[root@RHEL7-1tmp]#chattr+aiSattrtest[root@RHEL7-1tmp]#lsattrattrtest--S-ia----------attrtest4.3.4子任務(wù)4設(shè)置文件特殊權(quán)限:SUID、SGID、SBIT
在復(fù)雜多變的生產(chǎn)環(huán)境中,單純?cè)O(shè)置文件的rwx權(quán)限無(wú)法滿足我們對(duì)安全和靈活性的需求,因此便有了SUID、SGID與SBIT的特殊權(quán)限位。這是一種對(duì)文件權(quán)限進(jìn)行設(shè)置的特殊功能,可以與一般權(quán)限同時(shí)使用,以彌補(bǔ)一般權(quán)限不能實(shí)現(xiàn)的功能。12.設(shè)置文件特殊權(quán)限:SUID、SGID、SBIT4.4任務(wù)4文件訪問(wèn)控制列表
一般權(quán)限、特殊權(quán)限、隱藏權(quán)限其實(shí)有一個(gè)共性—權(quán)限是針對(duì)某一類(lèi)用戶設(shè)置的。如果希望對(duì)某個(gè)指定的用戶進(jìn)行單獨(dú)的權(quán)限控制,就需要用到文件的訪問(wèn)控制列表(AccessControlList,ACL)了。
為了更直觀地看到ACL對(duì)文件權(quán)限控制的強(qiáng)大效果,可以先切換到普通用戶,然后嘗試進(jìn)入root管理員的家目錄中。在沒(méi)有針對(duì)普通用戶對(duì)root管理員的家目錄設(shè)置ACL之前,其執(zhí)行結(jié)果如下所示:[root@RHEL7-1
~]#
su
-
bobbyLast
login:
Sat
Mar
21
16:31:19
CST
2017
on
pts/0[bobby@RHEL7-1
~]$
cd
/root-bash:
cd:
/root:
Permission
denied[bobby@RHEL7-1
root]$
exit
setfacl命令用于管理文件的ACL規(guī)則,格式為“setfacl[參數(shù)]文件名稱(chēng)”。文件的ACL提供的是在所有者、所屬組、其他人的讀/寫(xiě)/執(zhí)行權(quán)限之外的特殊權(quán)限控制,使用setfacl命令可以針對(duì)單一用戶或用戶組、單一文件或目錄來(lái)進(jìn)行讀/寫(xiě)/執(zhí)行權(quán)限的控制。其中,針對(duì)目錄文件需要使用-R遞歸參數(shù);針對(duì)普通文件可以使用-m參數(shù);如果想要?jiǎng)h除某個(gè)文件的ACL,可以使用-b參數(shù)。下面來(lái)設(shè)置用戶在/root目錄上的權(quán)限:[root@RHEL7-1
~]#
setfacl
-Rm
u:bobby:rwx
/root[root@RHEL7-1
~]#
su
-
bobbyLast
login:
Sat
Mar
21
15:45:03
CST
2017
on
pts/1[bobby@RHEL7-1
~]$
cd
/root[bobby@RHEL7-1
root]$
lsanaconda-ks.cfg
Downloads
Pictures
Public[bobby@RHEL7-1
root]$
cat
anaconda-ks.cfg[bobby@RHEL7-1
root]$
exit怎樣查看文件上有哪些ACL呢?常用的ls命令看不到ACL表信息,卻可以看到文件的權(quán)限最后一個(gè)點(diǎn)(.)變成了加號(hào)(+),這就意味著該文件已經(jīng)設(shè)置了ACL。[root@RHEL7-1
~]#
ls
-ld
/rootdr-xrwx---+
14
root
root
4096
May
4
2017
/root4.4.1setfacl命令getfacl命令用于顯示文件上設(shè)置的ACL信息,格式為“getfacl文件名稱(chēng)”。Linux系統(tǒng)中的命令就是這么可愛(ài)又好記。想要設(shè)置ACL,用的是setfacl命令;要想查看ACL,則用的是getfacl命令。下面使用getfacl命令顯示在root管理員家目錄上設(shè)置的所有ACL信息。
[root@RHEL7-1
~]#
getfacl
/rootgetfacl:
Removing
leading
'/'
from
absolute
path
names#
file:
root#
owner:
root#
group:
rootuser::r-xuser:bobby:rwxgroup::r-xmask::rwxother::---4.4.2getfacl命令4.5企業(yè)實(shí)戰(zhàn)與應(yīng)用1.情境及需求情境:假設(shè)系統(tǒng)中有兩個(gè)賬號(hào),分別是alex與arod,這兩個(gè)賬號(hào)除了支持自己的群組,還共同支持一個(gè)名為project的群組。如這兩個(gè)賬號(hào)需要共同擁有/srv/ahome/目錄的開(kāi)發(fā)權(quán),且該目錄不許其他賬號(hào)進(jìn)入查閱,請(qǐng)問(wèn)該目錄的權(quán)限應(yīng)如何設(shè)定?請(qǐng)先以傳統(tǒng)權(quán)限說(shuō)明,再以SGID的功能解析。目標(biāo):了解為何項(xiàng)目開(kāi)發(fā)時(shí),目錄最好設(shè)定SGID的權(quán)限。前提:多個(gè)賬號(hào)支持同一群組,且共同擁有目錄的使用權(quán)。需求:需要使用root的身份運(yùn)行chmod、chgrp等命令,幫用戶設(shè)定好他們的開(kāi)發(fā)環(huán)境。這也是管理員的重要任務(wù)之一。2.解決方案(1)制作出這兩個(gè)賬號(hào)的相關(guān)數(shù)據(jù),如下所示。[root@RHEL7-1~]#groupaddproject<==增加新的群組[root@RHEL7-1~]#useradd-Gprojectalex<==建立alex賬號(hào),且支持project[root@RHEL7-1~]#useradd-Gprojectarod<==建立arod賬號(hào),且支持project[root@RHEL7-1~]#idalex<==查閱alex賬號(hào)的屬性u(píng)id=1008(alex)gid=1012(alex)組=1012(alex),1011(project)<==確定有支持![root@RHEL7-1~]#idarodid=1009(arod)gid=1013(arod)組=1013(arod),1011(project)(2)建立所需要開(kāi)發(fā)的項(xiàng)目目錄。[root@RHEL7-1~]#mkdir/srv/ahome[root@RHEL7-1~]#ll-d/srv/ahomedrwxr-xr-x2rootroot4096Sep2922:36/srv/ahome(3)從上面的輸出結(jié)果可發(fā)現(xiàn)alex與arod都不能在該目錄內(nèi)建立文件,因此需要進(jìn)行權(quán)限與屬性的修改。由于其他人均不可進(jìn)入此目錄,所以該目錄的群組應(yīng)為project,權(quán)限應(yīng)為770才合理。[root@RHEL7-1~]#chgrpproject/srv/ahome[root@RHEL7-1~]#chmod770/srv/ahome[root@RHEL7-1~]#ll-d/srv/ahomedr
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 煙囪安全評(píng)估協(xié)議
- 通信光纜鋪設(shè)圍擋施工合同
- 數(shù)據(jù)泄露賠償協(xié)議
- 石家莊市電影院租賃合同
- 設(shè)備轉(zhuǎn)讓協(xié)議書(shū)簽訂
- 房地產(chǎn)合同定制
- 城市文化國(guó)標(biāo)施工合同樣本
- 體育館工程圍墻施工合同
- 商業(yè)大樓硬化施工合同
- 教育機(jī)構(gòu)教師勞動(dòng)合同樣本
- 2024年01月11032成本管理期末試題答案
- 年高考新課標(biāo)I卷語(yǔ)文試題講評(píng)課件
- 2024年高中班主任德育工作計(jì)劃(5篇)
- 浙江省嘉興市2023-2024學(xué)年高二上學(xué)期1月期末檢測(cè)數(shù)學(xué)試題
- 2024-2025學(xué)年語(yǔ)文二年級(jí)上冊(cè) 部編版期末測(cè)試卷 (含答案)
- 廢棄油管道注漿施工方案
- 2021-2022學(xué)年廣東省深圳市龍崗區(qū)六年級(jí)上學(xué)期期末英語(yǔ)試卷
- 資金托盤(pán)業(yè)務(wù)協(xié)議
- 消防水帶使用培訓(xùn)
- 電力設(shè)備維護(hù)保養(yǎng)計(jì)劃手冊(cè)
- 滑坡治理工程監(jiān)測(cè)實(shí)施方案
評(píng)論
0/150
提交評(píng)論