大家好,上一次我們學習了關于Linux中的基礎指令,那么我們今天來繼續學習Linux的新的內容:權限。那么話不多說,我們開始今天的學習:
目錄
Linux權限
1. Linux權限的概念
2. Linux權限管理
3. ?件權限值的表??法
4.??件訪問權限的相關設置?法
5.?umask
6. ?錄的權限?
7.粘滯位
Linux權限
對于權限我們先來思考兩個問題:
權限是什么?
權限的本質:能或不能做什么事情
為什么有權限?
1. 控制用戶的行為,防止錯誤的發生
2. 權限首先限制的用戶,權限要求目標必須具備相應的屬性
所以我們可以總結出:權限=用戶+目標屬性 ,也就是說,權限限制的就是用戶和目標屬性這兩個方面,下面我們就從這兩個方面來學習。
1. Linux權限的概念
超級??:可以再linux系統下做任何事情,不受限制普通??:在linux下做有限的事情。超級??的命令提?符是“#”,普通??的命令提?符是“$”。
這里我們學習一個新的命令:
名令:su [??名]功能:切換??。
當我們使用 su ( root ) 時,系統會在我們當前用戶上新覆蓋一個root的身份,而當我們使用 su - ( root ) 時,系統會登錄root用戶,這是這兩種使用方法的區別。
2. Linux權限管理
1. ?件訪問者的分類(用戶)?件和?件?錄的所有者:u---User?件和?件?錄的所有者所在的組的??:g---Group其它??:o---Others?2. ?件類型和訪問權限(事物屬性)?件類型:d:?件夾-:普通?件l:軟鏈接(類似Windows的快捷?式)b:塊設備?件(例如硬盤、光驅等)p:管道?件c:字符設備?件(例如屏幕等串?設備)s:套接??件基本權限:讀(r/4):Read對?件??,具有讀取?件內容的權限;對?錄來說,具有瀏覽該?錄信息的權限寫(w/2):Write對?件??,具有修改?件內容的權限;對?錄來說具有刪除移動?錄內?件的權限執?(x/1):execute對?件??,具有執??件的權限;對?錄來說,具有進??錄的權限“—”表?不具有該項權限
?在我們實際使用的時候,有些時候會遇到一些我們想要執行的操作但是這些操作只能由root用戶來執行,比如說安裝軟件,這需要管理員root的權限,這時候就需要另一個命令:
命令:sudo[選項] [命令]
功能:它允許系統管理員為普通用戶分配特定的 root 權限,避免直接使用 root 賬戶登錄
-rw-r--r--. 1 root root 0 9 ? 19 15:58 abc.cdrwxr-xr-x. 27 litao litao 4096 9 ? 19 15:53 litao-rw-r--r--. 1 root root 0 9 ? 19 15:59 root.c
我們來看這三個文件的詳細信息,
其中,畫線部分第一個用戶名就是文件目錄的所有者,第二個用戶名就是文件目錄的所屬組,至于其他用戶,這里并不需要給出,因為對于一個用戶他既不是所有者也不是所屬組那么他就是其他用戶,在這里就無法給出其他用戶的具體用戶名。
下面我們來看用戶名前面這一部分,我們上一次學習了這里第一個字符代表文件的類型,決定了這是目錄還是一個什么類型的文件,后面9個字符我們每三個分成一組,第一組就代表所有者對該文件或目錄的權限,第二組代表所屬組的權限,第三組代表其他用戶的權限。
其中r代表可讀,w代表可寫,x代表可執行。但是一個文件具體能不能執行不僅需要該文件是可執行文件也需要有可執行權限,否則都無法執行。
1.能改任何人的文件權限嗎?用戶只能更改自己的文件權限
2.沒有權限怎么念?系統會拒絕讓我們訪問
3.確認權限信息的時候,系統會先確定用戶是誰?擁有者,所屬組,還是 other?在 Centos 下 用戶角色確定,只確定一次 順序是:擁有者,所屬組,other
4.root 用戶的權限?不受權限約束
3. ?件權限值的表??法
符表??法8進制數值表??法
每一組權限都由r w x組成,每個權限都有兩種可能也就是可讀和不可讀... ,那么我們可以用二進制來表示,對于可讀可寫可執行那么它的二進制就是111,寫成8進制就是7,對于不可讀不可寫不可執行那么它的二進制就是000,寫成8進制就是0,因此我們把上述三個文件的權限全部寫成8進制就是644 755 644,這樣在后面修改權限時使用會更方便 一些。
4.??件訪問權限的相關設置?法
chmod功能:設置?件的訪問權限格式:chmod [參數] 權限 ?件名常?選項:R -> 遞歸修改?錄?件的權限說明:只有?件的擁有者和root才可以改變?件的權限chmod命令權限值的格式:??表?符+/-=權限字符+:向權限范圍增加權限代號所表?的權限-:向權限范圍取消權限代號所表?的權限=:向權限范圍賦予權限代號所表?的權限??符號:u:擁有者g:擁有者同組?o:其它??a:所有??
chmod u+r test.txt?
這就代表我們給test.txt文件的所有者加上了可讀權限
chmod g-rw test.txt
這代表我們給test.txt文件的所屬組減去了可讀可寫權限
同樣我們也可以給其他用戶修改權限,這里不多介紹了
當然也可以使用8進制來修改
chmod 664 /home/abc.txtchmod 640 /home/abc.txt
chown功能:修改?件的擁有者格式:chown [參數] ??名 ?件名實例:chown user1 f1這是把文件 f1 的所有者給user1chown -R user1 filegroup1?這是把filegroup1目錄的所有者給user1
?chgrp
功能:修改?件或?錄的所屬組格式:chgrp [參數] ??組名 ?件名常?選項:-R 遞歸修改?件或?錄的所屬組實例: chgrp users /abc/f2
當我們新建文件或目錄的時候,它的默認權限是怎么來的呢??
5.?umask
對于普通文件來講:起始權限 666,默認不帶可執行
對于目錄文件來講:起始權限 777,默認帶 x
那為什么默認權限是我們看到的樣子??
因為系統默認存在一個叫做權限掩碼的概念:
查看或修改?件掩碼新建?件夾默認權限=0666新建?錄默認權限=0777但實際上你所創建的?件和?錄,看到的權限往往不是上?這個值。原因就是創建?件或?錄的時候還要受到umask的影響。假設默認權限是mask,則實際創建的出來的?件權限是: mask & (~umask)
格式:umask 權限值說明:將現有的存取權限減去權限掩碼后,即可產?建??件時預設權限。超級??默認掩碼值為0022,普通??默認為0002。實例:umask // 查看權限掩碼umask 044// 設置權限掩碼
?若是修改權限掩碼后忘了改回去,不用擔心,這個每次登錄時都會回到默認值。
1.umask 的目的什么?
希望凡是在 umask 中出現的權限,都不應該在最終權限中出現?
2.為什么要有 umask?
默認權限,有 OS 自主決定,無法在創建前進行統一… 系統可控層,可以靈活滿足需要的一種表現
特殊情況下,配置 umask,可以控制文件的默認權限,讓我們的代碼都是可控的。
6. ?錄的權限?
說完了文件的權限,那我們再來看一看目錄的權限:
1.rwx 分別對目錄意味著什么?
r對于目錄來說代表這可以打開目錄中的文件,也就是可以讀取文件里的內容
w對于目錄來說代表可以在目錄中修改文件,包括新建,刪除,修改等
x對于目錄來說才是可以訪問該目錄,代表該目錄可執行(可訪問)
2.默認情況下,我們新建一個目錄,rwx 權限都要有!
?錄的可執?權限是表?你可否在?錄下執?命令。如果?錄沒有 -x 權限,則?法對?錄執?任何命令,甚??法 cd 進??, 即使?錄仍然有 -r 讀權限(這個地?很容易犯錯,認為有讀權限就可以進??錄讀取?錄下的?件)?如果?錄具有 -x 權限,但沒有 -r 權限,則??可以執?命令,可以 cd 進??錄。但由于沒有?錄的讀權限所以在?錄下,即使可以執? ls 命令,但仍然沒有權限讀出?錄下的?檔。
7.粘滯位
當?個?錄被設置為"粘滯位"(?chmod +t),則該?錄下的?件只能由
1. 超級管理員刪除2. 該?錄的所有者刪除3. 該?件的所有者刪除
用戶類型 | 是否可刪除文件 |
---|---|
文件創建者 | 可以(無論目錄所有者是誰) |
目錄所有者 | 可以(無論文件所有者是誰) |
其他普通用戶 | 不可以(即使有目錄寫權限) |
超級用戶(root) | 可以(不受粘滯位限制) |
?好的,那么我們今天關于權限的內容到這里就結束了,讓我們下次再見。