20160803普通權限與特殊權限及umask

權限

    任何一個可執行程序文件能不能啟動為進程,取決發起者對程序文件是否擁有執行權限.即權限決定用戶對文件或者目錄的使用范圍.在Linux系統中,root的權限是最高的,可操作的權限最大,通常情況下root賬號只用于管理系統的重要信息,并不做日常維護工作,所以正確設定用戶的權限對系統的安全性尤為重要.

普通權限:


文件目錄只針對三類用戶: 

    u :屬主    g :屬組    o :其他用戶

而權限分為三種:      

     r :讀readable    w :寫writable    x :寫excutable

權限對文件與目錄的含義:

文件: 

    r(可讀權限):可以使用類似cat等命令查看其文件的內容

    w(可寫權限):可以編輯或刪除其文件

    x(可執行)  :可以運行此文件

目錄:

    r: 可以對此目錄查看目錄內的文件內容,如 ls

    w:可以在此目錄創建文件或目錄,但必須有x權限的前提下

    x:可以使用cd切換進此目錄或 ls -l 查看目錄內文件的詳細信息

用命令 # ll file 可查看file 的權限以及屬主,組

[root@localhost testdir]# ll
total 0
-rw-r--r--. 1 root root 0 Aug  3 22:59 fi
[root@localhost testdir]#

一組權限為rwx,用八進制來表示一下;      注意:此排序是不能亂排序的。

   權限        二進制       八進制  

    rwx         111            7

    –x         001            1

    -w-         010            2

    -wx         011            3

    r–         100            4

    r-x         101            5 

    rw-         110            6

    rwx         111            7

如此一來,則每三位權限為一組就可以直接用數字來表示了.如上命令 fi 文件權限為 0644 

修改文件權限: chmod

root可以修改如何文件或者目錄的權限,其他用戶只能修改屬主是自己的文件或者目錄

    chmod [OPTION]… OCTAL-MODE FILE…

    -R: 遞歸修改權限

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

chmod可以直接修改權限或者賦予某一項權限:

    修改一類用戶的所有權限:

    u= g= o= ug= a= u=,g=

    修改一類用戶某位或某些位權限

    u+ u- g+ g- o+ o- a+ a- + –

    chmod [OPTION]… –reference=RFILE FILE…

    參考RFILE文件的權限,將FILE的修改為同RFILE;

更改文件的屬主,屬組  (change ower )  chown

    1. chown [OPTION]… [OWNER][:[GROUP]] FILE…  //修改文件的屬主或者屬組

  # chown

    2. chown [OPTION]… –reference=RFILE FILE…

    # chown --reference=/etc/inittab /etc/passwd

更改組 (change group ) chgrp :

 chgrp [OPTION]… GROUP FILE…

# chgrp bin f1   //修改文件f1屬組為 bin , 此處屬組可以用Gid代替

反掩碼 :umask 

在Linux系統里,以root身份創建file的默認權限為644,而目錄為755,普通用戶創建文件是默認是664,目錄默認權限是775.次處造成兩者權限不同是因為umask-反掩碼

    文件的最高權限為777,目錄的最高權限為666(目錄沒有執行x權),系統會根據發起創建文件或者目錄的用戶來判斷使用的umask值,然后以(777-umask)|(666-umask)得到的值來作為文件的權限

    所以,umask值是從文件或者目錄上屏蔽掉最大權限相應的位,從而得出默認權限

    dir :777-umask

    file:666-umask (若得出的三位數中有奇數則加1,偶數保留)


umask值是 /etc/bashrc里定義的,用一個判斷語句來決定的,當登錄的用戶UID小于0時使用022作為umask值,否則使用002作為umask值,然后在與系統默認創建文件和目錄的值(666/777)進行減法運算,最后得出的就是文件或目錄的值。

//這就是判斷umask值的if else語句

