linux系統上的特殊權限SUID,SGID,STICKY

特殊權限:SUID SGID STICKY

    linux的安全上下文:

    1.進程以用戶的身份運行,進程是發起此用戶的代理,因此以此用戶的身份和權限完成所有的操作。

    2.權限匹配模型:

    1)判斷進程的屬主,是否以被訪問的文件屬主。如果是,則應用屬主權限,否則進入第2步。

    2)判斷進程的屬主,是否屬于被訪問的文件屬組。如果是,則應用屬組的權限,否則進入第3步。

    3)應用other的權限。


SUID:

    默認情況下,用戶發起的進程,進程的屬主是其發起者,因此,其以發起者的身份在運行。

    SUID的功用:用戶運行某程序時,如果此程序擁有SUID權限,那么程序運行時,進程的屬主不是發起者,而是程序文件自己的屬主。


管理文件的SUID權限:

    chmod u+|-s FILE

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

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

             否則,顯示為大寫S。


[root@localhost ~]# cp /bin/cat /tmp/jackfile1      #將cat命令拷貝為jackfile1


[root@localhost ~]# mv /bin/cat /bin/cat.txt        #把cat路徑重新編輯,使系統找不到cat命令


[root@localhost tmp]# chmod u+s jackfile1           #增加jackfile1特殊權限suid


[root@localhost tmp]# ll jackfile1                  #查看jackfile1的屬主屬組和權限

-rwsr-xr-x. 1 jack jack 48568 Aug  1 19:11 jackfile1


[jack@localhost jack]$ ll 2.txt         #jack用戶新建2.txt文件,jack5用戶對此文件無任何權限

-rw-rw—-. 1 jack jack 52 Aug  1 19:25 2.txt


[jack5@localhost jack]$ /tmp/jackfile1 2.txt    #使用jack5用戶查看jack用戶所建的2.txt文件

agjjfjskdfjlsdfjlsfjsldjgljgljlajgljhljlkdahljfsdjk


實驗結論:以上試驗中,把jackfile1變成cat命令使用,當jackfile1具有s權限時,其他用戶使用jackfile1命令,就相當擁有jackfile1的屬主權限,所以任何jack所建的文件,其他用戶都可以進行訪問。

            


SGID:

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


管理文件的SGID權限:

    chmod g+|-s FILE

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

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

             否則,顯示為大寫S


[jack@localhost jack]$ ll -d                   #設定文件目錄jack有SGID權限

drwxrwsr-x. 2 jack jack 4096 Aug  1 19:25 .


[jack3@localhost jack]$ id jack3               #設定jack組為jack3的附加組

uid=4019(jack3) gid=4019(jack3) groups=4019(jack3),4023(jack)


[jack3@localhost jack]$ touch 5.txt           #使用jack3用戶新建5.txt文件

 

[jack3@localhost jack]$ ll                 #查看5.txt文件的所屬組是jack,而不是主要組jack3

-rw-rw-r–. 1 jack3 jack  0 Aug  1 19:39 5.txt


實驗結論:

1.需要jack3用戶有jack的附加組。(如果其他用戶有寫權限,所建文件也是jack組)

2.由于加入SGID權限,用戶所建文件的組為jack,意味著jack組內任何成員都可以對5.txt文件進行讀寫操作。


SGID還有一種用法類似SUID:

[root@localhost ~]# ll /bin/cat                          #給cat設置sgid

-rwxr-sr-x. 1 root root 48568 May 11 16:59 /bin/cat


[root@localhost ~]# ll /etc/shadow                       #給shadow設置有root組有讀權限

—-rwx—. 1 root root 2899 Aug  2 14:51 /etc/shadow 


[jack5@localhost ~]$ cat /etc/shadow                     #隨便使用一個用戶借用root組的權限

root:$6$zNiiCr8zbAa2xFVa$4Tw89HFHnREnLhhyK2Z/E.w4WlUEIgXR2RaY5bYPu1/f.A3QJF8mcFNaz4EnB7LAUQ/KXWYieQ2cZwhdnTV981:17001:0:99999:7:::

