強制位(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---  文件

---代表文件的權限


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM