Linux檔案特殊許可權

2021-09-01 13:54:24 字數 1957 閱讀 5082

注:**本人稍作修改。

linux檔案特殊許可權主要體現在set uid、set gid、sticky bit這三個上面。

要理解這三個特殊許可權,就要先理解賬號的id(uid和gid)以及程序等概念。

[color=blue]① suid[/color]

[color=red]suid就是set uid。設定它是為了讓普通使用者在執行某些程式時,能夠暫時具有該程式的擁有者許可權。[/color]

比如:在linux系統中普通使用者也可以使用passwd命令來修改自己的密碼。但是密碼檔案shadow只有root使用者有讀和寫許可權,其他普通使用者沒有任何許可權,那麼普通使用者是怎樣通過passwd命令來修改自己的密碼呢?我們看下/usr/bin/passwd程式的屬性就知道了。

# list -l /usr/bin/passwd

-rwsr-xr-x 1 root root 22984 jan 7 2007 /usr/bin/passwd

[color=red]我們發現passwd程式user的x許可權位變成了s。[/color]那麼在這裡就是這個s使普通使用者有許可權來執行這個程式。它讓普通使用者在執行passwd這個程式時暫時擁有了root的許可權。

[color=red]因此,當某程式user的x許可權位變成s時,就是進行了set uid設定,簡稱suid。[/color]

suid僅可用於二進位制檔案,對於其他普通檔案,目錄檔案和指令碼之類的檔案是無效的。

[color=blue]② sgid[/color]

[color=red]sgid就是set gid,即s替換掉group的x許可權。[/color]設定它用來作用於使用者組。

[color=red]如果將sgid設定在二進位制檔案上,則不論使用者是誰,在執行該程式時,它的有效使用者組將會變成改程式的使用者組所有者;

如果將sgid設定在目錄檔案上,則在該目錄檔案內所建立的檔案或目錄的使用者組,將會變成該目錄的使用者組。[/color]

sgid一般用於團隊的專案開發上,在系統中很少使用。如果設定了sgid,那麼該二進位制檔案或者目錄group的x屬性位將會變成s。

[color=blue]③ sbit[/color]

[color=red]sbit就是sticky bit。如果在設定了sbit屬性的目錄中,使用者在該目錄下擁有w和x許可權,那麼當使用者在該目錄下新建檔案時,只有檔案擁有者和root才有權利刪除。[/color]

比如:root在/目錄下建立了乙個資料夾test,test的許可權是0777。在沒有加特殊許可權前,任何人都可以在test目錄下做任何事,包括刪除別人建立的檔案。當我給test目錄設定了sbit屬性後,那麼bobyuan這個使用者在test下新建了乙個檔案bobtest, 屬性是0777;bob這個使用者進入test目錄下試圖刪除bobtest,發現沒有許可權刪除。

[color=red]如果某個目錄設定了sbit屬性,那麼該目錄other的x屬性位將會變成t。如【drwxrwxrwt】。[/color]

sbit僅可用於目錄檔案,對於普通檔案是不生效的。

[color=red]如果某個檔案的user或者group或者other沒有設定x屬性,但是設定了suid或者sgid或者gbit,那麼,這些特殊屬性將會以大寫的s和t表現出來。[/color]

[color=blue]④ 設定suid/sgid/sbit[/color]

我們用數字形式來表示這三個特殊屬性,他們和r/w/x的數字表現形式類似。

[color=red]suid:4

sgid:2

sbit:1[/color]

比如我要設定cat命令的suid屬性,那就可以用chmod 4755來實現,也可以chmod u+s cat 來實現。

比如我要設定test目錄的sbit屬性,那就可以用chmod 1777來實現,也可以chmod o+t test 來實現。

[color=red]注意,在設定目錄或者二進位制檔案的特殊屬性時,一定要給予這些目錄或者檔案可執行許可權。如果未給予可執行許可權,即使設定了特殊屬性,也將會是空的,會用大寫的s和t表示。[/color]

Linux檔案特殊許可權

linux中檔案除了r w x這三個讀 寫 執行的許可權還有特殊許可權 s t suid許可權 當s這個標誌出現在檔案所有者的x許可權上時 如 rwsr xr x 則被稱為set uid,簡稱suid許可權。suid限制 1 suid許可權僅對二進位制程式 可執行程式 有效。2 執行者對於該程式需要...

Linux檔案特殊許可權

檔案特殊許可權set uid set gid sticky bit 1 set uid 該許可權針對二進位制可執行檔案,使檔案在執行階段具有檔案所有者的許可權。比如 passwd具有該許可權 chmod u s filename filename必須是二進位制檔案 2 set gid 改許可權針對目...

Linux檔案特殊許可權

suid sgid sbit 先用ls l命令看一下下面幾個檔案或目錄的資訊 rwsr xr x.1 root root 25980 2月 22 2012 usr bin passwd rwx s x.1 root slocate 35612 8月 24 2010 usr bin locate dr...