強制位(set uid和set gid)與冒險位(sticky)的特別權限

 

           1、set uid(強制位) 只能對文件進行設置


    通過對文件設置uid可以使非文件擁有者或文件所屬羣組的用戶具有執行該文件的權限。

    例如ping,默認情況下所有用戶都可以使用此命令,但當我們查看ping命令所在的文件時會發現,這個文件所屬的用戶和組均屬於root,別的用戶和組都沒有權限使用此命令,但是爲什麼其他的用戶和羣組都能使用此命令了呢?
    當你查看ping命令所在文件的權限時你會發現在用戶的權限x的位置有一個s,這是爲什麼呢?這就是系統默認給ping命令這個文件設置了強制位。

    那麼 強制位又有什麼作用呢?

    對文件設置過強制位以後,可以讓對此文件沒有執行權限的用戶執行此文件。

    例如:ping這個命令是所有用戶都能使用的,但ping命令所在文件是所屬root用戶和組的,別的成員沒有執行此命令的權限,但是設置過強制位就不同了。

    ping是屬於root用戶和組的,但使用jack用戶登陸後也可以使用此命令,原因就是系統默認給ping命令所在目錄設置過強制位了,如果把強制位取消,則再用jack用戶使用ping命令,這時會提示沒有權限。

    強制位的使用

    chmod u+s  文件            對文件設置強制位
    chmod u-s  文件            對文件取消強制位

2、set gid 

     默認情況下,用戶A在目錄所屬組B裏面新建目錄或文件,該文件或目錄的所屬的用戶爲A,所屬的組爲用戶A所在的組;但是如果對目錄B設置過gid以後,用戶A在目錄所屬組B裏面新建目錄或文件,該文件或目錄所屬的用戶爲A,但是所屬的組爲B。
    例如:用戶A爲root用戶、目錄test所屬組B爲jack組
    默認情況下,root用戶在test目錄下面新建一個目錄或文件,該文件或目錄所屬的用戶爲root,所屬的組爲root所在的組;但是如果對目錄test設置過gid以後,用戶root在test目錄下面新建一個目錄或文件,該文件或目錄所屬的用戶爲root,但是所屬的組爲jack組。

   對組設置gid的方法:chmod g+s 目錄

   對組設置過gid以後,查看該組的權限,這時候你就會發現,原先在該目錄組的權限x變成了s,這就對了,否則就不正常了……

3、冒險位對目錄的作用

   如果一個目錄other具有r、w、x的權限,那麼所有的用戶的可以在該目錄下面隨便的創建、修改、刪除目錄。但是有些用戶在該目錄下面創建的文件不想讓別的用戶更改或是刪除,那該怎麼辦?不要着急,這時就是冒險位出山的時候了。
   設置冒險位的方法:chmod o+t 目錄
   對目錄設置過冒險位以後,查看該組的權限,這時候你就會發現,原先在該目錄的other權限的x變成了t,一切ok。


   例如:/tmp目錄就是所有的用戶都可以在該目錄下面新建、更改、刪除文件。test用戶在/tmp目錄下面新建的一個test.txt,但是jack用戶登上來以後看見該文件沒有什麼作用,於是就刪除了,但是test用戶在test.txt文件裏的數據就一下子不見了,這該如何是好……
   所以嘛,對/tmp目錄設置過冒險位以後test用戶新建的文件,jack將不能刪除
 

4、set uid、set gid、sticky(冒險位)也可是使用數字進行表示

set uid  數字代表4
set gid  數字代表2
冒險位   數字代表1


如果對文件設置強制位  則:chmod 4---  文件
set gid               則:chmod 2---  文件
冒險位                則:chmod 1---  文件

---代表文件的權限
 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章