Linux 檔案權限詳解

前言

chmod 770 test.txt

上面的命令的意思是將文檔 test.txt 的權限改爲 rwxrwx---,而 770代表是什麼含義呢。本篇文章就來詳細介紹 Linux 下檔案的權限。

用戶角色

在介紹檔案權限之前先來介紹 Linux 中有哪幾種用戶角色。

  • owner — 檔案擁有者;
  • group — 羣組;
  • other — 其他人,除了檔案擁有者和同一羣組的其他人。

文檔屬性

登陸之後使用 ls -al,得到結果如下圖 7 組屬性。

這裏寫圖片描述

第一列:代表文檔的類型和權限(本篇文章主要內容);
第二列:代表有多少檔案連結到此節點(不做具體闡述);
第三列:代表文檔擁有者;
第四列:代表文檔所屬羣組;
第五列:代表文檔大小;
第六列:代表文檔日期或者最近修改日期
第七列:代表文檔名稱

第一列中的十個屬性,可以分爲四組,如下圖:

這裏寫圖片描述

第一組,代表這個檔案的類型:

  • d: 代表目錄;
  • -: 代表文檔;
  • l: 代表連結;
  • b: 裝置文件裏面的可供儲存的接口謳備(可隨機存取裝置);
  • c: 裝置文件裏面的串行端口謳備,例如鍵盤、鼠標(一次悵讀取裝置)。

第二,三,四組,分別表示檔案擁有者,通羣組和其他人對此文檔的權限:

  • r — 讀權限
  • w — 寫權限
  • x — 可執行權限

所以,上圖中 .Trash 的文件類型是路徑;它的擁有者對它有讀寫和執行的權限;它的所屬羣組裏的用戶對它沒有讀寫和執行的權限;其他人對它沒有讀寫和執行的權限。

權限對目錄和文檔的意義

權限對目錄的意義

  • r — 表示對此目錄具有讀取目錄結構列表的權限,可以查詢該目錄下的文件名,可以使用ls命令列出該目錄的內容列表。

  • w — 具有異勱該目彔結構列表的權限,也就是底下這些權限:

    1. 建立新的檔案和目錄
    2. 刪除已存在的檔案和目錄
    3. 重命名已存在的檔案和目錄
    4. 移動目錄內的檔案和目錄
  • x — 表示能否進入該目錄,如果沒有此權限將不能進入此目錄。

權限對文檔的意義

  • r — 可以讀取該文檔的內容;
  • w — 可以修改該文檔的內容,但不能刪除該文檔;
  • x — 該檔案具有可以被系統執行的權限。

改變檔案屬性和權限

改變所屬羣組(chgrp)

使用命令chgrp可以改變檔案擁有者。命令具體用法如下:

chrgp groupname dirname/filename

groupname:將要改爲的羣組名稱;
dirname/filename: 檔案路徑和名稱。

改變檔案擁有者(chown)

使用命令chown可以改變檔案擁有者。命令具體用法如下:

chown username dirname/filename

username: 將要改爲的擁有者的用戶名;
dirname/filename: 檔案路徑和名稱。

修改檔案權限

使用命令chmod修改檔案權限。修改檔案的權限有多種方式。命令格式如下:

chmod mod dirname/filename

mod:想要變更爲的權限;
dirname/filename: 檔案路徑和名稱。

數字類型方式

檔案的基本權限有九個,分別是 owner/group/other 的 read/write/execute 權限。可以用數字代表各個權限。各個權限對應的數字如下:

  • r (read) — 4;
  • w (write) — 2;
  • x (execute) — 1。

每種角色(owner/group/other)都有自己的三個權限數,把這三個權限數累加就代表此角色的權限。例如;-rwxr-xr–,把它轉成數字表示爲:

owner = 4 + 2 + 1 = 7;
group = 4 + 0 + 1= 5;
other = 4 + 0 + 0 = 4;

所以,如果我們想讓上圖中 .Trash 的同羣組的用戶對其有讀的權限,即drwxr-----,我們就可以使用如下命令:

chmod 740 .Trash
符號類型方式

我們使用u/g/o分別代表,文檔擁有者/羣組/其他人,a 代表所有角色。使用r/w/x分別代表,讀/寫/執行。使用+/-/=分別代表,加入/減去/設定。同樣的如果我們想讓上圖中 .Trash 的同羣組的用戶對其有讀的權限,即drwxr-----,我們就可以使用如下命令:

chmod u=rwx,g=r .Trash

但是,如果我們不知文檔原有的權限是什麼,只想給同羣組的添加讀權限,其他不變,我們就不方便使用=了。可以使用+,如下:

chmod g+r .Trash

如果只想去掉擁有者的寫權限,可以使用-,如下:

chmod u-w .Trash

注意:chgrp,chown,chmod都需要 root 身份才能執行

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章