溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

linux基礎(chǔ)教程之特殊權(quán)限SUID、SGID和SBIT

發(fā)布時間:2020-09-05 14:21:46 來源:腳本之家 閱讀:158 作者:jony456123 欄目:服務(wù)器

前言

對于linux中文件或目錄的權(quán)限,應(yīng)該都知道普通的rwx權(quán)限。Linux的權(quán)限不是很細致,只有RWX三種

  • r(Read,讀取):對文件而言,具有讀取文件內(nèi)容的權(quán)限;對目錄來說,具有瀏覽目錄的權(quán)限。
  • w(Write,寫入):對文件而言,具有新增,修改,刪除文件內(nèi)容的權(quán)限;對目錄來說,具有新建,刪除,修改,移動目錄內(nèi)文件的權(quán)限。
  • x(eXecute,執(zhí)行):對文件而言,具有執(zhí)行文件的權(quán)限;對目錄了來說該用戶具有進入目錄的權(quán)限。

1、目錄的只讀訪問不允許使用cd進入目錄,必須要有執(zhí)行的權(quán)限才能進入。

2、只有執(zhí)行權(quán)限只能進入目錄,不能看到目錄下的內(nèi)容,要想看到目錄下的文件名和目錄名,需要可讀權(quán)限。

3、一個文件能不能被刪除,主要看該文件所在的目錄對用戶是否具有寫權(quán)限,如果目錄對用戶沒有寫權(quán)限,則該目錄下的所有文件都不能被刪除,文件所有者除外

4、目錄的w位不設(shè)置,即使你擁有目錄中某文件的w權(quán)限也不能寫該文件

我們先看看下面兩個的權(quán)限是什么

linux基礎(chǔ)教程之特殊權(quán)限SUID、SGID和SBIT

linux基礎(chǔ)教程之特殊權(quán)限SUID、SGID和SBIT

非常奇怪,/tmp目錄和 passwd文件的權(quán)限怎么怪怪的,怎么有s和t權(quán)限呢??戳讼旅娴膬?nèi)容你就明白了。

1 SUID

當(dāng)s出現(xiàn)在文件擁有者的x權(quán)限上時,如我們上面看到的/usr/bin/passwd這個文件的權(quán)限時-rwsr-xr-x,此時就被稱為SET UID簡稱SUID.SUID對于一個文件有什么限制和功能呢?

SUID權(quán)限僅對二進制可執(zhí)行文件有效

執(zhí)行者對于該文件具有x的權(quán)限

本權(quán)限僅在執(zhí)行該文件的過程中有效

執(zhí)行者將具有該文件擁有者的權(quán)限

例如普通用戶用passwd修改自己的命令,實際上最終更改的是/etc/passwd文件. 此文件時用戶管理配置文件,只有root權(quán)限才能更改。

linux基礎(chǔ)教程之特殊權(quán)限SUID、SGID和SBIT

既然是root用戶才擁有此權(quán)限,為什么我們可以通過passwd命令來修改密碼呢,那這就要歸功于passwd設(shè)置了suid權(quán)限位了。

linux基礎(chǔ)教程之特殊權(quán)限SUID、SGID和SBIT

此時普通用戶通過執(zhí)行passwd命令,臨時擁有root權(quán)限,間接的修改/etc/passwd,以達到修改自己密碼的權(quán)限。

2 SGID

當(dāng)s出現(xiàn)在目錄或文件所屬群的x權(quán)限上時,此時就稱為SET GID簡稱SGID,那SGID對文件和目錄分部有哪些功能呢?

2.1 SGID對目錄

使用者若對于此目錄具有 r 與 x 的權(quán)限時,該使用者能夠進入此目錄

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

若使用者在此目錄下具有 w 的權(quán)限(可以新建文件),則使用者所創(chuàng)建的新文件,該新文件的群組與此目錄的群組相同

2.2 SGID對文件

SGID 對二進制可執(zhí)行文件有效

程式執(zhí)行者對于該文件來說,需具備 x 的權(quán)限

執(zhí)行者在執(zhí)行的過程中將會獲得該文件群組的支援(用于改文件群組的權(quán)限)

3 SBIT

當(dāng)s出現(xiàn)在目錄其他用戶的x權(quán)限上時,此時就稱為Sticky Bit簡稱SBIT,那SBIT有哪些限制和作用呢?

僅對目錄有效,對文件無效

當(dāng)使用者在該目錄下建立文件或目錄時(有權(quán)限的情況下),僅自己與 root 才有權(quán)力刪除新建的目錄或文件

我們知道/tmp目錄是這樣的權(quán)限。

linux基礎(chǔ)教程之特殊權(quán)限SUID、SGID和SBIT

現(xiàn)在我們來驗證下,先用root賬號在tmp文件中創(chuàng)建一個文件test,然后用openstack(其他賬號)進入該目錄,刪除test文件,看看發(fā)生什么情況

linux基礎(chǔ)教程之特殊權(quán)限SUID、SGID和SBIT

我們看到這樣是不能刪除文件的。因為/temp目錄有SBIT權(quán)限。

4 怎么操作SUID、SBID、SBIT

操作這些標(biāo)志與操作文件權(quán)限的命令是一樣的, 都是chmod. 有兩種方法來操作,

(1)符號類型改變權(quán)限

chmod u+s testbin-- 為testbin文件加上setuid標(biāo)志.

chmod g+s testdir-- 為testdir目錄加上setgid標(biāo)志

chmod o+t testdir-- 為testdir目錄加上sticky標(biāo)志

(2) 數(shù)字類型改變檔案權(quán)限

采用八進制方式. 對一般文件通過三組八進制數(shù)字來置標(biāo)志, 如 666, 777, 644等. 如果設(shè)置這些特殊標(biāo)志, 則在這組數(shù)字之外外加一組八進制數(shù)字. 如 4666, 2777等. 這一組八進制數(shù)字三位的意義如下,

abc

a - setuid位, 如果該位為1, 則表示設(shè)置setuid 4---

b - setgid位, 如果該位為1, 則表示設(shè)置setgid 2---

c - sticky位, 如果該位為1, 則表示設(shè)置sticky 1---

設(shè)置完這些標(biāo)志后, 可以用 ls -l 來查看. 如果有這些標(biāo)志, 則會在原來的執(zhí)行標(biāo)志位置上顯示. 如

rwsrw-r-- 表示有setuid標(biāo)志

rwxrwsrw- 表示有setgid標(biāo)志

rwxrw-rwt 表示有sticky標(biāo)志

那么原來的執(zhí)行標(biāo)志x到哪里去了呢? 系統(tǒng)是這樣規(guī)定的, 如果本來在該位上有x, 則這些特殊標(biāo)志顯示為小寫字母 (s, s, t). 否則, 顯示為大寫字母 (S, S, T)

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,如果有疑問大家可以留言交流,謝謝大家對億速云的支持。

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI