文件權限解析

文件權限其實就是用戶和用戶組對文件或目錄進行操作的權力。

文件的屬性

     文件權限解析

    上圖中顯示詳細信息文件的詳細屬性,以最后一行為例從左向右依次說明:

    1、drwxr-xr-x.  

        左起第一位:表示文件的類型,其中包括以下類型:

            -:普通文件

            d:目錄

            l:符號鏈接文件(軟鏈接)

            c:字符設備

            b:塊設備

            p:命令管道

            s:套接字文件

        后面的9位:表示權限

        . :表示文件有隱藏屬性;

            可以使用命令lsattr來進行查看;

    2、數字(2)

        表示此文件被硬鏈接的次數;

    3、第一個root

        表示文件或目錄屬主;

    4、第二個root

        表示文件或目錄屬組;

    5、數字(4096)

        表示文件的大小,以字節為單位;

    6、Feb 3 20:54

        表示文件最近一次的修改時間;

    7、最后一項(Downloads)

        表示文件名;


文件的基本權限

    文件的權限    

        文件權限解析

        上面這一串字符中,第一位是文件的類型,后面的9位是文件的權限,一共包括4種不同的權限,分別為:

             r:表示讀權限;

             w:表示寫權限;

             x:表示執行權限;

             -:表示沒有權限。

        這9位的權限以三位為一組,共分成三組,分別代表屬主、屬組和其它用戶的權限;                  

                   d           rwx    r-x     r-x

                 文件類型     屬主   屬組   其它用戶

            屬主:表示文件或目錄的所有者;

            屬組:表示文件或目錄的所有組;

            其它用戶:表示既不是屬主,也不是屬組成員的用戶;

            注意:root用戶不受權限的限制。

            上例表示文件的屬主擁有讀寫執行的權限;文件的屬組和其它用戶擁有讀和執行的權限。

    權限對于目錄和文件的不同意義

        權限對于文件的影響

            r:可讀取文件的內容;

            w:可以編輯、修改文件的內容,但不能刪除文件本身;

            x:可以被執行的權限,通常用于腳本。

            對于文件來說,權限主要是針對文件的內容而定義的,直接影響的是文件內的數據,如果想要刪除文件則需要定義文件所在目錄的權限。

        權限對于目錄的影響

            r:可以瀏覽目錄下的文件名,也就是說可以使用ls命令來查看目錄中的內容;

            w:可以更改目錄中的內容,其中包括以下操作:

                新建文件和目錄;

                刪除文件和目錄;

                重命名文件和目錄;

                移動文件和目錄。

            x:表示用戶是否可以進入目錄作為工作目錄,也就是說是否能夠使用cd命令進入到目錄中。

            下面舉例進行說明:

            文件權限解析

            雖然test文件是用戶rot所擁有,但由于只有r權限,依然不能修改文件的內容;

            文件權限解析

             這是test文件所在的目錄的權限,可以看到rot用戶對此目錄擁有讀、寫、執行的權限;

            文件權限解析

             在test目錄中刪除test文件,可以正常刪除,說明文件寫(w)權限并不對文件本身的存在與否生效,如果我們將目錄的(w)權限去掉,看下是否可以刪除目錄中的文件;

             文件權限解析

            現在目錄中的w權限已經全部去除;

            文件權限解析

            再來刪除目錄中的文件,已經不能成功操作了。

            我們將test目錄的r權限去除,如下圖:

            文件權限解析

            可以查看目錄本身屬性,但是目錄的內容卻不能瀏覽了;此目錄擁有了x權限,也就是說可能切換到test目錄中,如下圖:

            文件權限解析

            文件權限解析

            雖然已經進入了目錄,而且由于擁有了w權限,還可以在目錄中對文件進行操作,但還是無法瀏覽目錄中文件列表。

            現在我們去掉x權限來看一下效果;

            文件權限解析

            我們給予了除了x的所有權限,目錄已經無法進入了。

        注意:如果要開放目錄給任何人瀏覽時,應用至少開放r和x權限,否則目錄將無法正常查看。

    權限的匹配順序

        當一個用戶訪問文件或目錄時,是依照以下順序進行權限匹配的:

            1、如果此用戶為訪問文件或目錄的屬主,則匹配屬主的權限;否則

            2、如果此用戶為屬組的組成唄,則匹配屬組的權限;否則

            3、匹配其他用戶的權限。

    修改文件的屬性與權限

        通過以下命令來進行文件的屬主、屬組修改以及權限的修改。

        chgrp:改變文件的屬組;

            格式:chgrp [-R] 屬組名 文件名/目錄名

                -R:遞歸修改;

                文件權限解析

                文件權限解析

        chown:改變文件的屬主;

            格式:chown [-R] 屬主名:屬組名 文件名/目錄名

            此命令即可以單獨修改屬主或屬組,也可以同時修改屬主和屬組;

                文件權限解析

                文件權限解析

                文件權限解析

                文件權限解析

        chmod:修改文件的權限;

            文件權限的表現方法有兩種,一種是用字符表示(-rwxrwxrwx),另一種是使用數字來表示(777)。

                格式:chmod [-R] 文件權限 文件名/目錄名

            使用字符改變文件權限的方法:

                權限共有9位,每3位為一組,共分為3組,分別表示屬主、屬組和其它用戶;使用字符來代表不同的用戶:

                    u:屬主

                    g:屬組

                    o:其他用戶

                    a:所有用戶

                 權限的操作符:

                    +:增加權限

                    -:去除權限

                    =:設置權限

                文件權限解析

            使用數字改變權限的方法

                權限還可以使用數字表示,分別對應為:

                    r:4

                    w:2

                    x:1

                    -:0

                 例如:-rwxr-xr-x所對應的數字為[4+2+1][4+1][4+1]=755

                      文件權限解析

    上面介紹的三個命令在進行設置時,還可以參考其它文件的屬性或權限進行設置。

        –reference :參考其它文件的已有設置對文件進行設置。

        格式:chgrp/chown/chmod –reference 源文件 目標文件

            文件權限解析

            上例中是參考文件b的屬組來設置文件a的屬組。

            文件權限解析

            上例則是參考文件b的屬主和屬組來設置文件a。

            文件權限解析

            參考文件b的權限來設置文件a。    


