Linux學習筆記——特殊權限之 SUID GUID StickyBit

◆ SUID ( Set User ID )

Linux里,用戶的ID被稱作UID。在實際生產中,可能需要臨時借用別的用戶執行程序,因此需要能夠臨時變更自己UID的機能叫做SUID。借助SUID權限,用戶可以臨時調用root權限。
※ 通常,文件的執行是由所屬者發起,然而,賦予SUID權限后可臨時繼承所有者的權限(來執行文件)。通常用于二進制可執行文件上,文件夾賦予該權限無意義。

舉個例子,假如我們要變更密碼、需要編輯/etc/shadow文件,然而這個文件一般用戶并沒有修改權限。但由于更改密碼的命令?passwd擁有SUID權限、一般用戶就可以通過該命令來(繼承root的權限進而)更改密碼。同時我們也可以看到在ll命令下,擁有SUID權限的文件,執行權限的位置會由x變為s。

$?ls -l /usr/bin/passwd

-rwsr-xr-x. 1 root root 25980 Sat 07 2018 /usr/bin/passwd

 

從上面的命令中可以看到,所有者的權限顯示為rws,其中,執行權變成了s。也就是說,有執行該命令權限的而用戶可以臨時繼承所有者(root)的權限。

需要通過chmod來賦予(二進制可執行)文件SUID時,可通過添加數字“4000”來賦予權限。比如,原來的權限為755(rwx r-x r-x),賦予SUID權限后變成4755,即(rws r-x r-x)。若想用字母表示,則可用u+s來代替4755.

 ◆ 例子 : 給magedu.txt賦予「 rws r-x r-x 」權限

 $?chmod 4755 magedu.txt

 ◆ 或 : 把magedu.txt的權限由755變為4755 (SUID)

 $?chmod u+s magedu.txt

◆ SGID ( Set Group ID )

除了繼承所有者權限的SUID、與之相對的還有繼承組權限的SGID。默認情況下,用戶創建文件(夾)時,其屬組為此用戶所屬的主組。一旦某目錄被設定了SGID,則對此目錄有寫權限的用戶在此目錄中創建的文件所屬的組為此目錄的屬組。在生產生活當中,GUID權限通常用于創建協作目錄。擁有SUID權限時,所有者的執行權限表現為s,而擁有GUID權限的情況下則是組權限中表達執行權限的x變為s。

通過chmod設置權限時,可以加算數字2000、或者使用文字g+s來賦予權限。

注:很少用來設置單個文件。

◆ 例子 : 把文件夾magedu 賦予「 rwx r-s r-x 」權限

 $?chmod 2755 magedu

◆ 或 : 用字母來添加GUID 權限

 $?chmod g+s magedu

◆ 粘滯位(sticky bit)

被設置了粘滯位的文件夾,其中的文件及子目錄原來具有的權限將無效化。只有所有者及root才能對文件進行修改或刪除。當需要「使一個目錄既可以讓任何用戶寫入文件,又不讓用戶刪除這個目錄下他人的文件」的時候,sticky位即可派上用場。比如系統中的?/tmp?目錄就已經設定了粘滯位。

$?ll -d /tmp

drwxrwxrwt. 10 root root 4096 Sat 06 16:25 /tmp

粘滯位在“其它用戶權限”中的執行權上顯示為t。用chmod賦予該權限時、可加算數字?1000?來設置。同時也可以用字母(o+t)來賦予權限。

◆ 例 : 給目錄magedudir 賦予「 rwx rwx rwt 」權限

 $?chmod 1755 magedudir

 ◆ 或 : 把目錄magedudir 的權限由「755」變為「1755」

 $?chmod o+t magedudir

 

◆ SUID、SGID、粘滯位的區別

權限類型 權限作用對象 數字標記 字母標記
SUID 所有者 4000 u+s
SGID 2000 g+s
Sticky Bit 其它用戶 1000 o+t

◆ umask 命令(權限默認值)

文件或目錄創建后都有其默認權限,而默認權限的設置與查看,由umask負責。
可以直接執行umask命令來查看umask的值。新建文件的默認權限則由數字666減去umask值,而新建目錄的權限則由數字777減去umask的值。root用戶的默認umask值為「0022」。則新建文件的權限為 666-022=644、新建目錄的權限為 777-022=755。

※注:文件默認權限用666減去umask后可能會出現個位為奇數的情況,這樣就會默認具有執行權限。為避免這種現象,系統會自行將奇數+1。例如:666-125=541(r-x rw- –x),所有奇數+1后,實際權限為642(rw- r– -w-)

 ◆ 例子 : 確認當前umask值

$?umask
0022

※ umask值可以由用戶指定。

※? ? 如需長期使用,umask設置需要寫入配置文件。全局設置: /etc/bashrc 用戶設置:~/.bashrc

◆ 例子 : 把umask值從0022變為0027

 $?umask 0027

※ 變更umask值后新建文件的權限即為(-rw r– —)。

本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/95320

(1)
無名無名
上一篇 2018-04-07
下一篇 2018-04-07

相關推薦

  • Linux 基礎

    Linux 基礎 一.計算機組成及其功能 當今計算機采用馮·諾依曼架構,必須具備的五大基本組成部件,包括: 1.輸入數據和程序的輸入設備 2.記憶程序和數據的存儲器 3.完成數據加工處理的運算器 4.控制程序執行的控制器 5.輸出處理結果的輸出設備 計算機基本組成結構圖 二.Linux的發行版,不同發行版之間的聯系與區別 1.Linux 嚴格來說Linux是…

    2018-05-12
  • 第一周總結

    存儲網絡: DAS—–直接連接存儲(Direct attached storage) NAS—–網絡連接存儲(Network attached storage) SAN—–存儲區域網絡(storage area network) DAS優缺點: 直接存儲(Direct Attached Storage)。存儲設備與主機的緊密相連 1.管理成…

    Linux筆記 2018-04-01
  • Linux“文本三劍客”之grep

    Linux“文本三劍客”之grep grep,Global search REgular expression and Print out the line. 是Linux中常用的文本搜索工具,基于正則表達式(Regular Expression)和文本字符來編寫模式(Pattern),然后根據指定的模式對目標文本逐行進行匹配,打印匹配到的行。 grep工具…

    2018-05-14
  • 計算機的組成及功能

    1. 計算機是由硬件系統及軟件系統組成 1.1 硬件系統:CPU、存儲器、輸入及輸出設備; CPU:包括運算器及控制器;運算器完成算數及邏輯運算,而控制器則實現取指令和分析指令。 存儲器:包括內存、外存;內存主要負責存儲緩存數據,外村主要負責存儲本地數據。 輸入設備:鍵盤、鼠標等標準輸入設備。 輸出設備:顯示器、打印機等。 1.2 軟件系統:系統軟件及應用軟…

    Linux筆記 2018-05-12
欧美性久久久久