歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux管理 >> Linux問題解決

linux強制位與冒險位的技巧介紹

linuxext3文件系統支持強制位(setuid 和setgid)與冒險位(sticky)的特別權限。針對u,g,o,分別有set uid,set gid,及sticky。

強制位與冒險位添加在執行權限的位置上:如果該位置上原已有執行權限,則強制位與冒險位以小寫字母的方式表示;否則,以大寫字母表示。set uid與set gid在u和g的x位置上各采用一個s,sticky使用一個t。

當一個文件具有setuid時,同時others群組具有可執行權限,那麼當 others群組執行程序時,others將擁有該文件的owner權限。

默認情況下,用戶建立的文件屬於用戶當前所 在的組。目錄上設置了setgid,表示在此目錄中,任何人建立的文件,都會屬於目錄所屬的組。

默認情況下,如果一個目錄上有w和x權限, 則任何人可以在此目錄中建立與刪除文件。一旦目錄上設置了冒險位,則表示在此目錄中,只有文件的擁有者、及root 才可以刪除文件。

在可執行文件上,用戶可以添加set uid和set gid。默認情況下,用戶執行一個 可執行文件,會以該用戶的身份來運行進程。在可執行性文 件上添加強制位後,可以讓用戶執行的指令,以指令文件的擁有者或所屬組的身份運行進程。

用戶可以用chmod指令來為文件設置強制 位與冒險位。

set uid:chmod u+s 文件名

set gid:chmod g+s 文件名

sticky:chmod o+t 文件名

強制位與冒險位也可以通過一個數字加和,放 在讀寫執行的三位數字前來指定。

4(set uid)

2(set gid)

1(sticky)

強制位對文件的作用

在可執行文件上,用戶可以添加set uid和set gid。默認情況下,用戶執行一個指令,會以該用戶的身份來運行進程。指令文件上的強制位,可以讓用戶執行的指令,以指令文件的擁有者或所屬組的身份運行 進程。這裡有一個很好的例子。你管理著幾個大型的數據庫系統,而對它們進行備份需要有系統管理權限。你寫了幾個腳本,並設置了它們的setuid,這樣你指定 的一些用戶只要執行這些腳本就能夠完成相應的工作,而無須以數據庫管理員的身份登錄,以免不小心破壞了數據庫服務器。通過執行這些腳本,他們可以完成數據 庫備份及其他管理任務,而且在這些腳本運行結束之後,他們就又回復到他們作為普通用戶的權限。另一個例子是/bin /passwd ,要讀寫/etc/passwd文件需要超級用戶權限,但一般用戶也需要隨時可以改變自己的密碼,所以/bin/passwd就設置了setuid,當用戶改 自己密碼的時侯就擁有了超級用戶權限.

強制位對目錄的作用

默認情況下,用戶建立的文件屬於用戶當前 所在的組。目錄上設置了setgid,表示在此目錄中,任何人建立的文件,都會屬於目錄所屬的組。

Copyright © Linux教程網 All Rights Reserved