天天看點

linux 使用者權限 SUID、SGID、SBIT...

Linux的特殊權限和應用

  • SUID:作用于使用者

當檔案設定了setuid位後,任何能夠執行此文檔的使用者都有與檔案屬主相同的權限,即使得任意使用者在執行該檔案時,都綁定了檔案屬主的權限。例如,某個程式為root擁有,又設定了setuid位,那即使是一個普通使用者運作該程式,該程式的身份一樣是root的身份,可以通路所有隻有root可以通路的資源,設定setuid位的程式曾是被攻擊的對象。setuid位典型的應用是/usr/bin/passwd,檢視該檔案權限顯示-rwsr-xr-x,這裡的s表示設定了setuid位且該檔案可由檔案屬主執行,如果一般使用者執行該檔案,則在執行過程中可以獲得root權限,進而更改使用者密碼。大寫S表示檔案本來沒有可執行權限并且設定了setuid位

檢視SetUID權限:占用原先“所有者”的x權限位。 rws r-x r-x
小寫s: 表示原先是具有x權限的        
大寫S:辨別原先沒有x權限
chmod u+s 或 u-s /file1
           
[root@deng- /etc]# chmod u+s passwd
[root@deng- /etc]# ll passwd
-rwsr--r--  root root  月   : passwd
           
  • SGID:作用于所屬組
檢視SetUID權限:占用原先“所有者”的x權限位。 rwx r-s r-x
小寫s: 表示原先是具有x權限的        
大寫S:辨別原先沒有x權限
chmod g+s 或 g-s /file1
作用:繼承屬性使用者組的屬性
           
[root@deng- ~]# mkdir aa    #建立 aa 的檔案夾
[root@deng- ~]# ls  
drwxr-xr-x   root root        月   : aa     #最原始沒有 s 的權限,所屬組為 root
[root@deng- ~]# chgrp rosen aa/ #更改所屬組為 rosen 
[root@deng- ~]# chmod g+s aa/   #給 aa 加上 s 權限
[root@deng- ~]# ll  
drwxr-sr-x   root rosen        月   : aa    #擁有 s 權限
[root@deng- ~/aa]# touch abc        #在aa下建立檔案都會繼承 aa 檔案夾的所屬組
[root@deng- ~/aa]# ll
-rw-r--r--  root rosen  月   : abc  
           

當s權限作用于組的時候,就會起到對應的繼承父檔案的屬性

  • Sticky:粘滞位。作用于其他人,隻有自己才能删除自己的檔案(root除外)
t 權限 :一般用于目錄,用于公共的目錄。 權限為777的目錄
t 占用 x權限的位置
小寫t:表示原先是具有x權限
大寫T:辨別原先是不具有x權限
           
[root@deng- ~]# chmod 777 aa/   #777權限任何人都可以aa檔案夾對裡面的檔案進行建立删除和修改
[root@deng- ~]# ll
drwxrwsrwx   root rosen       月   : aa    
[root@deng- ~]# chmod o+t aa/   #給aa檔案夾加上 t 權限
[root@deng- ~]# ll  
drwxrwsrwt   root rosen       月   : aa    
#擁有t權限的檔案夾,其他普通使用者在aa目錄下職能對自己創的檔案進行删除,對其他檔案可以修改但是不能執行删除的操作
           

如何設定特殊權限

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

注意:有時你設定了s或t 權限,你會發現它變成了S或T,這是因為在那個位置上你沒有給它x(可執行)的權限,這樣的話這樣的設定是不會有效的,你可以先給它賦上x的權限,然後再給s或t 的權限

特殊權限對我i們linux的檔案或者對使用者的限制起到了良好的作用,這樣更有利于我們的管理維護~~~

繼續閱讀