修改默認權限

    當我們新建文件和目錄時,會發現文件和目錄的權限是不一樣的,如下圖

    文件權限解析

     創建后并沒有做任何的修改,但文件的權限為644,而目錄的權限為755,這是什么原因造成的呢?

     其實Linux系統默認情況下新建文件的默認權限為666,而目錄的默認權限為777,而我們創建文件和目錄的權限是經過默認權限與權限掩碼計算的結果;我們可通過命令來修改掩碼,調整默認權限。

     umask:修改掩碼

        此命令不帶參數使用時,直接以數字方式顯示出掩碼值

        文件權限解析

        使用-S參數時,則會以字符形式顯示出權限

        文件權限解析

         使用umask命令查看掩碼值為0022,我們只看后三位,即002,第一位的含義將在后面進行說明;文件和目錄的權限是通過默認權限減去掩碼值的結果,如文件的權限:666-022=644;目錄的權限:777-022=755

        我們可以直接使用umask命令來修改掩碼值,如下圖:

            文件權限解析

        不過在命令行使用umask命令進行的修改是臨時的設置,如果想要永久生效可以將umask命令可寫到/etc/bashrc或者~/.bashrc;

            /etc/bashrc:全局配置,作用范圍為所有用戶;

            ~/.bashrc:用戶配置,作用范圍為當前用戶。

        root用戶的默認umask值與普通用戶的umask不同,root用戶默認為022,而普通用戶默認為002。

        注意:如果文件權限666-umask的值中了現執行權限,則對應的權限會被加1,并生成有效權限。

            例如:umask=0003,那么新建的文件權限為663,此時系統會將663+1,即文件權限為664。

                文件權限解析


