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 ...