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的檔案或者對使用者的限制起到了良好的作用,這樣更有利于我們的管理維護~~~