在 Linux
的學習過程當中,文件權限是一個很重要的概念,畢竟 Linux
中的各類操做都離不開權限的支持。php
這篇博客算是對 Linux
文件權限學習的一個簡單總結。linux
Linux
的文件權限是和 用戶與用戶組 密切相關的一個概念,對於一個文件來講,用戶能夠分爲三類:vim
user
group
others
文件權限是相對於這三類用戶而言的,不一樣身份的用戶能夠具備不一樣的權限。ide
使用命令 ls -l
能夠獲得文件的詳細信息,好比:學習
drwxr-xr-x 5 root root 4096 Sep 7 19:52 dotemacs
drwxr-xr-x 6 root root 4096 Sep 3 22:34 dotfiles
drwxr-xr-x 9 root root 4096 Sep 11 10:19 emacs-kit
複製代碼
咱們能夠把每一條信息分爲 8
個部分,好比上面第一條信息能夠分爲:spa
文件類型 | 權限信息 | 連結數 | 擁有者 | 用戶組 | 文件容量 | 修改日期 | 文件名 |
---|---|---|---|---|---|---|---|
d |
rwxr-xr-x |
5 |
root |
root |
4096 |
Sep 7 19:52 |
dotemacs |
這裏主要了解 文件類型 和 權限信息, 對其餘部分有興趣的能夠自行 Google
.code
Linux
中文件能夠分爲 5
個類型, ls -l
輸出的每條信息中的 第一個字符 就用於表示文件類型。遞歸
各個文件類型及其字符表示爲:接口
表示字符 | 文件類型 |
---|---|
d |
目錄 |
- |
文件 |
l |
符號連接等 |
b |
可供儲存的接口設備 |
c |
串行端口設備,如鍵盤、鼠標等 |
經過 用戶與用戶組 概念能夠了解到權限是相對於三類用戶而言的,所以 ls -l
顯示的權限信息也分爲三組。ci
每一個文件的 權限信息 由 9
個字符組成,分爲三組,分別對應 擁有者, 用戶組, 其餘人 擁有的權限。
對於權限信息 rwxr-xr-x
來講, 擁有者 的權限爲 rwx
, 用戶組 和 其餘人 的權限爲 r-x
.
每組權限分爲: 讀權限, 寫權限 和 執行權限, 分別由字符 r
, w
, x
表示。若是不具備相應的權限,就使用字符 -
表示。
所以,權限信息 rwxr-xr-x
能夠理解爲: 擁有者 具備 讀, 寫 和 執行 權限,而 用戶組 和 其餘人 就只有 讀 和 執行 的權限。
命令 chown
和 chgrp
能夠用於修改文件擁有者和所屬用戶組,使用方式也很簡單:
# 修改文件擁有者
$ chown [-R] 帳號名稱 文件或目錄
$ chown [-R] 帳號名稱:組名 文件或目錄
# 修改文件所屬用戶組
$ chgrp [-R] 用戶組名稱 文件或目錄
複製代碼
參數 -R
進行遞歸的持續變動,即連同次目錄下的全部文件都變動。
命令 chmod
用於修改文件的權限,並提供了兩種修改文件權限的方式。
咱們能夠用數字來表明各個權限,各個權限對應的數字爲:
r:4
w:2
x:1
複製代碼
每種身份各自的三個權限分數是須要累加的,例如當權限爲 rwxrwx---
時,對應的分數爲:
user = rwx = 4+2+1 = 7
group = rwx = 4+2+1 = 7
others = --- = 0+0+0 = 0
複製代碼
獲得的文件權限數字也就爲 770
, 修改權限時就可使用這個數字完成:
$ chmod [-R] 770 文件或目錄
複製代碼
很明顯,這樣修改文件權限是很麻煩的,所以 chmod
提供了另外一種更好用的方式來修改文件權限。
符號類型改變文件權限須要遵循必定的語法規則,分別須要瞭解的有 身份表示符, 操做表示符 和 權限表示符.
身份表示符:
表示符 | 表明的身份 |
---|---|
u |
文件的擁有者 |
g |
文件的擁有者所在用戶組 |
o |
其餘人 |
a |
全部用戶 |
操做表示符:
表示符 | 表明的操做 |
---|---|
+ |
添加權限 |
- |
去除權限 |
= |
設定權限 |
權限表示符 就是 r
, w
和 x
.
從表示符的組成大概也能夠猜到怎樣修改文件權限了,好比說下面的這條指令讓擁有者具備全部權限,而爲用戶組和其餘人添加執行權限:
chmod u=rwx,go+x .vimrc
複製代碼
須要注意的是: u=rwx,go+x
之間沒有空格。
同一個權限對於 文件 和 目錄 來講,含義是不同的,這裏來了解一下。
權限 | 文件 | 目錄 |
---|---|---|
r |
能夠讀取文件內容 | 能夠讀取目錄結構列表 |
w |
能夠編輯修改文件內容 | 能夠改動目錄結構列表 |
x |
能夠被系統執行 | 用戶能夠進入目錄 (cd ) |
這裏須要注意的一個權限是: 能夠改動目錄結構列表, 這意味着能夠:
因此 w
這個權限仍是慎重使用好了。