Linux权限的简单剖析
一、權限是什么
權限(privilege)是指某個特定的用戶具有特定的系統資源使用權力。舉個簡單的例子,夏日炎炎,你看到路邊有賣西瓜的,你想要吃西瓜,你就得買它,買它其實就是獲取你對西瓜的使用權限,買了它,你就可以大快朵頤了。
二、Linux的文件權限
Linux的文件權限主要體現在的兩個方面,文件的訪問者即文件的事物屬性。
1、文件訪問者
a)文件和文件目錄的所有者:u—User
b)文件和文件目錄的所有者所在的組的用戶:g—Group
c)其它用戶:o—Others
2、文件的事物屬性(權限)
1)普通權限
a)讀(r/4):Read對文件而言,具有讀取文件內容的權限;對目錄來說,具有瀏覽該目錄信息的權限
b)寫(w/2):Write對文件而言,具有修改文件內容的權限;對
目錄來說具有刪除移動目錄內文件的權限
c)執行行(x/1):execute對文件而言,具有執行文件的權限;
對目錄來說,具有進入目錄的權限
注:這里的r、w、x和4、2、 1分別代表文件權限的字符表示方法和8進制表示方法。
2)特殊權限
a) (s/4)只能應用在可執行文件上,允許任意用戶在執行文
件時以文件擁有者的身份執行
b) sgid (s/2)只能應用在可執行文件上,使任意用戶在執行可
執行文件時,將以擁有組成員的身份執行
c) 粘著位(t/1)只能應用在目錄文件上,將使用戶在目錄中執
行刪除時,只能刪除自己己擁有的對象
下面用一個例子來具體看看文件的權限:
注:用ll命令顯示出來的文件信息,從左至右分別是文件類型及權限、鏈接數(硬鏈接,即指向該文件的引用次數)、文件所有者、文件所屬組、文件大小、文件創建時間、文件名
其中紅色方框里面的內容分別對應了三個文件的權限值(./代表當前目錄,../代表父級目錄,兩個問價都是隱藏文件)。
拿file文件的權限來說,紅色方框來一共10個字符,第一個代表文件的類型,后面每三個一組分別代表文件的所有者、用戶組、其它用戶具有的權限。
首先看第一個字符,是’-‘,代表該文件是普通文件(d代表是目錄文件,關于文件分類這兒不做過多解釋)。
接著的三個字符”rw-“,代表文件的所有者具有的權限,”r’表所有者具有可讀權限,’w’代表所有者具有可寫權限,’-‘代表所有者不具有可執行權限。
再往后的三個字符”rw-“,代表文件的所有者的所屬組具有的權限,”r’表所屬組具有可讀權限,’w’代表所屬組具有可寫權限,’-‘代表所屬組不具有可執行權限。
最后的三個字符”r–”,代表文件的其它用戶具有的權限,”r’表其它用戶具有可讀權限,’-‘代表其它用戶不具有可寫權限,’-‘代表其它用戶不具有可執行權限。
三、文件權限的設置方法
參數:
R -> 遞歸修改目錄文件的權限
V -> 顯示指令執行過程
注:下面提到的參數都是指這些參數。
1、chmod命令設置權限值
命令格式:chmod [參數] 權限 文件名
注:只有文件的擁有者和root才可以改變文件的權限
1)權限字符修改
a)用戶標識符:
u:擁有者
g:擁有者同組用用戶
o:其它用用戶
a:所有用用戶
b)用戶標示符+/-=權限字符
+:向權限范圍增加權限字符所表示的權限
-:向權限范圍取消權限字符所表示的權限
=:向權限范圍賦予權限字符所表示的權限
例:
原本文件file的權限值為“rw-rw-r–”,經過修改之后,權限值變為“rwxr–rw-”,即增加了所有者的’x’->可執行權限,減少了用戶組的’w’->可寫權限,增加了其它用戶的’w’->可寫權限,而且可以明顯的看到文件變成了可執行文件。
2)權限的8進制值修改方式
文件的可讀、可寫、可執行權限對應的權限值分別是4、2、 1,0表示不具有權限,那么文件的權限值與文件的權限就有以下對應關系:
0 -> 不具有任何權限 - - -
1-> 具有可執行權限 - -x
2-> 具有可寫權限 -w-
3-> 具有可寫、可執行權限 -wx
4-> 具有可讀權限 r- -
5-> 具有可讀、可執行權限 r-x
6-> 具有可讀、可寫權限 rw-
7-> 具有全部權限 rwx
例:
修改前,文件file的權限值為“rwxr–rw-”,經過修改之后,權限值變為“rw-rw-r–”,即減少了所有者的’x’->可執行權限,增加了用戶組的’w’->可寫權限,減少了其它用戶的’w’->可寫權限,而且可以明顯的看到文件從可執行文件變成了不可執行文件。
3)、示例賦權方式
格式:chmod –reference reference target 參 照reference的權限值 , 來設置target的權限
例:
可以看到我先把file和file1的權限分別設置成了“rw-rw-r–”和”- - - - - - - - -“,然后執行了命令chmod - -reference file1 file,file的權限就變得和file1一樣了,相當于file復制了file1的權限。
注:因為連續的‘-’會變成一條長橫線,所以這兒在’-‘與’-‘之間加了空格。
2)chown
功能:修改文件的擁有者
格式:chown [參數] 用戶名 文件名
例:
執行命令后,文件的擁有者變成了root。
注:因為要修改文件的擁有者為root,所以要先進入root(超級用戶)模式。
3)chgrp
功能:修改文件或目錄的所屬組
格式:chgrp [參數] 用戶組名 文件名
參數:-R 遞歸修改文件或目錄的所屬組
例:
執行命令后,文件的所屬組變成了root。
4)umask
功能:查看或修改文件掩碼
新建文件默認權限:0666
新建目錄默認權限:0777
格式:umask 權限值 修改文件掩碼值
說明:
將默認權限減去權限掩碼后,即可產生建立文件時預設權限。
注:默認權限中有的權限在權限掩碼中有對應的權限時,才相減。
超級用戶默認掩碼值為0022,普通用戶默認為0002。
例:
此時,是在root用戶模式下,所以umask查看權限掩碼為0022(所屬組和其它用戶的可寫權限),創建一個新的文件file,因為默認權限為0666(擁有者、所屬組和其它用戶的可讀、可寫權限),包含0022,所以這兒要0666要減去0022,最終的權限值為0644,接下來修改權限掩碼為0444(擁有者、所屬組和其它用戶的可讀權限),可以看到修改成功,此時創建一個新的文件file1,因為默認權限為0666,包含0444,所以這兒要0666要減去0444,最終的權限值為0222。
上面為什么要說包含呢?因為文件的最終權限不是簡單直接拿默認權限減去權限掩碼,而是當默認權限和掩碼權限中有相同的權限才做減法。
如:
修改權限掩碼為0111(擁有者、所屬組和其它用戶的可執行權限),默認權限為0666(擁有者、所屬組和其它用戶的可讀、可寫權限),按照之前的想法,最終的權限值應該為0555,但可以看到此時的權限值為0666,也就是二者并沒有做減法。這是因為默認的權限為0666,里面不包含0111。
用戶的權限就總結到這兒。下面來看一下目錄的權限對目錄的一些操作的影響。
四、目錄的權限對操作的影響
為了驗證結果,先把創建的目錄dir的權限值修改為000,可以看到此時是不能進入目錄的,那么接著修改dir權限值為100,可以看到能進入目錄了,說明進入目錄需要的是擁有者的可執行權限,此時在目錄里創建文件,權限不夠,再修改dir權限值為300(為什么不是200呢?因為目錄的可執行權限是進入目錄所必須的,而想要在目錄里創建文件就得先進入目錄,所以這兒修改的范圍是100,300,500,700),可以看到能在目錄里創建文件愛你并刪除文件,但使用ls命令是沒有權限的,繼續修改dir的權限為500,進入目錄,可以看到ls命令簇中的命令都可以使用了。
總結一下:
1、進入目錄需要目錄的執行權限
2、在目錄下創建文件,需要目錄的執行權限與寫權限(首先得能進入目錄)
3、在目錄下刪除文件,需要目錄的執行權限與寫權限
4、想在目錄下使用ls命令簇需要目錄的執行權限與讀權限
注:這兒要記住進入目錄需要的是目錄的可執行權限,而不是可讀權限。
總結
以上是生活随笔為你收集整理的Linux权限的简单剖析的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: kafka服务器死机消息,当kafka集
- 下一篇: linux 两块硬盘 分区,linux