bin:*:15980:0:99999:7:::




STICKY:

    功用:對于屬組或全局可寫的目錄,組內的所有用戶或系統上的所有用戶對在此目錄中都能創建新文件或刪除所有的已有文件,如果為此類目錄設置sticky權限,則每個用戶都能創建新文件,且只能刪除自己的文件。

    

管理文件的sticky權限:

    chmod o+|-t FILE

    展示位置:其它用戶的執行限位

            如果其它用戶原本有執行權限,顯示為小寫t

            否則,顯示為大寫T

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


[jack@localhost jack]$ ll -d                 #設置jack目錄擁有sticky權限,注意看t

drwxrwxrwt. 2 jack jack 4096 Aug  1 20:04 .


[jack4@localhost ~]$ id jack4                #用戶jack4為普通用戶,跟jack無任何關系

uid=4020(jack4) gid=4023(jack) groups=4023(jack)


[jack4@localhost jack]$ touch 4.txt          #jack4用戶在jack目錄里建文件4.txt 


[jack3@localhost jack]$ rm 4.txt      #使用另一jack3賬戶對jack4所建文件4.txt進行刪除,失敗

rm: remove write-protected regular empty file `4.txt'? Y

rm: cannot remove `4.txt': Operation not permitted

     

實驗結論:

1.用戶在擁有t權限目錄中所建文件,其他用戶只能互相修改查看,無法刪除其他人所建文件,只能自己刪除自己的文件。

2.建立t權限目錄的用戶有權限刪除該目錄下的任何文件。

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

(0)
zebra930zebra930
上一篇 2016-08-05
下一篇 2016-08-05

相關推薦

  • Linux終端和偽終端簡述

    本文簡述Linux各種類型終端的區別以及如何用命令查看終端類型

    Linux干貨 2018-03-26
  • N24_小天 學習宣言

    每周安排時間看視頻,每天安排時間學習并跟進課程,認真記筆記,認真寫博客。多動手操作,堅持不斷。學習思維,提升自己解決問題的思路。多動手,多實踐。

    Linux干貨 2016-10-27
  • linux發展史

    linux發展史簡介: 20世紀60年代,MIT開發分時操作系統(Compatible TIme-Sharing System),支持30臺終端訪問主機;     ~主機負責運算,而終端負責輸入輸出; 1965年,Bell實驗室、MIT、GE(通用電氣公司)準備開發Multics系統,為了同時支持3…

    Linux干貨 2016-10-14
  • 計算機起源與Linux簡述

    什么是計算機?  計算機(computer)俗稱電腦,是一種用于高速計算的電子計算機器,可以進行數值計算,又可以進行邏輯計算,還具有存儲記憶功能。是能夠按照程序運行,自動、高速處理海量數據的現代化智能電子設備。 它由硬件系統和軟件系統組成,沒有安裝任何軟件的計算機被稱為裸機。硬件系統由運算器,控制器,存儲器,輸入設備,輸出設備幾部分組成;…

    Linux干貨 2017-03-29
  • 硬鏈接和軟鏈接的區別

    硬鏈接和軟鏈接在文件系統實現上的區別決定了兩者之間功能上的不同,也就是說硬鏈接和軟鏈在文件系統上兩者實現的方式不同,讓其各自具有不同的功能和特色,也決定了各自的優點和缺點。接下同文件系統上創建硬鏈接和軟鏈接看各自的特點。 一文件系統上創建硬鏈接 下面命令是在文件系統上創建一個硬鏈接: ~]# ln test /testdir/t…

    Linux干貨 2016-10-29
  • 用戶和組管理

    1、列出當前系統上所有已經登錄的用戶的用戶名,注意:同一個用戶登錄多次,則只顯示一次即可。 [root@suywien ~]# who | cut -d ‘ ‘ -f1 | uniq -c 2 root [root@suywien ~]# 2、取出最后登錄到當前系統的用戶的相關信息。 [root@suywien ~]# who | tail -1 | cut…

    Linux干貨 2018-03-18
欧美性久久久久