linux 系統權限相關知識

一、setuid與setgid講解 

看一下系統中用到它的地方,以/etc/passwd和/usr/bin/passwd爲例: 

 ui

複製代碼it

代碼以下:權限


[root@Salve1 school]# ll /etc/passwd /usr/bin/passwd 
-rw-r--r-- 1 root root 2005 Apr 23 01:25 /etc/passwd 
-rwsr-xr-x 1 root root 23420 Aug 11 2010 /usr/bin/passwd 
[root@Salve1 school]# 密碼



分析一下,/etc/passwd的權限爲 -rw-r--r-- 也就是說:該文件的全部者擁有讀寫的權限,而用戶組成員和其它成員只有查看的權限。咱們知道,在系統中咱們要修改一個用戶的密碼,root用戶和普通用戶都可以用/usr/bin/passwd someuser這個命令來修改這個/etc/passwd這個文件,root用戶自己擁有對/etc/passwd的寫權限,無可厚非;那普通用戶呢,這裏就用到了setuid,setuid的做用是「讓執行該命令的用戶以該命令擁有者的權限去執行」,就是普通用戶執行passwd時會擁有root的權限,這樣就能夠修改/etc/passwd這個文件了。它的標誌爲:s,會出如今x的地方,例:-rwsr-xr-x 。而setgid的意思和它是同樣的,即讓執行文件的用戶以該文件所屬組的權限去執行。 

二、stick bit(粘滯位) 

看一下系統中用到它的地方,以/tmp爲例: 

 刪除文件

複製代碼文件

代碼以下:系統


[root@Salve1 /]# ll -d /tmp 
drwxrwxrwt 13 root root 4096 Apr 23 02:06 /tmp 
[root@Salve1 /]# 



咱們知道/tmp是系統的臨時文件目錄,全部的用戶在該目錄下擁有全部的權限,也就是說在該目錄下能夠任意建立、修改、刪除文件,那若是用戶A在該目錄下建立了一個文件,用戶B將該文件刪除了,這種狀況咱們是不能容許的。爲了達到該目的,就出現了stick bit(粘滯位)的概念。它是針對目錄來講的,若是該目錄設置了stick bit(粘滯位),則該目錄下的文件除了該文件的建立者和root用戶能夠刪除和修改/tmp目錄下的stuff,別的用戶均不能動別人的,這就是粘滯位的做用。 

三、如何設置上述特殊權限 

 

複製代碼

代碼以下:


chmod u+s xxx # 設置setuid權限 
chmod g+s xxx # 設置setgid權限 
chmod o+t xxx # 設置stick bit權限,針對目錄 
chmod 4775 xxx # 設置setuid權限 
chmod 2775 xxx # 設置setgid權限 
chmod 1775 xxx # 設置stick bit權限,針對目錄 

四、注意:有時你設置了s或t 權限,你會發現它變成了S或T,這是由於在那個位置上你沒有給它x(可執行)的權限,這樣的話這樣的設置是不會有效的,你能夠先給它賦上x的權限,而後再給s或t 的權限。

相關文章
相關標籤/搜索