文件系統的特殊權限

Linux文件系統上的特殊權限

  • 任何一個可執行程序文件能不能啓動爲進程,取決於發起者對程序文件是否擁有執行權限
  • 決定命令有哪些操作取決於用戶的權限大小,我們知道在Linux系統中常用的權限有三種 r,w,x 我們可以對user ,group,other這三種可以設定權限。
  • 我們除了r,w,x這三種權限也有三種特殊的文件權限分別是SUID,SGID,STICKY (粘滯位)

SUID

  • suid 只能對二進制可執行程序有效,在目錄設置沒有意義
  • 在常用命令中有一個修改用戶密碼的命令passwd 它就是一個有suid權限的命令
[root@centos7 ~]# ll `which passwd`
-rwsr-xr-x. 1 root root 27832 Jun 10  2014 /usr/bin/passwd
  • 我們知道修改用戶密碼需要改/etc/shadow ,但是普通用戶是無法查看和修改、etc/shadow文件的 ,但是用passwd卻可以間接修改,這是因爲passwd文件上在所有者上有個S的權限
  • 當二進制程序有S權限時,用戶使用這個二進制程序的時候會繼承所有者的權限。
  • 當然如果把所有者上的執行權限去掉,那麼S權限則顯示錯誤,所以s權限時基於執行權限的
  • 由於這隻能對二進制程序文件有效我們也可以在vim上加s,這樣其它用戶都可以編輯任何文件都是用所有者編輯的,危害很大要慎用。
如何添加權限
  • 普通加法 chmod u+s /file
  • 刪除權限 chmod u-s /file
  • 數字加權 chmod 4777 /file
  • 刪除權限 chmod 777 /file

SGIU

  • 作用在二進制程序上,執行sgid權限的程序時,此用戶將繼承此程序的所屬組權限
  • 作用在目錄上:在此目錄新的文件的所屬組,將自動繼承目錄的所屬組
  • 默認情況下,用戶創建文件時,其屬組爲此用戶所屬的 主 組一旦某目錄被設定了SGID ,則對此 目錄有寫權限的用戶在此
    目錄中創建的文件所屬的組爲此目錄的屬組
  • 通常用於創建一個協作目錄

  • 操作如何讓其它用戶創建的文件都變成目錄的所屬組

    • 我們在/app目錄上操作,把/app 上的權限變成770 所有者和所屬組有完全操作權限,其它人不能任何操作並且把所屬組變成g1
    • [root@centos6 ~]# chmod 770 /app/
      [root@centos6 ~]# ll -d /app/
      drwxrwx---. 2 root g1 4096 Nov 18 06:32 /app/
    • 在吧兩個用戶加入到g1組裏,guo和wang這兩個用戶加入進去
    • [root@centos6 ~]# groupmems -g g1 -l
      wang guo
    • 現在是沒有在權限上加入sgid權限的,用兩個用戶分別新建文件看一下
    • [guo@centos6 /app]$ ll
      total 0
      -rw-rw-r--. 1 wang wang 0 Nov 18 06:55 1.txt
      -rw-rw--r--. 1 guo qwe 0 Nov 18 07:02 2.txt
    • 我們要讓wang和guo創建的文件能讓他們都能看對方的和修改,現在wang和guo都只能看不能修改。因爲other權限沒有寫權限,最好的方法是讓wang 和guo都屬於一個組然後在修改所屬組的權限,當然我們也可以在other上加上讀寫權限。如果創建一個文件就要改一下所屬組很麻煩,我們只要在/app 目錄上加入sgid 那/app 目錄下其它用戶創建的文件都會自動變成/app 目錄的所屬組。
    • [root@centos6 ~]# chmod g+s /app/
      [root@centos6 ~]# ll -d /app/

      drwxrws---. 2 root g1 4096 Nov 18 07:02 /app/
    • 我們在創建一下文件看一下
    • [wang@centos6 app]$ touch 1.1.txt
      [wang@centos6 app]$ ll
      total 0
      -rw-rw-r--. 1 wang g1 0 Nov 18 07:27 1.1.txt
      -rw-rw-r--. 1 wang wang 0 Nov 18 06:55 1.txt
      -rw-rw--r--. 1 guo g1 0 Nov 18 07:27 2.2.txt
      -rw-rw--r--. 1 guo qwe 0 Nov 18 07:02 2.txt
    • 這樣/app 下創建的文件就會繼承/app 目錄的所組,我們也把wang和guo用戶加入了g1 組.
如何添加權限
  • 加chmod g+s /file
  • 刪除chmod g-s /file
  • 加chmod 2777 /file

STICKY (粘滯位)

  • 只能作用在目錄
  • 具有sticky權限的目錄,普通用戶只能自已刪除自已的文件
  • /tmp 目錄就是
    [root@centos6 ~]# ll -d /tmp/
    drwxrwxrwt.36 root root 4096 Nov 18 06:31 /tmp/

如何添加權限
  • 加chmod o+t /file
  • 刪除chmod o-t /file
  • 加chmod 1777 /file

我們發現所有特殊權限都是在X權限上遮蓋x權限的位置,所以如果沒有x權限是有問題的

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章