網路安全系列之四十 在Linux中設定SET位許可權

2021-09-03 09:58:27 字數 2820 閱讀 1819

雖然通過acl增加了許可權設定的靈活性,但是linux系統中可供設定的許可權只有讀、寫、執行三種,在某些特殊的場合,這可能將無法滿足要求。因而,在linux系統中還提供了幾種特殊的附加許可權,用於為檔案或目錄提供額外的控制方式,可用的附加許可權包括:set位許可權(suid、sgid)和粘滯位許可權(sticky bit)。本文將介紹set位許可權。

set位許可權多用於給可執行的程式檔案或目錄進行設定,其中suid表示對所有者使用者新增set位許可權,sgid表示對所屬組內的使用者新增set位許可權。當乙個可執行檔案被設定了suid、sgid許可權後,任何使用者在執行該檔案時,將獲得該檔案所有者、所屬組相對應的許可權。

set位許可權的許可權字元為「s」,設定set位許可權同樣要通過chmod命令實現,可以使用「u+s」、「g+s」的許可權模式分別用於設定suid、sgid許可權。

設定suid、sgid許可權後,使用ls命令檢視檔案的屬性時,對應位置的「x」將變為s,表示該檔案在執行時將以所有者或所屬組的身份訪問系統。注意,如果檔案原來位置有x許可權,執行該命令後其許可權字元為小寫s;若檔案原位沒有x許可權,則設定許可權後將顯示為大寫字元s。

1)設定suid

例:檢視passwd命令所對應的程式檔案的屬性資訊。

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

-rwsr-xr-x. 1 root root 30768 2月 17 2012 /usr/bin/passwd

/usr/bin/passwd檔案的許可權是「rwsr-xr-x」,set位許可權設定在第一組,表示針對所有者使用者設定,因而稱為suid。這樣當其他使用者執行passwd命令時,會自動以檔案所有者root使用者的身份去執行。

suid僅能針對可執行檔案設定,對於目錄無效。

由於suid許可權會改變使用者身份,這給系統帶來了一定的安全隱患,因而一般不建議我們自己去設定suid,但是系統中有不少預設已經設定了suid許可權的可執行檔案,我們能了解其用途即可。

系統中常見的已經設定了suid許可權的可執行檔案還包括:

[root@localhost ~]#ll /bin/su

-rwsr-xr-x. 1 root root 34904 4月 17 2012 /bin/su

[root@localhost ~]#ll /bin/mount

-rwsr-xr-x. 1 root root 76056 4月 6 2012 /bin/mount

[root@localhost ~]#ll /bin/ping

-rwsr-xr-x. 1 root root 40760 3月 22 2011 /bin/ping

例:去除/bin/ping的suid許可權:

[root@localhost ~]#chmod u-s /bin/ping

[root@localhost ~]#ll /bin/ping

-rwxr-xr-x 1 root root 37312 2009-04-24 /bin/ping

2)設定sgid

如果set位許可權設定在所屬組所對應的第二組許可權位時,那麼就稱為sgid。

sgid可以針對可執行檔案設定,也可以針對目錄設定,但是所表達的含義卻截然不同:

一般來說,sgid通常用於目錄的許可權設定。

例如,設定/home/test目錄的所有者是student,所屬組是users,許可權是770,預設情況下在該目錄下建立的檔案的所有者和所屬組都是建立者,如下所示。

[root@localhost ~]#ll -d /home/test

drwxrwx---. 2 student users 4096 12月 2 21:46 /home/test

[root@localhost ~]#touch /home/test/file1

[root@localhost ~]#ll /home/test

總用量 0

-rw-r--r--. 1 root root 0 12月 2 21:47 file1

為/home/test目錄設定sgid許可權,再在目錄中建立檔案時,檔案的所屬組將被自動設定為目錄的所屬組users,如下所示。

[root@localhost ~]#chmod g+s /home/test

[root@localhost ~]#ll -d /home/test

drwxrws---. 2 student users 4096 12月 2 21:47 /home/test

[root@localhost ~]#touch /home/test/file2

[root@localhost ~]#ll /home/test

總用量 0

-rw-r--r--. 1 root root 0 12月 2 21:47 file1

-rw-r--r--. 1 root users 0 12月 2 21:50 file2

suid許可權在生產環境中被廣泛用於協同辦公。當為目錄設定了suid許可權之後,所有使用者在該目錄中建立的檔案都將屬於同乙個使用者組,這樣只要是該組的成員都將自動擁有對檔案的相應許可權,以方便同組成員之間的檔案修改和資訊交流。

網路安全系列之十四 在Linux中設定UMASK值

umask值用於設定使用者在建立檔案時的預設許可權,當我們在系統中建立目錄或檔案時,目錄或檔案所具有的預設許可權就是由umask值決定的。對於root使用者,系統預設的umask值是0022 對於普通使用者,系統預設的umask值是0002。執行umask命令可以檢視當前使用者的umask值。roo...

網路安全系列之十二 Linux使用者賬號安全設定

使用者賬號是計算機使用者的身份憑證或標識,每乙個要訪問系統資源的人,必須憑藉他的使用者賬號才能進入計算機。在linux系統中,提供了多種機制來確保使用者賬號的正當 安全使用。合理地規劃使用者賬號,並合理地分配許可權,是保證linux系統安全的第一步。1.清理系統賬號 在linux系統中,一些程式在安...

網路安全系列之四十六 在IIS6中配置目錄安全性

web站點預設是允許匿名訪問的,某些特殊 或者虛擬目錄 如果要求使用者提供賬號和密碼才能訪問,或者限定某些ip位址能 或不能 訪問,那可以通過在web站點屬性的 目錄安全性 選項卡中進行相關設定以完成上述要求。1 在 身份驗證方法 介面中可以看到web伺服器預設啟用了匿名訪問功能,即客戶端在訪問we...