文件的特殊權限

    SUID:Set UID

        文件具有SUID的權限,那么此文件做為進程運行時,進程的有效身份不是發起者,而是文件自身的屬主;

        下面舉例說明:

        我們知道任何用戶都可以使用passwd命令來修改自己的密碼,先來看一下passwd命令的權限;

            文件權限解析

            上圖中的"s”就表示此文件擁有SUID權限

        用戶的密碼都是存儲在/etc/shadow文件中,來看一下這個文件的權限;

            文件權限解析

            可以看到此文件沒有任何開放的權限;

            文件權限解析

            使用普通用戶連查看的權限都沒有,而使用passwd命令卻可以修改密碼,這是因為當普通用戶使用passwd命令的時候,運行命令的身份并不是普通用戶本身,而是passwd文件的屬主root,而root用戶不受文件權限的限制,所以任何用戶都可以獲得root的身份來修改自己的密碼。

        修改SUID權限

            chmod u+s  FILE

                文件權限解析

    SGID:Set GID

        將目錄的屬組設置SGID后,屬組中的組成員在此目錄中所創建的文件的屬組不要是用戶的基本組,而是目錄的屬組。

        新建一個組t1,并將目錄test的屬組更改為t1;

        文件權限解析

        將rot用戶加入到t1組中;

         文件權限解析

        在不添加SGID權限時,用戶rot在目錄test中創建文件,可以看到文件的屬組為rot;

        文件權限解析

        添加SGID權限后,再次創建文件發現屬組為t1。

        文件權限解析

        文件權限解析

        修改SGID權限

            chmod g+s  FILE  

                格式與用法同SUID相同,不再給出實例。

        SGID也可以針對文件來設置,其用法與SUID類似,設置了SGID的程序,在運行時獲得文件屬組的權限。

        SGID通常使用在多人同時合作一個項目工作時,將項目組成員加入到同一個附加組中,這樣任何組成員創建的文件組內其他成員也同時具有訪問和修改的權限,但同時也會出現一個問題,由于SGID是設置在目錄上的權限,那么要在目錄中創建和修改文件就必須分配寫(w)權限,這樣刪除文件的權限也同時被授予的了組成員,造成安全隱患;我們可以通過設置沾滯位來解決這個問題。

    SBIT:Sticky Bit

        對目錄設置此權限后,用戶在目錄中只能刪除自己創建的文件和目錄,而無權刪除其它用戶所創建的文件和目錄。

            對目錄test設置SBIT權限;

        文件權限解析

            使用rot用戶在目錄test中創建文件;

        文件權限解析

            目錄test的權限為777,所以任何用戶都可以在目錄中內容做添加、刪除操作,但是使用t4用戶卻無法刪除a1文件。

        文件權限解析

            修改SBIT權限

            格式:chmod o+t  FILE

    使用數字來表示特殊權限

        在查看umask值時有4位數字,后三位為屬主、屬組、其它用戶的權限,第一位就是特殊權限位,其對應的數字如下:

            SUID:4

            SGID:2

            SBIT:1

         例如:權限為-rwsr-xr-x用數字表示為:4755

     有一種情況,我們有時會看到特殊權限位使用大寫的S和T來表示,這是因為其缺少相對應的執行權限,如:

        文件權限解析

        文件a 沒有任何的執行權限,那么此時加上特殊權限的話,會出現以下情況:

        文件權限解析

     特殊權限的作用對象

        SUID:文件

        SGID:目錄和文件

        SBIT:目錄 


