Linux 文件權(quán)限

Linux 文件權(quán)限

簡介

linux 的學習過程中,文件權(quán)限是一個很重要的概念,畢竟 Linux 中的各種操作都離不開權(quán)限的支持。

這篇博客算是對 Linux 文件權(quán)限學習的一個簡單總結(jié)。

用戶與用戶組

Linux 的文件權(quán)限是和 用戶與用戶組 密切相關(guān)的一個概念,對于一個文件來說,用戶可以分為三類:

  • 文件的 擁有者 – user

  • 文件的擁有者所在 用戶組 的其他成員 – group

  • 擁有者用戶組 成員以外的其他用戶 – others

文件權(quán)限是相對于這三類用戶而言的,不同身份的用戶可以具有不同的權(quán)限。

文件屬性

使用命令 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 個部分,比如上面第一條信息可以分為:

文件類型 權(quán)限信息 連結(jié)數(shù) 擁有者 用戶組 文件容量 修改日期 文件名
d rwxr-xr-x 5 root root 4096 Sep ?7 19:52 dotemacs

這里主要了解 文件類型權(quán)限信息, 對其他部分有興趣的可以自行 Google.

文件類型

Linux 中文件可以分為 5 個類型, ls -l 輸出的每條信息中的 第一個字符 就用于表示文件類型。

各個文件類型及其字符表示為:

表示字符 文件類型
d 目錄
文件
l 符號鏈接等
b 可供儲存的接口設備
c 串行端口設備,如鍵盤、鼠標等

權(quán)限信息

通過 用戶與用戶組 概念可以了解到權(quán)限是相對于三類用戶而言的,因此 ls -l 顯示的權(quán)限信息也分為三組。

每個文件的 權(quán)限信息 由 9 個字符組成,分為三組,分別對應 擁有者, 用戶組, 其他人 擁有的權(quán)限。

對于權(quán)限信息 rwxr-xr-x 來說, 擁有者 的權(quán)限為 rwx, 用戶組其他人 的權(quán)限為 r-x.

每組權(quán)限分為: 讀權(quán)限, 寫權(quán)限執(zhí)行權(quán)限, 分別由字符 r, w, x 表示。如果不具有相應的權(quán)限,就使用字符 – 表示。

因此,權(quán)限信息 rwxr-xr-x 可以理解為: 擁有者 具有 , 執(zhí)行 權(quán)限,而 用戶組其他人 就只有 執(zhí)行 的權(quán)限。

修改文件擁有者和所屬用戶組

命令 chown 和 chgrp 可以用于修改文件擁有者和所屬用戶組,使用方式也很簡單:

# 修改文件擁有者 $ chown [-R] 賬號名稱 文件或目錄 $ chown [-R] 賬號名稱:組名 文件或目錄  # 修改文件所屬用戶組 $ chgrp [-R] 用戶組名稱 文件或目錄

參數(shù) -R 進行遞歸的持續(xù)變更,即連同次目錄下的所有文件都變更。

修改文件權(quán)限

命令 chmod 用于修改文件的權(quán)限,并提供了兩種修改文件權(quán)限的方式。

數(shù)字類型改變文件權(quán)限

我們可以用數(shù)字來代表各個權(quán)限,各個權(quán)限對應的數(shù)字為:

r:4 w:2 x:1

每種身份各自的三個權(quán)限分數(shù)是需要累加的,例如當權(quán)限為 rwxrwx— 時,對應的分數(shù)為:

user   = rwx = 4+2+1 = 7 group  = rwx = 4+2+1 = 7 others = --- = 0+0+0 = 0

得到的文件權(quán)限數(shù)字也就為 770, 修改權(quán)限時就可以使用這個數(shù)字完成:

$ chmod [-R] 770 文件或目錄

很明顯,這樣修改文件權(quán)限是很麻煩的,因此 chmod 提供了另一種更好用的方式來修改文件權(quán)限。

符號類型改變文件權(quán)限

符號類型改變文件權(quán)限需要遵循一定的語法規(guī)則,分別需要了解的有 身份表示符, 操作表示符權(quán)限表示符.

身份表示符:

表示符 代表的身份
u 文件的擁有者
g 文件的擁有者所在用戶組
o 其他人
a 所有用戶

操作表示符:

表示符 代表的操作
+ 添加權(quán)限
去除權(quán)限
= 設定權(quán)限

權(quán)限表示符 就是 r, w 和 x.

從表示符的組成大概也可以猜到怎樣修改文件權(quán)限了,比如說下面的這條指令讓擁有者具有所有權(quán)限,而為用戶組和其他人添加執(zhí)行權(quán)限:

chmod u=rwx,go+x .vimrc

需要注意的是: u=rwx,go+x 之間沒有空格。

權(quán)限的作用

同一個權(quán)限對于 文件目錄 來說,含義是不一樣的,這里來了解一下。

權(quán)限 文件 目錄
r 可以讀取文件內(nèi)容 可以讀取目錄結(jié)構(gòu)列表
w 可以編輯修改文件內(nèi)容 可以改動目錄結(jié)構(gòu)列表
x 可以被系統(tǒng)執(zhí)行 用戶可以進入目錄 (cd)

這里需要注意的一個權(quán)限是: 可以改動目錄結(jié)構(gòu)列表, 這意味著可以:

  • 建立新的文件與目錄

  • 刪除已經(jīng)存在的文件與目錄

  • 將已存在的文件或目錄進行更名

  • 搬移該目錄內(nèi)的文件、目錄位置

所以 w 這個權(quán)限還是慎重使用好了。

更多Linux文章,請訪問Linux教程欄目進行學習!

? 版權(quán)聲明
THE END
喜歡就支持一下吧
點贊5 分享