linux權限管理詳解

普通權限

-rw-r–r--. 1 root root 0 Feb 14 23:33 test

  • 第1位標識文件類型:

    -:普通文件
    b:塊設備
    c:字符設備
    d:目錄
    l:符號鏈接
    s:套接字文件
    p:命名管道

  • 2~4位表示擁有者的權限

  • 5-8位表示所屬組的權限

  • 9~11位表示其他人的權限

  • 權限的定義:
    r:可讀,對文件來說即可以讀取文件的具體內容(cat,more,less,vim),對目錄而已即爲可讀取目錄列表(ls)
    w:可寫,對文件即可以修改文件內容(vi),對目錄即可以修改目錄內容(創建,重命名,刪除文件)
    x:可執行,對文件即能執行文件內容(這裏的文件一般是二進制文件,shell腳本,其他任何需要執行的文件),對目錄即爲可以進入目錄(cd)

權限修改相關命令

 - chown(改變文件所有者,也可以實現chgrp的功能)
 	* chown [-R] username filename/dirname:只修改所有者,-R是遞歸更改目錄下的文件
	* chown [-R] username:groupname filename/dirname:同時修改所有者和用戶組
	* chown [-R] .groupname filename/dirname:只修改用戶組
 - chgrp(改變文件所屬用戶組)
	* chgrp [-R] groupname filename/dirname
 - chmod(改變文件的權限)
 	* 符號表達 chmod [-R]  [{ugoa}{+-=}{rwx}]  filename/dirname
 	備註:  u:所有者 g:所屬組 o:其他人  a:所有人
	     +:爲用戶增加權限 -:爲用戶減少權限  =:爲用戶賦予權限
	     r:讀權限  w:寫權限  x:執行權限 
	 例子: 將一個文件的權限設置爲-rwxr-xr-x
	     chmod u=rwx,g=rx,o=rx /tmp/test
 	* 數字表達 chmod [-R]  [mode=421]   filename/dirname     ←(這種方法用的比較多)
 	備註:  r:4  w:2	  x:1
 	例子: 將一個文件的權限設置爲-rwxr-xr-x
 	    chmod 755 /tmp/test

特殊標識位

1.SUID

在這裏插入圖片描述當s出現在文件的所有者標記上,代替了x權限,就稱爲Set UID,簡稱爲SUID,該權限針對命令和二進制程序,當普通用戶執行某個(passwd)命令的時候,可以擁有這個命令對應用戶的權限,
即讓普通用戶可以以root用戶的角色執行程序或命令。

2. SGID

當s出現在用戶所有組標記上,代替了x權限,就稱爲Set GID,簡稱爲SGID
該權限具有以下功能:

SGID應用在文件上:

  • SGID對二進制程序有用
  • 程序執行者對於該程序來說,需具備x的權限
  • 執行者在執行過程中將會獲得該程序用戶組的支持

SGID應用在目錄上:

  • 用戶若對於此目錄具有r和x的權限時,該用戶能夠進入此目錄
  • 用戶在此目錄下的有效用戶組將會變成該目錄的用戶組
  • 若用戶在此目錄下具有w的權限(可以新建文件),則用戶所創建的新文件的用戶組與此目錄的用戶組相同

3. SBIT

在這裏插入圖片描述
SBIT,只針對目錄有效,當用戶在該目錄下創建文件或目錄時,僅有自己與root纔有權利刪除該文件

4. 特殊權限變更命令

同樣通過chmod命令來修改特殊權限
符號表達:
  chmod a+s filename
  chmod g+s filename/dirname
  chmod o+t dirname
數字表達:
  suid:4 sgid:2 sbit:1
  只要在普通權限的前面加上一位即可
  例如,要設置一個普通權限爲755,並且是SUID,就使用命令:chmod 4755 filename即可

權限掩碼(umask)

文件目錄初始權限

文件:inux系統新建文件默認沒有執行權限,其最大權限爲rw-rw-rw-(666)
目錄:新建目錄的最大權限爲rwx-rwx-rwx(777)

計算默認權限

文件:666-umask值所對應的權限
目錄:777-umask值所對應的權限

可通過umask命令查看當前的umask值,一般情況下,root的umask022,普通用戶爲002,計算時建議將umask值轉化爲對應權限去相加減,數字加減後轉換在umask值中有奇數的情況可能會產生錯誤。

ACL

ACL是Access Control List的縮寫,主要提供更加細粒度的權限設置,ACL可以針對單一用戶,單一文件或目錄進行r、w、x的權限設置,對於需要特殊權限的使用狀況非常有用,,需要文件系統選項(ACL)支持。

setfacl命令:設置某個目錄/文件的ACL規定

用法:setfacl [-bkRd] [{-m | -x}] acl參數 filename

參數:

-m:設置後續的acl參數給文件使用,不可與-x合用

-x:刪除後續的acl參數,不可與-m合用

-b:刪除所有的acl參數

-k:刪除默認的acl參數

-R:遞歸設置acl,子目錄也會被設置acl

-d:設置默認的acl參數,只對目錄有效,在該目錄新建的數據都會引用該值

舉例說明:幾個程序員對同一個目錄(/tmp/test)具有完全的權限,但是隻允許項目經理(manager)進入到該目錄裏查看(不允許任何的其他人進入該目錄,同時項目經理也不能修改任何的東西)。此時就要使用到acl:

setfacl -m u:manager:rx /tmp/test
在這裏插入圖片描述
設置acl的文件這裏會有一個+號

getfacl命令:取得某個文件/目錄的ACL設置項目
在這裏插入圖片描述

文件特殊屬性

  • chattr +a filename 只允許以追加方式讀寫文件
  • chattr +c filename 允許這個文件能被內核自動壓縮/解壓
  • chattr +d filename 在進行文件系統備份時,dump程序將忽略這個文件
  • chattr +i filename 設置成不可變的文件,不能被刪除、修改、重命名或者鏈接
  • chattr +s filename 允許一個文件被安全地刪除
  • chattr +S filename 一旦應用程序對這個文件執行了寫操作,使系統立刻把修改的結果寫到磁盤
  • chattr +u filename 若文件被刪除,系統會允許你在以後恢復這個被刪除的文件
  • lsattr filename 顯示特殊的屬性
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章