linux權限管理

linux文件權限

   文件的屬性和權限的設置對于linux系統來說是相當重要的,如果對這一塊的知識沒有一個深入的了解,你的系統就有可能有很大的危險。那么首先我們來看一看文件的屬性所對應的都是什么意思吧。

linux權限管理1.png

上圖第一個字符是d,他代表了文件的類型,d的意思就是目錄文件,那么除了目錄文件還有什么文件呢?

    d:目錄 -:文件 l:鏈接文件 b:可以存儲的接口設備 c:串行端口設備(鍵盤,鼠標)

接下來的九個字符以三個為一組分別是

    rwx:屬主的權限。 r-x:屬組的權限。 r-x:其他人的權限。

    r(read):可讀取 w(write):可寫入 x(execute):可執行

   所以上面這個文件的屬主是root。他對文件可讀取可寫入可執行。文件的屬組是root,root組內成員可讀取可執行,除了屬主屬組之外的其他人對該文件可讀取可執行。

更改屬主屬組權限命令

    chown:改變文件所屬的用戶組。

    chgrp:改變文件的所有者。

    chmod:改變文件的權限。

修改文件的屬主:chown

    chown [OPTION]… [OWNER][:[GROUP]] FILE…

    用法: OWNER

    OWNER:GROUP

    :GROUP 命令中的冒號可用.替換;

    -R: 遞歸

    chown [OPTION]… –reference=RFILE FILE…

修改文件的屬組:chgrp

    chgrp [OPTION]… GROUP FILE…

    chgrp [OPTION]… –reference=RFILE FILE…

    -R 遞歸

修改文件的權限:chmod

  文件權限的改變可以使用chmod這個命令,但是權限的設置方法有兩種,分別可以使用數字或者是符號來進行更改。

命令使用格式

    chmod [OPTION]… OCTAL-MODE FILE…

-R: 遞歸修改權限

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

    chmod [OPTION]… –reference=RFILE FILE… 參考RFILE文件的權限,將FILE的修改為同RFILE;

數字改變文件權限

    linux系統的基本權限有9個,每三個一組,每一組分別對應了owner、group、others三種身份。我們可以使用數字來代表各個權限分別是

    r:4 w:2 x:1

當要設置xx文件權限為[-rwxr-xr-x]

    owner=rwx=4+2+1=7

    group=r-x=4+1=5

    others=r-x=4+1=5

所以在設置權限時,該文件權限的設置數字就是755.執行chmod 755 xx就可以了。

符號改變文件權限

三種身份用user=u;group=g;others=o來表示,讀寫執行權限用rwx來表示

linux權限管理2.png

當xx文件權限為[-rwxr-xr-x]我們要給它加入所有權限時執行

    1、chmod a=rwx

    2、chmod g=rwx,u=rwx,a=rwx

    3、chmod g+w,o+w

目錄/文件的權限意義

  權限對文件的意義

    r(read):可讀取此文件的內容,比如讀取文本文件里的內容。

    w(write):可以編輯、新增或者是修改該文件的內容。

    x(execute):該文件可以被系統執行。

  權限對目錄的重要性

    r:表示具有讀取目錄結構列表的權限。可以查詢該目錄結構下的文件列表。

    w:表示你具有更改該目錄結構列表的權限

  如:新建新的文件與目錄。

     刪除已存在的文件與目錄(不管該文件的權限如何)。

     將已存在的文件或目錄進行重命名。

     轉移該目錄內的文件、目錄位置。

     x:代表的是用戶能否進入該目錄成為工作目錄。

新建文件和目錄的默認權限

  umask值 可以用來保留在創建文件權限

  新建FILE權限: 666-umask 如果所得結果某位存在執行(奇數)權限,則將其權限+1

  新建DIR權限: 777-umask

  非特權用戶umask是 002 root的umask 是 022

    umask: 查看

    umask #: 設定

    umask 002

    umask –S 模式方式顯示

    umask –p 輸出可被調用

  全局設置: /etc/bashrc 用戶設置:~/.bashrc

  這里加入我們新建一個文件默認讓它沒有權限,根據規則,命令為:

    umask 777

    666-777=-1-1-1

    每一項加1得000

linux權限管理3.png

linux系統中三種特殊權限

    SUID,  表現為s  數字為4(作用在二進制程序)

    SGID,  表現為s  數字為2(作用在二進制程序)

    Sticky 表現為t   數字為1(作用在目錄上)

    安全上下文

SUID

前提:進程有屬主和屬組;文件有屬主和屬組

    (1) 任何一個可執行程序文件能不能啟動為進程:取決發起者 對程序文件是否擁有執行權限

    (2) 啟動為進程之后,其進程的屬主為發起者;進程的屬組為 發起者所屬的組

    (3) 進程訪問文件時的權限,取決于進程的發起者

    (a) 進程的發起者,同文件的屬主:則應用文件屬主權限

    (b) 進程的發起者,屬于文件屬組;則應用文件屬組權限

    (c) 應用文件“其它”權限

SGID

    任何一個可執行程序文件能不能啟動為進程:取決發起者對 程序文件是否擁有執行權限

    啟動為進程之后,其進程的屬主為原程序文件的屬主

    SUID只對二進制可執行程序有效

    SUID設置在目錄上無意義

    當一個目錄有S權限時在該目錄下創建的所有新文件子目錄文件自動繼承該目錄的屬組

Sticky(粘滯位:可以讓其他人不能刪除文件。)

    具有寫權限的目錄通常用戶可以刪除該目錄中的任何 文件,無論該文件的權限或擁有權

    在目錄設置Sticky 位,只有文件的所有者或root可 以刪除該文件

    sticky 設置在文件上無意義

    權限設定: chmod o+t DIR… chmod o-t DIR…

    例如:

    ls -ld /tmp drwxrwxrwt 12 root root 4096 Nov 2 15:44 /tmp

