Linux文件特殊權限之SetGID-s

/*************************************************************************
 *****************Author: GouplovXim *******************************
 *****************Date   : 2018-01-29 15:59  *************************
 *****************Description: 文件權限SBIT *************************
 *************************************************************************/

引導:
案例
[goup@GouplovXim tom]$ ll /usr/bin/passwd 
-rwsr-xr-x. 1 root root 25980 11月 24 2015 /usr/bin/passwd


案例二:
[goup@GouplovXim tom]$ ll -d /tmp
drwxrwxrwt. 3 root root 4096 1月  25 13:48 /tmp


SetUID:
1.案例:
[goup@GouplovXim ~]$ passwd 
更改用戶 goup 的密碼 。
爲 goup 更改 STRESS 密碼。
(當前)UNIX 密碼:
新的 密碼:
重新輸入新的 密碼:
passwd: 所有的身份驗證令牌已經成功更新。


Linux普通用戶可以修改自己的密碼,這個是一個合情合理的設置;修改密碼其實修改的是 /etc/shadow 這個文件;然而這個文件的屬性:
[goup@GouplovXim tom]$ ll /etc/shadow
---------- 1 root root 1063 1月  24 06:22 /etc/shadow
很明顯普通用戶對 /etc/shadow 文件沒有任何權限,那怎麼實現修改該文件呢,這裏我們引入SetUID權限:
案例解析:
SetUID(或者 s 權限):
當一個具有執行權限的文件設置SetUID權限後,用戶執行這個文件時將以文件所有者的身份執行。passwd命令具有SetUID權限,所有者爲root(Linux中的命令默認
所有者都是root),也就是說當普通用戶使用passwd更改自己密碼的時候,實際在以passwd命令所有者root的身份在執行,命令執行完成後該身份也隨之消失。

2.示例:
[goup@GouplovXim ~]$ ll /bin/touch
-rwxr-xr-x 1 root root 50644 5月  11 2016 /bin/touch
[goup@GouplovXim ~]$ touch GouplovXim
[goup@GouplovXim ~]$ ll GouplovXim
-rw-rw-r-- 1 goup goup 0 1月  26 01:15 GouplovXim
[goup@GouplovXim ~]$ sudo chmod u+s /bin/touch -- 更改touch的屬性,增加SetUID屬性
[goup@GouplovXim ~]$ ll /bin/touch 
-rwsr-xr-x 1 root root 50644 5月  11 2016 /bin/touch
[goup@GouplovXim ~]$ touch XimlovGoup
[goup@GouplovXim ~]$ ll XimlovGoup GouplovXim 
-rw-rw-r-- 1 goup goup 0 1月  26 01:15 GouplovXim
-rw-rw-r-- 1 root goup 0 1月  26 01:23 XimlovGoup -- 文件所有者變爲root,說明在執行touch時,用戶自動切換爲root,靈魂附體

3.SetUID條件:


針對文件:


①可執行的二進制文件
②命令執行者(即所屬組)對該文件具備 x 權限
③執行時,執行者獲取所有者身份
④權限只在執行過程中有效

針對目錄:


①普通用戶對目錄具備r和x權限,纔可以進入到該目錄
②普通用戶在此目錄中的有效組會變成此目錄的所屬組
③如普通用戶對該目錄具備w權限,新建文件的所屬組爲該目錄的所屬組
4.設置和取消SetUID


設置SetUID
chmod 4xxx < file-name >
chmod u+s < file-name >
取消SetUID
chmod xxx < file-name >
chmod u-s < file-name >

5.危險性

設置SetUID是具備很大危險性的,例如賦予 vim 這個權限,可以對/etc/shadow文件進行任意的增刪改操作。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章