權限管理(3)

2020-08-31   藝麟盛世

原標題:權限管理(3)

二、特殊權限

特殊權限的介紹

之前我們提到了特殊權限有三個,這三個特殊權限是在可執行程序運行時影響操作權限的,它們分別是SUID,SGID,sticky-bit位

特殊權限

說明

SUID

當一個設置了SUID 位的可執行文件被執行時,該文件將以所有者的身份運行,也就是說無論誰來執行這個文件,他都有文件所有者的特權。任意存取該文件擁有者能使用的全部系統資源。如果所有者是 root 的話,那麼執行人就有超級用戶的特權了。

SGID

當一個設置了SGID 位的可執行文件運行時,該文件將具有所屬組的特權,任意存取整個組所能使用的系統資源;若一個目錄設置了SGID,則所有被複製到這個目錄下的文件,其所屬的組都會被重設為和這個目錄一樣,除非在複製文件時保留文件屬性,才能保留原來所屬的群組設置。

stickybit

對一個文件設置了sticky-bit之後,儘管其他用戶有寫權限,也必須由屬主執行刪除、移動等操作;對一個目錄設置了sticky-bit之後,存放在該目錄的文件僅准許其屬主執行刪除、移動等操作。

一個典型的例子就是passwd命令,這個命令允許用戶修改自己的密碼。我們可以看到本來是rwx的權限表示形式變成了rws,同樣如果/usr/bin/passwd這個文件同時被設置了三個特殊權限,那麼權限的格式就會變成rwsrwsrwt,需要注意的是特殊權限設置的前置要求是可執行,也就是如果沒有x權限位,是不要設置的,即便你使用root用戶設置上了特殊權限,也不會生效。

[root@localhost test]# ll /usr/bin/passwd

-rwsr-xr-x. 1 root root 34928 5月 11 11:14 /usr/bin/passwd

特殊權限的設置和查看

特殊權限的設置也是使用chmod

[root@localhost test]# ll

總用量 0

-rwxr-xr-x 1 oracle oracle 0 10月 18 01:26 file1

[root@localhost test]# chmod u+s file1

[root@localhost test]# ll

總用量 0

-rwsr-xr-x 1 oracle oracle 0 10月 18 01:26 file1

[root@localhost test]# chmod g+s file1

[root@localhost test]# ll

總用量 0

-rwsr-sr-x 1 oracle oracle 0 10月 18 01:26 file1

[root@localhost test]# chmod o+t file1

[root@localhost test]# ll

總用量 0

-rwsr-sr-t 1 oracle oracle 0 10月 18 01:26 file1

或者使用數字

[root@localhost test]# chmod u-s,g-s,o-t file1

[root@localhost test]# ll

總用量 0

-rwxr-xr-x 1 oracle oracle 0 10月 18 01:26 file1

[root@localhost test]# chmod 7755 file1

[root@localhost test]# ll

總用量 0

-rwsr-sr-t 1 oracle oracle 0 10月 18 01:26 file1