天天看點

SUID&SGID&Sticky&setfacl

一、特殊權限檔案:

ls -l /bin/passwd

特殊權限:SUID,SGID,STICKY

程序的權限取決于發起者:使用者

屬主--->屬組--->其他人 //根據檔案的權限位置進行比對

//這就叫做安全上下文

安全上下文:

1.程序以某使用者的身份運作;程序是發起此程序使用者的代理,是以以此使用者的身份和權限完成所有操作

2.權限比對模型:

(1)判斷程序的屬主,是否為被通路的檔案屬主的權限,否則進入第2步

(2)判斷程序的屬主,是否屬于被通路的檔案屬組,如果是,則應用屬組的權限,否則進入第3步

(3)應用other權限

二、SUID:

    /bin/ls ls檔案的屬主為root,wolf使用的時候,隻能使用其他人的權限發起,但是程序的屬主确是wolf的

    預設情況下:使用者發起的程序,程序的屬主是其發起者;是以,其以發起者的身份在運作

    但是有了SUID之後:

        發起程序的時候,程序運作的身份将成為檔案的屬主,而不是程序的發起者

    //相當于,沒有的時候,我自己幹,有了之後有人幫我幹,重要檔案

SUID:使用者運作某程式時,如果此程式擁有SUID權限,那些程式運作為程序時,其屬主不是發起者,而是程式檔案的屬主

實驗1:SUID

[[root@MT test]# ls /bin/cat -l

-rwxr-xr-x. 1 root root 54048 11月 20 2015 /bin/cat

[root@MT test]# ls /etc/shadow -l

----------. 1 root root 1663 2月   8 20:05 /etc/shadow

cp /bin/cat /tmp

chmod u+s /tmp/cat

/tmp/cat /etc/shadow //使用wolf的身份是可以檢視密碼的

passwd指令具有SUID,但是隻有root使用者能夠passwd USSERNAME

管理檔案的SUID權限

chmod u+|-s FILE ...

展示位置:屬主的執行權限位

如果屬主原本有執行權限,顯示小寫s;

否則,顯示為大寫S

三、SGID

    SGID:多用于修改目錄的屬主權限

作用:

當目錄屬組有寫權限時,且有SGID權限時,那麼所有屬于此目錄的屬組,且以屬組身份在此目錄中建立檔案或目錄時,新檔案的屬組不是使用者的基本組,而是此目錄的屬組

實驗2:

ls /tmp/test -dl

drwxrwxr-x. 2 root mygrp 6 2月   9 11:48 test

[root@MT tmp]# usermod -a -G mygrp wolf

[root@MT tmp]# usermod -a -G mygrp tmd

//分别切換wolf和tmd建立檔案

-rw-rw-r--. 1 tmd  tmd    0 2月   9 11:51 b.tmd

drwxrwxr-x. 2 root mygrp 19 2月   9 11:51 test

chmod g+s /tmp/test

//分别切換再次建立檔案

-rw-rw-r--. 1 tmd  mygrp 0 2月   9 11:54 c.tmd

-rw-rw-r--. 1 wolf mygrp 0 2月   9 11:53 c.wolf

-rw-rw-r--. 1 wolf wolf 0 2月   9 11:53 a.wolf

-rw-rw-r--. 1 tmd tmd 0 2月   9 11:53 a.tmd

//每個使用者在目錄内建立的檔案的屬組都是父目錄的屬組

四、Sticky:

wolf: rm -rf /tmp/test/a.tmd

wolf:rm -rf /tmp/test/c.tmd 

//都可以删除,因為wolf也屬于mygrp組,而/tmp/test的屬組為mygrp

//隻要屬組對目錄有w權限,組内的其他使用者就可以删除和修改目錄下所有的檔案

功用:

對于屬組可寫,或全局可寫的目錄,組内的所有使用者或系統上的所有使用者在次目錄中都能建立新檔案或者删除删除已有檔案,

如果為此類目錄設定sticky權限,則每個使用者能建立新檔案,且隻能删除自己為屬主的檔案

//GUID主要用于檔案,或者指令,用于改變程序發起的身份

SGID:主要用于目錄,改變目錄内建立檔案的屬組 //組内使用者以及其他使用者建立的檔案,都是目錄的屬組

sticky:主要用于目錄,限制使用者隻能删除屬主為自己的使用者

chmod [u|g] [+|-] s file ...

chmod o+t file //設定sticky權限

-rwsrwSr-T. 1 hadoop mygrp 27 2月   9 12:35 bb

//s沒有x權限,S具有x權限,T具有x

特殊權限的另一方式:八進制權限位

suid sgid sticky

0 0 0 0

0 0 1 1

0 1 0 2

0 1 1 3

1 0 0 4

1 0 1 5

1 1 0 6

1 1 1 7

基于八進制方式賦權時,可于預設的三位八進制數字左側再加一位八進制數字

例如chomd 1777

五、facl

    facl:file access control lists

檔案額外的賦權機制:

在原有的u,g,o之外,另一層讓普通使用者能控制賦權給另外的使用者或組的賦權機制;

setfacl -m u:wolf:rwx  a.txt

getfacl /PATH/TO/SOMEFILE

-rw-rwxr--+ 1 root root  0 2月   9 12:55 cc

//後面多一個+

賦權:

setfacl -m u:USERNAME:MODE file...

setfacl -m g:GROUPNAME:MODE file...

撤銷操作:

setfacl -x u:USERNAME FILE...

setfacl -x g;GROUPANME file...

    權限比對:

屬主--------->屬組--------->其他人

facl的user facl的group

setfacl -m u:wolf:--- aa //限制wolf沒有任何權限

<b></b>

<b>本文轉自MT_IT51CTO部落格,原文連結:http://blog.51cto.com/hmtk520/1942867</b><b>,如需轉載請自行聯系原作者</b>