特殊許可權簡介

2021-12-30 09:27:33 字數 2873 閱讀 5658

suid是一種對二進位制程式進行設定的特殊許可權,可以讓二進位制程式的執行者臨時擁有屬主的許可權(僅對擁有執行許可權的二進位制程式有效)。

我們知道使用者通過passwd命令修改密碼的,密碼存在/etc/shadow檔案中

[root@centos7 data]#ll /etc/shadow

———-. 1 root root 1401 jul 28 08:56 /etc/shadow

但是/etc/shadow普通使用者是沒有許可權的,為什麼可以通過passwd可以修改密碼呢?

我們來看一下passwd程式的元資料

和其他可執行檔案不同的是,passwd是紅色的,許可權中有s在。

如果普通使用者chen去執行命令passwd,chen就換成/usr/bin/passwd的所有者身份執行,所有者是root賬號,root可以修改/etc/shadow檔案,chen使用者臨時擁有所有者root的許可權,這就是suid許可權。

suid許可權是很危險的,假如我們給/usr/bin/vim程式設定suid許可權,那麼普通使用者就使用vim修改密碼檔案/etc/shadow

[root@centos7 data]#which vim

/usr/bin/vim

[root@centos7 data]#chmod 4755 /usr/bin/vim

[root@centos7 data]#ll /usr/bin/vim

-rwsr-xr-x. 1 root root 2294256 apr 11 07:54 /usr/bin/vim

新增suid許可權(只有root新增)

#chmod 4755 /usr/bin/passwd

或者#chmod u+s /usr/bin/passwd

刪掉suid許可權

#chmod u-s /usr/bin/passwd

2.sgid許可權

假設我們現在有一組小組,希望每個小組在乙個資料夾內可以建立檔案,也能修改其他人建立的檔案。

使用者包含:chen test1 test2

1.建立乙個組

#groupadd demo

2.把3個小組使用者都加入demo組

#groupmems -g demo chen

#groupmems -g demo test1

#groupmems -g demo test2

3.檢視是否加入

#groupmems -g demo -l

chen test1 test2

4.把/data新增sgid許可權

#chmod g+s /data

或者#chmod 2775 /data

通過上面乙個例子我們可以知道sgid功能:

在乙個目錄設定了sgid許可權以後,新建檔案的所屬組就是該目錄的所屬組。正常情況下,建立乙個檔案之後,所屬組預設是使用者本身的主組,但是在設定了sgid的目錄下,所屬組就是目錄的所屬組,有個前提就是我們使用者是在這個目錄所屬組裡面。

#chmod g+s /usr/bin/passwd

或者#chmod 2755 /usr/bin/passwd

3.sticky位(粘滯位)

應用:當對某個目錄設定了sbit粘滯位許可權後,那麼該目錄中的檔案就只能被其所有者執行刪除操作了。

假如我們用root設定/data目錄的許可權是777

#chmod 777 /data

這樣root使用者在/data建立的檔案f1,切換chen使用者操作,在/data也可以刪除root建立的f1檔案。

假如現在我需要這樣的效果,chen使用者只能刪除自己建立的檔案,不能刪除其他使用者建立的檔案。我們就需要設定sticky許可權

新增sticky許可權

#chmod o+t /data

或者#chmod 1777 /data

sticky功能:此目錄中的檔案,只能被所有者刪除,就是自己建立的檔案,只能自己刪除。

4.特殊許可權的總結

suid(4):作用於二進位制程式,功能:當使用者執行此程式的時候,使用者將繼承程式的所有者的許可權

sgid(2):作用於二進位制程式,功能:當使用者執行此程式的時候,使用者將繼承程式的所有組的許可權;

作用在資料夾目錄上,功能:當使用者在目錄下建立新檔案時,新資料夾的所屬組自動繼承此目錄的所屬組

sticky(1):作用與目錄上,功能:此目錄中的檔案,只能被所有者刪除,就是自己建立的檔案,只能自己刪除。

5. 特殊許可權新增和取消語句

suid:

新增suid許可權(只有root新增)

#chmod 4755 檔名(二進位制程式)

#chmod u+s 檔名(二進位制程式)

刪掉suid許可權

#chmod u-s 檔名(二進位制程式)

sgid:

新增sid許可權(只有root新增)

#chmod 2755 檔名或目錄

#chmod g+s 檔名或目錄

刪掉sgid許可權

#chmod g-s 檔名或目錄

sticky:

新增sticky許可權:

#chmod o+t 目錄

#chmod 1777 目錄

刪掉sticky許可權:

#chmod o-t 目錄

6.chattr命令

應用:chattr命令可以對root進行限制。比如我們要保護/etc/passwd檔案,防止root賬號誤刪除。

1.上鎖,不可刪除,不可修改

#chattr +i /etc/passwd

#lsattr /etc/passwd

—-i———– /etc/passwd

解鎖#chattr -i /etc/passwd

2.-a功能效果是不可刪除,但是可以修改

#chattr +a /etc/passwd 鎖上

#chattr -a /etc/passwd 解鎖

許可權和特殊許可權

許可權 1 對限 a 三者 u 擁有者 屬主 g 基礎組 主組 屬組 0 其他人 讀 寫 執行 讀 寫 執行 讀 寫 執行 許可權位共九位 r w x r w x r w x u g o 列 u rwx 擁有者具有讀寫執行的許可權 g r x 基本組具有讀和執行的許可權 o r 其他人只具有讀的許可...

特殊許可權set uid set gid stick

一 linux的特殊許可權 1 特殊許可權set uid 普通使用者執行passwd命令時,可以臨時獲得root許可權,從而可以更改密碼,passwd顯示的是 rws,並非傳統的rwx,這個s就是set uid許可權 平時工作中,普通使用者如果使用命令ls root 會提示沒有許可權的,如何給這些二...

Linux 特殊許可權

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