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