權限管理

linux文件權限:

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

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

    應用于文件:

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

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

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

    應用于目錄:

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

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

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

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

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

2016-08-04_215014.png

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

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

修改文件的屬主或屬組:

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

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

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

     chown owner FILE:修改文件的屬主

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

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

2016-08-04_221320.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值

2016-08-04_223720.png2016-08-04_223808.png

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

2016-08-04_224125.png

默認創建文件:666-umask值

默認創建目錄:777-umask值

特殊權限: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

2016-08-04_225755.png

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

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

權限設定:

    chmod g+s FILE|DIR

    chmod g-s FILE|DIR

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

2016-08-04_231440.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

2016-08-04_232850.png

chattr:設定文件特定屬性:

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

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

    -a:只能增加

lsattr:查看文件特定屬性

2016-08-05_084808.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

2016-08-07_134302.png

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

2016-08-07_134500.png

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

2016-08-07_134610.png

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

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

2016-08-07_134852.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

2016-08-07_135240.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

2016-08-07_135817.png

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

(0)
zhai796898zhai796898
上一篇 2016-08-07
下一篇 2016-08-07

相關推薦

  • 第一周:Linux基礎之常用命令(二)

    一、Linux的命令使用格式 命令的語法通用格式: ~]# COMMAND  OPTIONS  ARGUMENTS   命令  選項  參數 1.  COMMAND,命令:發起命令時將請求內核將某個二進制程序運行為一個進程,命令本身是一個可執行的程序文件,二進制格式的文件有可能會調用共享庫文件。 多…

    Linux干貨 2016-09-18
  • dd命令詳解

    dd命令: convert and copy a file用法:  dd if=/PATH/FROM/SRC of=/PATH/TO/DEST   bs=#: block size, 復制單元大小   count=#:復制多少個bs   of=fil…

    Linux干貨 2017-03-19
  • Apache-httpd工作模型

    httpd   httpd是由apache軟件基金會開發的一款著名的web服務器軟件。由于其開放源代碼,并且擁有跨平臺、功能強大、安全穩定等特性,而被廣泛使用。早期httpd是在修修補補的基礎上成長起來的,所以早期也叫作a pachey server,由于開發httpd的組織叫作apache,因此httpd也被稱作apache。httpd有三個長線維護版本,…

    Linux干貨 2017-02-15
  • N25-第七周作業

    第七周作業 — 1、創建一個10G分區,并格式為ext4文件系統; fdisk /dev/sdanp2enter+10Gwpartx -a /dev/sda(1) 要求其block大小為2048, 預留空間百分比為2, 卷標為MYDATA, 默認掛載屬性包含acl;mke2fs -t ext4 -b 2018 -m 2 -L “MYDATA” /…

    Linux干貨 2017-02-25
  • 第一周:Linux基礎之系統入門知識(一)

    一、計算機的組成及功能 現代計算機的基本結構是由匈牙利-美國科學家馮· 諾依曼于1946年提出的。迄今為止所有進入實用的電子計算機  都是按馮· 諾依曼提出的結構體系和工作原理設計制造的故又統稱為“馮·諾依曼型計算機"。 根據馮.諾依曼原理:計算機由運算器、控制器、存儲器、輸入設備、輸出設備所組成 運算器: 進行算術與邏輯運算 控制器:&…

    Linux干貨 2016-09-18
  • 18頁PPT帶你深度解讀運維自動化

    一、概述    在前面的文章中,提到【運維的本質—可視化】,在其中著重強調是自動化的可視化和數據化的可視化。在這個文章中,全面解碼看看自動化的極致狀態為什么是可視化?在前面的另外一篇文章【運維平臺全體系介紹】中,也講到運維平臺體系的構成,提出“**及服務”的理念,其中有幾部分和自動化密切相關,比如說資源及服務、配置及服務、架構…

    2015-04-03

評論列表(1條)

  • 馬哥教育
    馬哥教育 2016-08-07 23:33

    文章思路清晰,從權限模型到特殊權限都有著自己的操作和理解。

欧美性久久久久