跳轉到內容

Linux 指南/許可權

來自華夏公益教科書,開放的書籍,開放的世界

Linux 許可權是 Unix 許可權。


檔案訪問許可權

[編輯 | 編輯原始碼]

在你的主目錄中,輸入

% ls -l

你將會看到你得到了關於你的目錄內容的很多詳細資訊。

每個檔案(和目錄)都有訪問許可權,可以透過輸入 ls -l 來顯示。 另外,ls -lg 會提供關於哪個組擁有檔案(在以下示例中為 istrain)的額外資訊。

-rwxrw-r-- 1 ccaajim istrain 3210 Aug15 14:25 train.doc

在左邊的列中是一個由 10 個符號組成的字串,由符號 d, r, w, x, -, 和偶爾出現的 sS 組成。 現在對你來說重要的是 r 代表讀取,w 代表寫入,x 代表執行。 如果存在 d,它將位於字串的左側,表示目錄;否則字串將以 - 開頭。

剩下的 9 個符號表示許可權,或訪問許可權,被視為三組三個符號。

左邊的 3 個符號表示擁有檔案(或目錄)的使用者(以上示例中的 ccaajim)的檔案許可權。 最右邊的 3 個符號表示所有其他人的許可權(在 Unix 中稱為世界)。 中間的三個符號是賦予使用者帳戶所屬的組的許可權。

符號 r、w 等,根據它們是引用簡單檔案還是目錄,有略微不同的含義。

檔案上的訪問許可權

[編輯 | 編輯原始碼]
  • r(或 -),表示讀取許可權(或否則),也就是說,存在或不存在讀取和複製檔案的許可權。
  • w(或 -),表示寫入許可權(或否則),也就是說,更改檔案的許可權(或否則)。
  • x(或 -),表示執行許可權(或否則),也就是說,在適當情況下執行檔案的許可權。

目錄上的訪問許可權

[編輯 | 編輯原始碼]
  • r 允許使用者列出目錄中的檔案;
  • w 表示使用者可以從目錄中刪除檔案或將檔案移動到目錄中;
  • x 表示訪問目錄中檔案的權利。 這意味著你可以讀取目錄中的檔案,前提是你對單個檔案具有讀取許可權。

因此,為了讀取檔案,你必須對包含該檔案的目錄擁有執行許可權,因此必須對包含該目錄作為子目錄的任何目錄擁有執行許可權,等等,一直到樹的頂端。

一些例子

[編輯 | 編輯原始碼]
許可權字串 效果
-rwxrwxrwx 每個人都可以讀取、寫入和執行(以及刪除)的檔案
-rw------- 只有所有者可以讀取和寫入的檔案 - 其他人不能讀取或寫入,並且沒有人擁有執行許可權(例如你的郵箱檔案)

粘滯位

[編輯 | 編輯原始碼]

粘滯位 由 "t" 標誌表示:它表示檔案或目錄只能由其所有者(或 root)刪除。

setuid 位

[編輯 | 編輯原始碼]

setuid 位由 "s" 標誌表示:它表示應該使用其所有者的使用者 ID 執行該檔案。

更改訪問許可權

[編輯 | 編輯原始碼]

chmod(更改檔案模式)

[編輯 | 編輯原始碼]

只有檔案的擁有者可以使用 chmod 更改檔案的許可權。 chmod 的選項如下

符號 含義
u 使用者
g
o 其他
a 所有(即 u 和 g 和 o)
r 讀取
w 寫入(以及刪除)
x 執行(以及訪問目錄)
+ 新增許可權
- 取消許可權

例如,要刪除檔案 allcolours 對組和其他人讀取、寫入和執行許可權,請輸入

% chmod go-rwx allcolours

這將保留其他許可權不變。

要授予檔案 allcolours 對所有人讀取和寫入許可權,請輸入

% chmod a+rw allcolours

使用整數引數與 chmod

[編輯 | 編輯原始碼]

除了上面概述的語法之外,你還可以使用 chmod 和一個表示使用者和預期許可權的數字引數。 一個常見的例子是

% chmod 755 myscript.sh

此示例等同於 chmod u=wrx,g=rx,o=rx

它是如何工作的? 好吧,我們稱這個數字為三元組,以提醒我們它是一個三位數字符串。 每個數字代表 ugo 中的其中一個的許可權。 我們為每個可能的許可權分配一個數字值,如下所示

數字 含義
1 執行
2 寫入
4 讀取
0 清除許可權

在上面的示例中,數字字串為 755。 只有一個方式可以得到這個結果(可以這樣說)。

位置 組成
u 7 4 + 2 + 1
g 5 4 + 0 + 1
o 5 4 + 0 + 1

這意味著 chmod 755 filename 表示對檔案所有者具有讀取、寫入和執行許可權,對組和其他人具有讀取和執行許可權。

此命令可以獲取或設定建立檔案的預設許可權。

華夏公益教科書