注意:對文件夾來說其他權限必須配合x權限。

設定文件的特殊屬性

    chattr +i 不能刪除,改名,更改

    chattr +a 只能增加\讀取。

    chattr +A 鎖定文件訪問時將。

    lsattr 顯示特定屬性

linux權限管理4.png

訪問控制列表(ACL:Access Control List)

    ACL:Access Control List,實現靈活的權限管理

    除了文件的所有者,所屬組和其它人,可以對更多的用戶設 置權限

    CentOS7.0默認創建的xfs和ext4文件系統有ACL功能。

    CentOS7.X之前版本,默認手工創建的ext4文件系統無ACL 功能。需手動增加: tune2fs –o acl /dev/sdb1 mount –o acl /dev/sdb1 /mnt

    ACL生效順序:所有者,自定義用戶,自定義組,其他人

    FAT分區不支持權限。

有關acl的命令例

    為多用戶或者組的文件和目錄賦予訪問權限rwx

    mount -o acl /directory

    getfacl file |directory  查看目錄的具體acl權限

    setfacl -m u:user:rwx file|directory

    setfacl -Rm g:user:rwX directory  對于

    setfacl -M file.acl file|directory  讀取文件內容設置目標目錄權限

    setfacl -m g:user:rw file| directory

    setfacl -m d:u:user:rx directory

    setfacl -m m::r directory  更改所有目錄的有效權限

    setfacl -x u:user file |directory  刪除用戶權限

    setfacl -X file.acl directory 讀取文件內容刪除目標目錄權限

    setfacl -b directory 徹底清空文件acl權限

    添加acl時目錄所屬組的權限更新為mask權限。但是mask權限只影響添加進acl的用戶權限與用戶組的權限

acl訪問控制列表

    ACL文件上的group權限是mask 值(自定義用戶,自定義組 ,擁有組的最大權限),而非傳統的組權限

    getfacl 可看到特殊權限:flags

    默認ACL權限給了x,文件也不會繼承x權限。

    base ACL 不能刪除

    setfacl -k dir 刪除默認ACL權限

    setfacl -b file1清除所有ACL權限

    getfacl file1 | setfacl –set-file=- file2 復制file1 的acl權限給file2

    mask只影響除所有者和other的之外的人和組的最大權限 Mask需要與用戶的權限進行邏輯與運算后,才能變成有限的權限 (Effective Permission) 用戶或組的設置必須存在于mask權限設定范圍內才會生效。 setfacl -m mask::rx file

    –set選項會把原有的ACL項都刪除,用新的替代,需要注意的 是一定要包含UGO的設置,不能象-m一樣只是添加ACL就可以. 如:

    setfacl –set u::rw,u:wang:rw,g::r,o::- file1

    備份和恢復ACL

    主要的文件操作命令cp和mv都支持ACL,只是cp命令需要 加上-p 參數。但是tar等常見的備份工具是不會保留目錄 和文件的ACL信息

    #getfacl -R /tmp/dir1 > acl.txt

    #setfacl -R -b /tmp/dir1

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

    #getfacl -R /tmp/dir1

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

(0)
502795641502795641
上一篇 2016-08-04
下一篇 2016-08-04

相關推薦

  • httpd——事務

    http協議: http/0.9 ,http/1.0 ,http/1.1 ,http/2.0 http協議:stateless          服務器無法持續追蹤訪問者來源          &nb…

    Linux干貨 2016-10-12
  • 磁盤陣列(RAID)簡介

    資料 RAID(Redundant Arrays of Inexpensive Disks 廉價磁盤冗余陣列)即磁盤陣列,磁盤陣列是由多個價格比較便宜的磁盤組合成的一個容量巨大的磁盤組,其原理是利用數組方式來制作磁盤組,配合數據分散排列的設計,配合數據分散排列的設計,提升數據的安全性。它把數據分別存放在多個硬盤上,輸入輸出操作能以平衡的方式交疊,改良性能,因…

    Linux干貨 2017-04-17
  • 馬哥教育第一天

    來到馬哥教育第一天,初步接觸IT,第一次寫博客,不知道寫點啥,記幾個地址吧。

    2018-03-26
  • 設計模式(十一)代理模式Proxy(結構型)

    1.概述        因為某個對象消耗太多資源,而且你的代碼并不是每個邏輯路徑都需要此對象, 你曾有過延遲創建對象的想法嗎 ( if和else就是不同的兩條邏輯路徑) ? 你有想過限制訪問某個對象,也就是說,提供一組方法給普通用戶,特別方法給管理員用戶?以上兩種需求都非常類似,并且都需要解決一個更大的問題:你如何提供…

    Linux干貨 2015-07-09
  • 網絡管理基礎-子網劃分及網絡配置練習

    1、某公司申請到一個C 類IP 地址,但要連接6 個的子公司,最大的一個子  公司有26 臺計算機,每個子公司在一個網段中,則子網掩碼應設為?  192.168.100.1 網絡位192.168.100 192.168.100.00000000 C類掩碼255.255.255.0 192.168.100. 000 00001  …

    Linux干貨 2016-09-05
  • 文本處理工具

    文本處理工具 文件查看命令:cat  cat [OPTION]… [FILE]…  -E: 顯示行結束符$  -n: 對顯示出的每一行進行編號  -A:顯示所有控制符  -b:非空行編號  -s:壓縮連續的空行成一行 [root@centous1 soft]#&nb…

    Linux干貨 2016-08-08

評論列表(1條)

  • 馬哥教育
    馬哥教育 2016-08-07 22:17

    用戶和組管理相關的命令都已經總結好了,如果能相應的有些示例說明,與縮進,就更好了哦

欧美性久久久久