Linux筆記17 許可權管理 檔案特殊許可權

2021-10-06 01:37:02 字數 3237 閱讀 9297

【許可權管理-檔案特殊許可權 】

8.2.1 setuid

8.2.2 setgid

8.3.3 sticky bit

◆ suid

◇ setuid的功能與條件

① 只有可以執行的二進位制程式才能設定suid許可權

② 命令執行者要對該程式擁有x(執行)許可權

③ 命令執行者在執行該程式時獲得該程式檔案屬主的身份(在執行程式的過程中靈魂附體為檔案的屬主)

④ setuid許可權只在該程式執行過程中有效,也就是說身份改變只在程式執行過程中有效

passwd命令擁有setuid許可權,所以普通可以修改自己的密碼

[root@localhost ~]# ll /usr/bin/passwd

-rwsr-xr-x. 1 root root 25980 2月 22 2012 /usr/bin/passwd

cat命令沒有setuid許可權,所以普通使用者不能檢視/etc/shadow檔案內容

[root@localhost ~]# ll /bin/cat

-rwxr-xr-x 1 root root 47976 6月 22 2012 /bin/cat

◇ 設定setuid的方法

數字4代表suid

擴充套件:之前說的表示許可權的3個數字(例如 755,777)其實是不完整的,其實前面還有乙個數字。

有三種情況:4755(suid),2755(sgid),1755(sbit),7755(同時擁有前面三個,一般不這麼用) 。

chmod 4755 檔名

chmod u+s 檔名

案例:建立乙個空檔案並檢視其預設許可權,結果是644

現在要給這個檔案設定suid,使用 chmod 4755 abc即可

上面的abc不是可執行程式,如果是的話,任何乙個使用者在操作的時候就可以獲得root許可權。

◇ 取消setuid的方法

chmod 755 檔名

chmod u-s 檔名

◇ 危險的setuid

① 關鍵目錄應嚴格控制寫許可權。比如「/」、「/usr」等

② 使用者的密碼設定要嚴格遵守密碼三原則

③ 對系統中預設應該具有setuid許可權的檔案作一列表,定時檢查有沒有這之外的檔案被設定了setuid許可權

例如/etc/shadow等等所有的重要檔案,或者系統的配置檔案。這樣會很危險!!

◆ sgid

◇ setgid針對檔案的作用

① 只有可執行的二進位制程式才能設定sgid許可權

② 命令執行者要對該程式擁有x(執行)許可權

③ 命令執行在執行程式的時候,組身份公升級為該程式檔案的屬組

④ setgid許可權同樣只在該程式執行過程中有效,也就是說組身份改變只在程式執行過程中有效

為什麼普通使用者可以使用 locate 命令呢?

[root@localhost ~]# ll /usr/bin/locate

-rwx--s--x 1 root slocate 35612 8月 24 2010 /usr/bin/locate

[root@localhost ~]# ll /var/lib/mlocate/mlocate.db

-rw-r----- 1 root slocate 1838850 1月 20 04:29 /var/lib/mlocate/mlocate.db

過程分析:

* /usr/bin/locate是可執行二進位制程式,可以賦予sgid

* 執行使用者lamp對/usr/bin/locate命令擁有執行許可權

* 執行/usr/bin/locate命令時,組身份會公升級為slocate組,而slocate組對/var/lib/mlocate/mlocate.db資料庫擁有r許可權,所以普通使用者可以使用locate命令查詢mlocate.db資料庫

* 命令結束,lamp使用者的組身份返回為lamp組

◇ setgid針對目錄的作用和條件(實際操作中的意義不大)

* 普通使用者必須對此目錄擁有r和x許可權,才能進入此目錄

* 普通使用者在此目錄中的有效組會變成此目錄的屬組

* 若普通使用者對此目錄擁有w許可權時,新建的檔案的缺省屬組是這個目錄的屬組

案例解說:

在/tmp 目錄下建立乙個目錄,並且賦予2777許可權(sgid,同時777)

切換到使用者rx,然後先在家目錄新建乙個檔案,檢視該檔案的所屬組是預設的rx

但是,現在到剛才設定了sgid的目錄 /tmp/test 目錄下新建乙個檔案,再檢視所屬組:

結果顯示,在這個目錄新建的檔案的所屬組不是rx,而是這個目錄的所屬組root.

設定setgid (2代表sgid )

chmod 2755 檔名

chmod g+s 檔名

取消setgid

chmod 755 檔名

chmod g-s 檔名

◆ sticky+bit

◇ sbit粘著位作用

* 粘著位目前只對目錄有效

* 普通使用者對該目錄擁有w和x許可權,即普通使用者可以在此目錄擁有寫入許可權

* 如果沒有粘著位,因為普通使用者擁有w許可權,所以可以刪除此目錄下所有檔案,包括其他使用者建立的檔案。一但賦予了粘著位,除了root可以刪除所有檔案,普通使用者就算擁有w許可權,也只能刪除自己建立的檔案,但是不能刪除其他使用者建立的檔案

◇ 一般最多設定的就是 /tmp 目錄。

[root@localhost ~]# ll -d /tmp/

drwxrwxrwt. 3 root root 4096 12月 13 11:22 /tmp/

測試一下:

使用使用者rx 在/tmp 下建立乙個檔案,然後切換到另乙個使用者嘗試刪除這個檔案就會出錯。

但是明顯這個使用者對/tmp 目錄是有執行許可權的。

◇ 設定與取消粘著位

設定粘著位

chmod 1755 目錄名

chmod o+t 目錄名

取消粘著位

chmod 777 目錄名

chmod o-t 目錄名

linux 學習筆記 檔案許可權管理篇

chown chown r mysql.usr local 把 usr local 以及其下的所有的檔案和子目錄屬主改為mysql ls al 用這條命令查詢 chgrp chgrp r mysql usr local 把 usr local 以及其下的所有檔案和子目錄屬主改為 mysql 刪除使用...

Linux檔案許可權管理

linux下面所有的檔案儲存都是以檔案的形式儲存,用ls指令就可以檢視當前目錄下所有檔案的許可權 這個許可權是你現在使用的登入者身份下的許可權哦,也就是說,你以不同的身份登入時,許可權有可能是不一樣的 舉乙個例子 rw r r 1 root root 43240,sep4 18 23 install...

Linux檔案許可權管理

在linux工作目錄中開啟終端,輸入指令ll,會出現當前目錄中所有檔案的詳細資訊,其中第一列的字段當中就包括了檔案的操作許可權。我們可以看到,第一列出現了10個字元,第乙個字元代表了檔案型別,後面的九個字元就代表的是檔案的操作許可權。首先我們要明白這裡對檔案訪問者進行了分類,前三個字元代表了檔案的所...