特殊權限:SUID、SGID、STICKY

安全上下文:

一、進程以某用戶的身份運行。進程是發起此進程用戶的代理,所以以此用戶的身份和權限完成全部操做。centos

二、權限匹配模型:安全

1)、判斷進程的屬主是否爲被訪問的文件屬主,若是是,則應用屬主的權限,不然進入第2步。bash

2)、一樣判斷進程的屬主,是否屬於被訪問的文件屬組,若是是,則應用屬組的權限,不然進入第3步。ide

3)、應用other的權限。spa

SUID:

默認狀況下:由用戶發起的進程,該進程的屬主是就是發起者,所以,以其發起者的身份在運行。代理

SUID的功用:用戶運行某程序時,若是此程序擁有SUID權限,那麼程序運行爲進程時,進程的屬主不是發起者,而是程序文件本身的屬主。進程

管理文件的SUID權限:ci

chmod u+s FILE…get

chmod u-s FILE…it

展現位:屬主的執行權限位,若是屬主本來有執行權限,顯示爲小寫s,不然,顯示爲大寫S。

好比passwd 命令

[root@localhost ~]# which passwd
/usr/bin/passwd
[root@localhost ~]# ls -l /usr/bin/passwd
-rwsr-xr-x. 1 root root 27832 6月  10 2014 /usr/bin/passwd
[root@localhost ~]# ls -l /etc/passwd
-rw-r--r--. 1 root root 1718 12月 17 17:08 /etc/passwd
[root@localhost ~]# ls -l /etc/shadow
----------. 1 root root 1018 12月 17 17:14 /etc/shadow

能夠看到,用戶帳戶信息庫文件/etc/passwd、密碼庫文件/etc/shadow,屬組,其餘用戶都沒有寫權限,但其餘用戶又是怎麼來修改本身的密碼的呢?只由於passwd命令有SUID權限,普通用戶才能用管理員身份運行該命令修改本身的密碼(只能修改本身的密碼,其餘參數無效)。

SGID:

功用:當目錄屬組有寫權限,且有SGID權限時,那麼全部屬於此目錄屬組的用戶,且以屬組身份在此目錄中新建文件或目錄時,新文件的屬組不是用戶的基本組,而是此目錄的屬組。

管理文件的SGID權限:

chmod g+s FILE…

chmod g-s FILE…

展現位置:屬組的執行權限位,若是屬組本來有執行權限,顯示爲小寫s,不然,顯示爲大寫S。

Sticky:

功用: 對於屬組或全局可寫的目錄,組內的全部用戶或系統上的全部用戶對在此目錄中都能建立新文件或刪除已有文件,若是爲此類目錄設置Sticky權限,則每一個用戶能建立新文件,且只能刪除本身的文件。

管理文件的Sticky權限:

chmod o+t FILE…

chmod o-t FILE…

展現位置:其餘用戶的執行權限位,若是其餘用戶本來有執行權限,顯示爲小寫t,不然,顯示爲大寫T。

系統上的/tmp/和/var/tmp目錄默認均有Sticky權限。

管理特殊權限的另外一方式:

SUID SGID Sticy 八進制權限
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

基於八進制方式賦權時,可於默認的三位八進制數字左側再加一位八進制數字/

例如:chmod 1777。

facl:file access lists

文件的額外賦權機制:

在原來的u、g、o以外,另外一層讓普通用戶能控制賦權給另外的用戶和組的賦權機制

 

查看某文件的facl

getfacl命令:

getfacl FILE…

user:USERNAME:MODE

group:GROUPNAME:MODE

 

setfacl命令:

賦權給用戶:

setfacl –m u:USERNAME:MODE FIEL…

setfacl –m u:fedora:rw test.centos

 

賦權給組:

setfacl –m g:GROUPNAME:MODE FILE…

setfacl –m g:mygrp:rw test.centos

 

撤銷賦權:

setfacl –x u:USERNAME FIEL…

setfacl –x u:fedora test.centos

 

setfacl –x g:GROUPNAME FILE…

setfacl –x g:mygrp test.centos

相關文章
相關標籤/搜索