if [ $UID -gt 199 ] && [ "`id -gn`" = "`id -un`" ]; then

       umask 002

    else

       umask 022

    fi

umask 相關命令:

        umask: 查看

umask #: 設定

umask 002

umask –S 模式方式顯示

umask –p 輸出可被調用

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


特殊權限 SUID SGID Sticky :

        SUID 權限:

執行 設置SUID 權限的文件,執行者可以以文件屬主的身份執行;然而suid只對二進制可執行程序有效,而設置在目錄上無意義

權限設定: chmod u+s FILE

 chmod u-s FILE

特設權限位:1—

SGID 權限:

與SUID類似,可作用于目錄

特設權限位:2—

Sticky 位:

在目錄設置Sticky 位,只有文件的所有者或root可以刪除該文件,其他人無法刪除文件,Sticky設置在文件上無意義

chmod o+t DIR…

chmod o-t DIR…

特設權限位:4—

權限位映射

SUID: user,占據屬主的執行權限位

s: 屬主擁有x權限

S:屬主沒有x權限

SGID: group,占據屬組的執行權限位

s: group擁有x權限

S: group沒有x權限

Sticky: other,占據other的執行權限位

t: other擁有x權限

T: other沒有x權限

設定文件特定屬性

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

chattr +a 只能增加

lsattr 顯示特定屬性


訪問控制列表ACL:

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生效順序:所有者,自定義用戶,自定義組,其他人

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

mount -o acl /directory

getfacl file |directory

setfacl -m u:wang:rwx file|directory

setfacl -Rm g:sales:rwX directory

setfacl -M file.acl file|directory

setfacl -m g:salesgroup:rw file| directory

setfacl -m d:u:wang:rx directory

setfacl -x u:wang file |directory

setfacl -X file.acl directory

ACL文件上的group權限是mask 值(自定義用戶,自定義組,擁有組的最大權限) ,而非傳統的組權限 ====>即組的權限只能與mask值相等或者比mask低

    # setfacl -m m::rw file/dir 

    # setfacl -q

    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

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

(0)
hunterhunter
上一篇 2016-08-04 14:25
下一篇 2016-08-04 14:39

相關推薦

  • 上篇博客簡單提了一下Nginx配置文件的大體組成部分,這次來好好解釋一下這些個配置文件。 一、main配置段 分類:    正常運行必備的配置    優化性能相關的配置    用于調試及定位問題相關的配置   …

    Linux干貨 2016-10-26
  • lvs

    Lvs 一、lvs集群的類型:4類工作模式 1.1、lvs-nat 特點:通過將請求報文中的目標地址和目標端口修改為挑選出的某RS的RIP和PORT實現轉發。 客戶端訪問lvs集群服務,此時報文的源地址為cip,目標地址為vip,通過lvs進行dnat轉發后端服務器主機,此時,報文的源地址為cip,目標地址為rip;后端主機響應時,報文源地址為rip,目標地…

    Linux干貨 2016-10-30
  • MBR

    關于磁盤的使用,必須要弄明白MBR 分區劃分方式     centos 6:扇區劃分     centos 7:柱面劃分 MBR:Master Boot Record:512bytes 0磁道0扇區 512bytes=446bytes(boot loader) + 4*16byt…

    Linux干貨 2016-09-05
  • linux中文本處理工具cat 、less、more、head、tail、cut等使用

    文本內容查看工具:cat和less  cat 使用:查看文件內容          cat  選項      文件        …

    Linux干貨 2016-08-08
  • 基本腳本編譯

                                  …

    2017-08-05
  • 軟件包管理 — rpm & yum

    軟件包管理 包管理器     二進制應用程序的組成部分:         二進制文件、庫文件、配置文件、幫助文件     程序包管理器:      &…

    Linux干貨 2016-08-24

評論列表(1條)

  • 馬哥教育
    馬哥教育 2016-08-04 20:58

    總結的很好,如果能有一些代碼高亮就更好的。

欧美性久久久久