權限管理

linux文件權限:


    在linux系統中,每個文件或目錄都包含有相應的權限,這些權限決定了哪些用戶或組能夠對此文件做哪些操作,如讀取、刪除、寫入等操作


文件權限分爲三類:r,w,x


    應用於文件:

        r:只讀,只能查看其文件的內容,例如使用cat命令查看

        w:寫入,能修改其文件的內容,但不能刪除,也無法查看內容

        x:執行,可執行的二進制程序或者腳本文件


    應用於目錄:

        r:能夠查看其目錄下的文件,但無法查看詳細信息

        w:可以在目錄下創建或者刪除文件,需要配合x權限

        x:可以進入目錄,可訪問目錄下的內容

    X:只對目錄的x權限生效,文件不生效


當我們使用ls -l命令查看文件或目錄時會列出一系列的屬性信息:

wKioL1e1KL7CiWZoAAAjFarUrJE159.png

最左側一列由十位組成,其中第一位表示文件的的類型,d表示目錄文件,-表示普通文件,等等


其餘九位表示文件的權限,其中每三位一組,分爲三組,自左而右匹配,第一組表示文件屬主的權限,第二組表示文件屬組的權限,第三組則爲其他用戶的權限


修改文件的屬主或屬組:

chown:修改文件的屬主或屬組

    -R:遞歸,對目錄下所有子文件及目錄全部生效

    –reference:參考文件的屬主屬組,將文件的屬主或屬組與某一文件設定一致

    chown owner FILE:修改文件的屬主

    chown :group FILE:修改文件的屬組

    chown owner:group:修改文件的屬主與屬組

wKioL1e1KQ_gIjdEAAAcyAONaS8904.png

chgrp:修改文件屬組,由於chown包含了此命令的功能,在此不做介紹


權限的八進制表示法:

    — 000 0

    –x 001 1

    -w- 010 2

    -wx 011 3

    r– 100 4

    r-x 101 5

    rw- 110 6

    rwx 111 7


    例如:

    640等於rw-r—–

    755等於rwxr-xr-x


chmod:權限管理

    -R:遞歸,修改目錄下所有文件及目錄的權限

    –reference:參考某文件的權限,將文件的權限設定與指定文件權限一致


三類用戶:

    u:文件屬主

    g:文件屬組

    o:其他用戶

    a:表示所有


chmod [OPTION]… MODE[,MODE]… FILE…


權限表示法:

    賦權表示法:直接操作一類用戶的所有權限位(可組合)

        u=

        g=

        o=

        a=


     授權表示法:操作一類用戶的一個或多個權限位(可組合)

        u+,u-

        g+,g-

        o+,o-

        a+,a-


     八進制表示法:直接使用八進制對所有權限位進行賦權

        如777表示權限爲rwxrwxrwx

        755表示rwxr-xr-x

        644表示rw-r—–


umask:文件權限的反向掩碼,創建文件或目錄時設定的默認權限

    umask:查看當前umask值

wKioL1e1KUuwXtWFAAAUrV8oyJY745.png

wKioL1e1KXKR8J_tAAAT_H1XhvA988.png

umask MASK:修改umask值,只對當前shell進程有效,如果想永久有效 需要在配置文件當中定義umask值

wKiom1e1KYfBc6QRAAAXOPg06vI907.png

默認創建文件:666-umask值

默認創建目錄:777-umask值

特殊權限:SUID,SGID,Sticky



Linux系統上的特殊權限


特殊權限:SUID, SGID, STICKY

安全上下文:

    1.當用戶要發起某個程序爲進程時,首先此用戶要對此程序文件具有執行權限才行

    2.當程序被髮起爲進程時,進程的屬主是發起者的屬主,屬組則爲發起者的屬組

    3.當進程去訪問某文件時,權限取決於發起此進程的用戶的權限

    (1)當進程的屬主與文件的屬主所匹配,則應用屬主權限

    (2)當進程的屬主屬於文件的屬組,則應用屬組權限

    (3)應用other權限


SUID:

    如果一個可執行程序擁有SUID,當此程序被啓動爲進程時,進程的屬主不再是發起者,而是程序自身文件的屬主,SUID只對二進制程序有效


權限設定:chmod u+s FILE

chmod u-s FILE


      注意:如果屬主位擁有x權限,則SUID表示爲小s,否則爲大S

