特殊許可權詳細介紹

2021-12-30 09:04:08 字數 2778 閱讀 2317

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

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

使用者包含: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

應用:當對某個目錄設定了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功能:此目錄中的檔案,只能被所有者刪除,就是自己建立的檔案,只能自己刪除。

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

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

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

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

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 目錄

應用: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 解鎖

Linux學習 許可權詳細介紹

rw r r 1 xiaoming root09月 1613 20 txt解讀 rw r r 1xiaoming root 09月 16 13 20 檔案型別 表示普通檔案 l表示軟鏈結 d表示目錄 c表示字元裝置 鍵盤滑鼠等 b表示塊檔案 硬碟 每三個一組 rw 表示檔案所有者擁有的許可權 r 表...

Linux之許可權詳細介紹

ls l檢視檔案的許可權 1 rwx 作用到檔案 r 代表可讀 read 可以讀取,檢視 w 代表可寫 write 可以修改,但是不代表可以刪除該檔案,刪除乙個檔案的前提條件是對該檔案所在的目錄有寫許可權,才能刪除該檔案.x 代表可執行 execute 可以被執行 2 rwx 作用到目錄 r 代表可...

Perl中的特殊內建變數詳細介紹

內建變數 先來看乙個例子 複製 如下 usr bin perl w array qw a b c d foreach array 例子的作用就是定義乙個陣列並把其中的元素列印出來,這裡需要注意的是foreach迴圈部分,foreach迴圈的標準格式應該是 複製 如下 foreach element ...