linux特殊許可權SUID SGID SBIT

2021-08-04 15:39:23 字數 2025 閱讀 6661

當s出現在檔案擁有者的x許可權上時,如我們上面看到的/usr/bin/passwd這個檔案的許可權時-rwsr-xr-x,此時就被稱為set uid簡稱suid.suid對於乙個檔案有什麼限制和功能呢?

suid許可權僅對二進位制可執行檔案有效

執行者對於該檔案具有x的許可權

本許可權僅在執行該檔案的過程中有效

執行者將具有該檔案擁有者的許可權

例如普通使用者用passwd修改自己的命令,實際上最終更改的是/etc/passwd檔案. 此檔案時使用者管理配置檔案,只有root許可權才能更改。

既然是root使用者才擁有此許可權,為什麼我們可以通過passwd命令來修改密碼呢,那這就要歸功於passwd設定了suid許可權位了。

此時普通使用者通過執行passwd命令,臨時擁有root許可權,間接的修改/etc/passwd,以達到修改自己密碼的許可權。

當s出現在目錄或檔案所屬群的x許可權上時,此時就稱為set gid簡稱sgid,那sgid對檔案和目錄分部有哪些功能呢?

2.1 sgid對目錄

使用者若對於此目錄具有 r 與 x 的許可權時,該使用者能夠進入此目錄

使用者在此目錄下的群組將會變成該目錄的群組

若使用者在此目錄下具有 w 的許可權(可以新建檔案),則使用者所建立的新檔案,該新檔案的群組與此目錄的群組相同

2.2 sgid對檔案

sgid 對二進位制可執行檔案有效

程式執行者對於該檔案來說,需具備 x 的許可權

執行者在執行的過程中將會獲得該檔案群組的支援(用於改檔案群組的許可權)

當s出現在目錄其他使用者的x許可權上時,此時就稱為sticky bit簡稱sbit,那sbit有哪些限制和作用呢?

僅對目錄有效,對檔案無效

當使用者在該目錄下建立檔案或目錄時(有許可權的情況下),僅自己與 root 才有權力刪除新建的目錄或檔案

我們知道/tmp目錄是這樣的許可權。

現在我們來驗證下,先用root賬號在tmp檔案中建立乙個檔案test,然後用openstack(其他賬號)進入該目錄,刪除test檔案,看看發生什麼情況

我們看到這樣是不能刪除檔案的。因為/temp目錄有sbit許可權。

操作這些標誌與操作檔案許可權的命令是一樣的, 都是 chmod. 有兩種方法來操作,

(1)符號型別改變許可權

chmod u+s testbin-- 為testbin檔案加上setuid標誌.

chmod g+s testdir-- 為testdir目錄加上setgid標誌

chmod o+t testdir-- 為testdir目錄加上sticky標誌

(2) 數字型別改變檔案許可權

採用八進位制方式. 對一般檔案通過三組八進位制數字來置標誌, 如 666, 777, 644等. 如果設定這些特殊標誌, 則在這組數字之外外加一組八進位制數字. 如 4666, 2777等. 這一組八進位制數字三位的意義如下,

abc

a - setuid位, 如果該位為1, 則表示設定setuid 4---

b - setgid位, 如果該位為1, 則表示設定setgid 2---

c - sticky位, 如果該位為1, 則表示設定sticky 1---

設定完這些標誌後, 可以用 ls -l 來檢視. 如果有這些標誌, 則會在原來的執行標誌位置上顯示. 如

rwsrw-r-- 表示有setuid標誌

rwxrwsrw- 表示有setgid標誌

rwxrw-rwt 表示有sticky標誌

那麼原來的執行標誌x到**去了呢? 系統是這樣規定的, 如果本來在該位上有x, 則這些特殊標誌顯示為小寫字母 (s, s, t). 否則, 顯示為大寫字母 (s, s, t)

Linux 特殊許可權

特殊許可權 對檔案的影響 對目錄的影響 u s suid 以擁有檔案的使用者身份,而不是以執行檔案的使用者身份執行檔案。無影響。g s sgid 已擁有檔案的組的身份執行檔案。在目錄中最新建立的檔案將其組所有者設定為與目錄的組所有者相匹配。o t sticky 無影響。對目錄具有寫入許可權的使用者僅...

linux特殊許可權

訪問控制列表 應用場景,我有我所屬目錄的所有許可權,我的開發組也有,但是我有乙個朋友想要進我的目錄參觀,不能給所屬也不能讓他進組,需要乙個後門這就是acl訪問控制列表。首先要在掛載後面加上acl選項 可在mount o remount,acl 也可在 etc fstab表中改正重啟 兩個常用命令 g...

Linux的特殊許可權

linux中除了常見的讀 r 寫 w 執行 x 許可權以外,還有3個特殊的許可權,分別是setuid setgid和stick bit 1 setuid setgid 先看個例項,檢視你的 usr bin passwd 與 etc passwd檔案的許可權 root mylinux ls l usr...