wKiom1e1KguAUzs_AABUFCkG9_A985.png


SGID:

   當一個可執行程序擁有SGID,此程序運行爲進程時,屬主不是發起者,而是原文件的屬組

      當一個目錄擁有SGID,則目錄下新建文件的屬組同此目錄的屬組一致


權限設定:

chmod g+s FILE|DIR

chmod g-s FILE|DIR


注意:如果此程序文件的屬組位擁有x權限,則SUID表示爲小s,否則爲大S

wKioL1e1KjDTTQF6AABPONvhdVw496.png


Sticky:

    如果一個目錄具有寫權限,意味着所有用戶都可以任意添加刪除目錄下的文件,如果添加Sticky權限,則只有文件的所有者或root才能刪除該文件


權限設定:

chmod o+t DIR

chmod o-t DIR


    注意:如果此目錄的other位擁有x權限,則SUID表示爲小t,否則爲大T



特殊權限八進制表示法:

    000 0

    001 1

    010 2

    011 3

    100 4

    101 5

    110 6

    111 7

wKioL1e1KlaBBTdLAAAKQ4R3SDw405.png



chattr:設定文件特定屬性:

    -i:鎖定文件,只能讀取文件,不能修改、刪除、移動

    -A:鎖定文件訪問時間戳

    -a:只能增加


lsattr:查看文件特定屬性

wKiom1e1KnvTut7FAAAjCyElBpg911.png



FACL:File Access Control List即文件訪問控制列表,在原有的u,g,o之外,另一層讓普通用戶能控制賦權給另外的用戶或組的賦權機制,主要用於實現權限的靈活管理。


權限匹配安全模型:

    當程序被運行爲進程時,以運行此進程的用戶的身份去完成所有操作

    1.當用戶以某進程訪問文件時,首先判斷此進程的屬主與文件屬主是否一致,如果一致,則應用屬主權限,否則,進入第二步

    2.檢查此進程的屬主是否有特定的FACL權限,如果有,則應用,否則,進入第三步

    3.檢查此進程的屬主是否屬於文件的屬組,如果屬於,則應用屬組權限,否則,進入第四步

    4.檢查此進程的屬主所屬的組是否有特定的FACL權限,如果有,則應用,否則,進入最後一步

    5.應用other權限


setfacl:設定facl權限

    setfacl -m u:USERNAME:MODE FILE | DIR:對文件或目錄設定某個用戶特定的FACL

wKiom1e1KuCywV40AAASTjW0QoQ988.png

setfacl -m g:GROUPNAME:MODE FILE | DIR:對文件或目錄設定某組特定的FACL

wKioL1e1KvSiRR4VAAAW5-imy34070.png

setfacl -M ACL.FILE FILE | DIR:讀取指定文件中的FACL列表

wKioL1e1KweSX8g1AAAhJKsXP1U646.png

setfacl -R u:USERNAME:MODE DIR:對目錄下所有文件都設置FACL 

    setfacl -m d:u:USERNAME:MODE DIR:對目錄下後續創建的文件設定默認FACL

wKioL1e1Kx3BGvILAABDUEn0d6w076.png

setfacl -x u:USERNAME:MODE FILE | DIR:撤銷某個FACL權限

    setfacl -X XACL.FILE FILE | DIR:通過文件中定義的FACL列表來撤銷FACL權限

    setfacl -k DIR:撤銷目錄上的默認FACL權限

    setfacl -b FILE | DIR:清空所有FACL列表


getfacl:可查看FACL權限列表

    getfacl FILE | DIR:查看文件或目錄的FACL權限列表

    getfacl FILE1 | setfacl –set-file=- FILE2:複製FILE1文件的FACL給FILE2文件


mask:控制FACL權限的邊界,隻影響除了屬主和other以外的所有權限

用戶或組的權限必須在mask設定範圍之內纔會生效


設定mask權限:

    setfacl -m mask::rx FILE

wKiom1e1KzvAMJtmAABDHrXFDTU065.png


備份FACL列表:    

    getfacl -R /tmp/dir1 > acl.txt

    setfacl -R -b /tmp/dir1

    setfacl -R –set-file=acl.txt /tmp/dir1

    getfacl -R /tmp/dir1

wKioL1e1K1DwBc7wAABqNrxwSL8159.png

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章