一、簡述權限
文件系統的權限管理機制的建立,約束了用戶對數據的操作。
1、對系統安全而言
管理員的操作權限非常大,足以破壞系統,權限機制將管理員與普通用戶之間區分開,防止系統被隨意破壞。
2、對用戶而言
Linux是一個多用戶的操作系統,不同用戶間為了防止其他人破壞數據或訪問數據,文件系統的權限管理是非常必要的。
二、文件權限說明
-
文件權限的設定對象分為三類
1、owner:文件擁有者
2、group:定義的用戶組
3、other:其他人
針對不同對象設定各自的權限
-
文件權限對于文件的意義
r (read):可讀取此一文件的實際內容,如讀取文本文件的文字內容等;
w (write):可以編輯、新增或者是修改該文件的內容(但不含刪除該文件);
x (execute):該文件可以提請內核啟動為進程。
-
文件權限對于目錄的意義
r (read contents in directory):
表示具有讀取目錄結構列表的權限,可ls 列出文件列表;
w (modify contents of directory):
表示具有對目錄結構進行更改的權限
1.建立新的文件與目錄;
2.刪除已經存在的文件與目錄(不論該文件的權限為何!)
3.將已存在的文件或目錄進行更名;
4.搬移該目錄內的文件、目錄位置。
x (access directory):
表示具有進入該目錄的權限。對目錄擁有x權限十分重要,如果沒有該權限,不能在目錄下做任何操作,擁有rx可以使用ls -l 命令;光有w權限,沒有x,不能對目錄結構進行任何改動。
三、權限管理命令
chmod [OPTION]… MODE[,MODE]… FILE…
該命令分為三種執行模式
1、賦權模式:直接操作一類用戶所有權限
chmod u=,g=,o=
2、授權模式:操作一類用戶單一權限
chmod u[+|-],g[+|-],o[+|-]
3、八進制模式:直接三類用戶權限碼
chmod 741 FILE
-
權限碼說明
權限:八進制:十進制
r–:100:4
-w-:010:2
–x:001:1
例如,rwxr-xr-x ->755
-
遞歸選項-R
-
目錄X權限用法
chmod -R +X /testdir
遞歸的時候只對目錄加x權限,不對文件加x權限(原文件已具有x權限除外)
四、文件反向掩碼umask
在Linux上創建新文件的默認權限由umask來決定
-
新建目錄默認權限
777-umask
-
新建文件默認權限
因為新建文件帶有可執行權限是一件危險的事情,所以Linux上新建文件不允許帶有x權限
666-umask,結果位如果是奇數(帶有x權限)則將其權限+1
-
umask相關命令
umask:查看
umask -S:模式方式顯示
umask xxx:設定
umask -p:輸出可被調用
五、文件系統的特殊權限
-
普通用戶運行passwd程序的問題
首先講一下安全上下文:
任何一個可執行程序能否發起,由發起者對其是否有執行權限決定的。
程序啟動為進程后,進程繼承發起者的屬主屬組。
當進程訪問文件時,應用繼承而來的身份來執行操作。
如此一來,普通用戶運行passwd修改自己的密碼時,必然要對/etc/shadow 文件進行讀寫,而我們知道此文件設置的權限極為嚴格,只有管理員用戶才可讀寫,普通用戶運行的passwd進程身份是其他人,無法對此文件讀寫。而實際上我們操作時可以修改自己的密碼,這是因為passwd二進制文件具有特殊文件權限。
-rwsr-xr-x. 1 root root 27832 Jun 10 2014 /usr/bin/passwd
-
特殊權限介紹
Linux文件系統上有三個特殊權限位,
setuid,setgid,sticky bit
權限位上代替x位置,–s–s–t
-
setuid
chmod u+s FILE chmod u-s FILE
作用于可執行二進制文件有效。
表示任何用戶執行該文件發起的進程,繼承文件所有者的身份,而不是發起者。
讓本來沒有相應權限的用戶運行此類程序時,可以訪問原來沒有權限的資源。
-
setgid
chmod g+s FILE|DIR chmod g-s FILE|DIR
作用于可執行二進制文件時,
表示任何用戶執行該文件發起的進程,繼承文件所屬組的身份。
作用于目錄時,
表示在目錄下新建文件的所屬組為此目錄的所屬組
-
sticky bit
chmod o+t DIR chmod o-t DIR
只作用于目錄
表示該目錄下的文件,除管理員和目錄屬主外,其他用戶只可以刪除自己的文件。
原創文章,作者:cutemsyu,如若轉載,請注明出處:http://www.www58058.com/27512