Linux 文件特殊權限詳解[suid/sgid/t]

setuid(suid): 針對命令和二進制程序的,當普通用戶執行某個(passwd)命令的時候,能夠擁有這個命令對應用戶的權限,html

  即讓普通用戶能夠以root用戶的角色執行程序或命令。shell

setgid(sgid): 但願一個目錄被多個用戶(同屬於一個組)共享,同一個組的用戶能夠處理安全

粘滯位(t)    : 把一個文件夾的權限都打開,而後共享文件,像/tmp同樣,可是 生產環境通常不使用工具

 

suid

setuid(suid): 針對命令和二進制程序的ui

chmod u+s h.txtspa

chmod 4777 h.txthtm

chmod u-s h.txtblog

查看passwd命令的權限ip

[root@localhost ftl]# ll /usr/bin/passwd 

問題: passwd文件的屬組是root,表示只有root用戶能夠訪問的文件,爲何普通用戶依然可使用該命令更改本身的密碼?
答案:當普通用戶[omd]使用passwd命令的時候,系統看到passwd命令文件的屬性有大寫s後,表示這個命令的屬主權限被omd用戶得到,也就是omd用戶得到文件/etc/shadow的root的rwx權限

image

 

用戶添加s權限【用4表示s位,有大寫s表示有suid權限】get

[root@localhost ftl]# chmod 4600 hhh.txt       -->【當x位沒有小寫x執行權限的時候,sudi的權限顯示的就是大S】
    [root@localhost ftl]# chmod 600 hhh.txt


image
  

查找擁有s權限且文件權限爲755的文件

find / -type f -perm 4755

image

取消ping命令的共享權限
               

which ping --> /bin/ping -->顯示4755
                chmod 755 /bin/ping
                普通用戶用不了 ping命令了

image

其餘答疑

suid和sudo均可以用於提升用戶的操做權限,那他們的區別是什麼?
          suid:是讓全部用戶擁有某個權限能夠執行某個程序或命令  -->僅僅是一個工具,僅僅在執行過程當中生效,全部人均可用
          sudo:是讓某個用戶得到特定的某個命令或者執行權限      -->身份提升,終身有效,某個用戶纔有的權利

但願普通用戶[omd]刪除某個本身沒有權限刪除的文件,應該怎麼處理?
            a.sudo給omd受權rm權限 

          b.rm設置suid 

          c.修改上級目錄的權限【由於上級目錄記錄着下級目錄裏文件的權限信息】

sgid

setgid(sgid): 但願一個目錄被多個用戶(同屬於一個組)共享,同一個組的用戶能夠處理

chmod g+s /home/omd/h    -->添加sgid

chmod 2755 /home/omd/h    -->添加sgid

chmod g-s /home/omd/h     -->取消sgid

 

粘滯位(t)

粘滯位(t): 把一個文件夾的權限都打開,而後共享文件,像/tmp同樣,可是 生產環境通常不使用

  chmod o+s h.txt              --> 添加粘滯位

  chmod o-s h.txt               --> 取消粘滯位

  chmod 1777 /home/omd   –>添加粘滯位

查看/tmp文件夾的權限:

tmp至關於共內容,全部用戶能夠對這個目錄操做,可是不能破壞(t的做用)
/tmp是經典的粘滯位目錄,特色:誰都有寫的權限,所以有安全隱患
[root@localhost omd]# ll -ld /tmp/    -->t表示粘滯位  t表示有個x,沒有就是大T

image

 

特殊權限的小結

特殊說明:  

suid 4000: 權限符s(S),用戶位上的x位置  chmod 4777 h.txt
guid 2000: 權限符s(S),用戶組位上的x位置  chmod 2777 h.txt
粘滯位 1000: 權限符t(T),其餘用戶位上的x位置  chmod 1777 /home/omd
    對應位有x則,字符權限小寫,不然表現爲大寫

設置方法:

chmod u+s h.txt   chmod u-s h.txtchmod g+s h.txt   chmod g-s h.txtchmod o+s h.txt   chmod o-s h.txt/tmp是經典的粘滯位目錄,須要記住哦

相關文章
相關標籤/搜索