文件的隱藏屬性

    上面我們在介紹文件屬性時,9位權限位后面有一個“.”表示文件有隱藏屬性,下面我們就來了解一下文件的隱藏屬性。

    使用lsattr命令來查看文件的隱藏屬性;

        文件權限解析

    使用chattr命令來修改文件的隱藏屬性;

        chattr +屬性 文件名

        常用屬性:

            a:只能追加內容;

            i:不可以修改;

            u:不可以刪除;

            A:不更改訪問時間戳。

        下面舉例說明:

             給文件a添加屬性a,如下圖:

            文件權限解析

            向文件a中追加內容;

            文件權限解析

            將文件a中的內容進行覆蓋;

            文件權限解析

            修改文件中的內容是不被允許的。

            此功能可用于設置日志文件,既可以保證日志的安全,又能夠滿足持續向日志文件進行寫操作的需求。

            其它屬性此處不再進行演示,可以自行進行實驗查看效果。


FACL:文件訪問控制列表

    用于提供除屬主、屬組、其它用戶的讀、寫、執行權限以外的具體權限的設置??梢葬槍我挥脩簟我晃募蚰夸泚磉M行讀、寫、執行的權限設置,對于有特殊要求的權限設置非常有幫助。

    設置ACL

        getfacl 文件名

            查看文件或目錄的ACL信息。

            文件權限解析

            上圖的顯示的了ACL的詳細信息,其中包括文件名、屬主、屬組、特殊權限(上圖中為SUID)、以及對應的權限。

        setfacl [-bkRd] [ {-m|-x} acl參數 文件名

            參數:

                -b:刪除所有的ACL參數;

                -k:刪除默認的ACL參數;

                -R:遞歸設置;

                -d:設置默認ACL參數;

                -m:設定ACL參數;

                -x:取消設定ACL參數。

            acl的設定格式:

                用戶:u:[用戶列表]:[rwx-]

                    設置用戶rot對于文件a有讀寫權限;         

                    文件權限解析

                    設置ACL后可以看到在權限位后出現一個“+”;

                    文件權限解析

                     查看文件a的acl權限

                    文件權限解析

                    測試acl權限

                    50.png

                    從上圖可以看到用戶rot在other權限為只讀的情況下依然可以向文件a中寫入數據;

                    51.png

                    而使用用戶t5只沒有寫權限

                組:g:[組列表]:[rwx-]

                    52.png

                    53.png

                    用戶組與用戶的設置基本相同,此處不再詳述。

                mask:m:[rwx-]

                    mask表示用戶或用戶組的權限必須要在mask的權限范圍內才能生效;

                    54.png

                    上圖中用戶和組都具有讀和寫的權限,但mask規定只能有讀的權限;

                    55.png

                    此時用戶rot再向文件a中寫入數據時就會提示沒有權限了。

                    不過在設置時為了避免造成混亂umask一般都設置為rwx。

                設置默認acl:d:[ug]:用戶列表:[rwx-]

                    只能作用于目錄;

                    56.png

                    在test目錄中新建文件夾t5并查看acl,可以看到用戶t5的權限已被加到文件夾中。

                    57.png

            -R參數:

                對目錄rot進行遞歸授權,則不但目錄rot的權限被改變;

                58.png

               目錄中的文件的權限也被同時改變了。

                59.png

            遞歸授權與設置默認權限操作的區別在于,遞歸授權是對目錄中現有的文件或目錄進行操作,而對于新增的文件或目錄則沒有影響;默認權限則是對于目錄中新增的文件或目錄進行權限設置,而對于在設置默認權限時目錄中已經存在的文件或目錄沒有影響。

            -x參數:

                刪除指定的權限設置

                62.png

                刪除t4用戶的權限;

                63.png            

            -k參數:

                刪除默認權限的設置

                60.png

                61.png

            -b參數:

                刪除所有acl的權限設置;

                64.png

                65.png

                66.png

    應用ACL后權限的匹配模型:

        1、訪問文件或目錄的用戶是否為文件的屬主,是則匹配屬主的權限,否則;

        2、查找ACL中是否有此用戶的權限設定,有則匹配ACL中的權限,否則;

        3、用戶是否為文件屬組的組成員,是則匹配屬組的權限,否則;

        4、查找ACL中是否有用戶組的權限設定,有則查找用戶是否屬于此用戶組,有則匹配ACL中的權限,否則;

        5、匹配其它用戶的權限。             

                              

                    

                    

 

原創文章,作者:petmaster,如若轉載,請注明出處:http://www.www58058.com/1227

(0)
petmasterpetmaster
上一篇 2015-03-23
下一篇 2015-03-23

相關推薦

  • raid 5 軟件實現

    raid 5        RAID 5是一種存儲性能、數據安全和存儲成本兼顧的存儲解決方案。 RAID 5可以理解為是RAID 0和RAID 1的折中方案。RAID 5可以為系統提供數據安全保障,但保障程度要比Mirror低而磁盤空間利用率要比Mirror高。RAID 5具有和RAID 0相近似的…

    2017-05-02
  • 磁盤分區管理與文件系統的創建

    磁盤分區管理與文件系統的創建   不光是linux文件系統,所有的大結構,多數據湊到一塊的時候,單一的管理是沒有能力處理這樣龐大規模的存在的。所謂“君王不下縣”也就是這個道理。要系統的,規范的管理一個國家,存在著省、市這樣的層級結構。linux系統也是這樣,將整個系統劃分為若干個分區,實現不同功能,不同層級的規范管理,這就是創建磁盤分區的意義。既然…

    Linux干貨 2016-09-01
  • N21沉舟17周作業

    1、結合圖形描述LVS的工作原理; NAT模型 NAT模型其實就是通過網絡地址轉換來實現負載均衡的,它的工作方式幾乎跟iptables 中的DNAT一模一樣的,NAT模型的工作方式: 1.用戶請求VIP(也就是是CIP請求VIP) 2,Director Server 收到用戶的請求后,發現源地址為CIP請求的目標地址為VIP,那么Dorector Serve…

    Linux干貨 2016-11-14
  • N25-第一周 總結

    一、描述計算機的組成及其功能     CPU:包括運算器、控制器、寄存器、緩存,計算樞紐,網絡的包處理、磁盤讀寫、數學計算等。     內存:加載數據,提高計算速度,程序被加載到內存成為進程運行。     輸入:鍵盤、鼠標     輸出:打印機、顯示器 二、按系列羅列linux的…

    Linux干貨 2016-12-05
  • 課堂練習及課后作業(0805文本處理工具)

    課堂練習: 1、找出ifconfig命令結果中本機的所有IPv4地址 2、查出分區空間使用率的最大百分比值 3、查出用戶UID最大值的用戶名、UID及shell類型 4、查出/tmp的權限,以數字方式顯示 5、統計當前連接本機的每個遠程主機IP的連接數,并按從大到小排序 grep 1、顯示/proc/meminfo文件中以大小s開頭的行;(要求:使用兩種方式…

    Linux干貨 2016-08-07
  • God進程監控框架

    監控重啟進程的方案有很多種: 最簡單的方法,寫個腳本fork進程運行,然后waitpid,如果獲pid后就再次啟動 最土的方法,配置cron任務,固定時間運行腳本檢查進程是否存在,不存在則啟動 百度使用qmail里的supervised程序,通過supervised監管進程。 優點:supervised可以啟動daemon程序,對于非daemon需要采用no…

    Linux干貨 2015-02-13

評論列表(3條)

  • stanley
    stanley 2015-03-25 15:06

    內容知識點都很到位,但初看會給人亂的感覺,不容易保留用戶持久常駐。希望在下一篇的文章會有改進

    • petmaster
      petmaster 2015-03-25 23:31

      @stanley嗯呢 仔細讀了一遍 確實我些地方感覺自己也是一下子沒看懂 有時間我再修改一下 謝謝!

  • Linux_love
    Linux_love 2015-03-28 17:44

    mark

欧美性久久久久