UNIX - chmod 指令

【功能】

設定檔案或目錄的存取權限

【語法】

chmod [-R] mode file...
chmod [ugoa] {+|-|=} [rwxlstugo] file...

【說明】

chmod 指令可重新設定或修改檔案、目錄的存取權限, 改變時 mode 可使用數值或符號指定。

在改變檔案的存取權限時,必須是該檔案的擁有者,否則將不會被允許。

另外 sticky 位元是只有超級使用者才可設定。

其使用數值時格式如下:

chmod nnnn file...

nnnn 是 4 個 8 進位的數字,每個 n 的值是從 0 到 7,由下面所需要的模式(mode)相加而得到的值(如 0740 表示設定0400、0200、0100 以及 0040 的權力)。

mode 說 明
4000 該檔案在執行時會去設定使用者識別碼。
20#0

# 是 1、3、5、7 時是指該檔案在執行時會去設定群識別碼。

# 是 0、2、4、6 時是使檔案鎖住,避免多個程式同時存取。倘若file 是目錄時則無效。

1000 設定 sticky 位元。
0400 允許擁有者的讀取權。
0200 允許擁有者的寫入權。
0100 允許擁有者的執行權(對目錄而言為允許搜尋檔案名稱)。
0040 允許群的讀取權。
0020 允許群的寫入權。
0010 允許群的執行權(對目錄而言為允許搜尋檔案名稱)。
0004 允許其他使用者的讀取權。
0002 允許其他使用者的寫入權。
0001 允許其他使用者的執行權(對目錄而言為允許搜尋檔案名稱)。

使用符號時,格式如下:

chmod [who] operator [permissions ] file...

operator 使用時可用逗號分隔多個符號,chmod 指令會依順序處理。

字 元 說 明
who 可從 'u'、'g'、'o' 及 'a' 字元中選出多個同時使用(若省略時則系統預設為 a)。
u 擁有者的允許權。
g 群的允許權。
o 其他使用者的允許權。
a 上列三者的總稱。
operator 可使用 '+'、'-' 及 '=' 其中一個字元來指定允許權的設定
+ 增加允許權。
- 刪除允許權。
= 重新設定允許權,對沒有指定到的 permission 即代表刪除。
permission可從下列字元中任意結合使用。
r 讀取的允許權。
w 寫入的允許權。
x 執行的允許權。
s 在檔案執行時會去設定擁有者或群的識別碼(必須與 'u' 或 'g' 字元配合使用)。
t 設定 sticky 位元(必須與 'u' 字元配合使用)
l 將檔案鎖住。
u、g、o 是指定 permission 對使用者 (u)、群 (g) 或其他人 (o) 產生影響。

★註:檔案鎖住的 l 字元是在 SVR3 版本時才開始提供。

【選項】

選 項 說 明
-R(recursive) 以遞迴方式設定指定目錄下所有檔案及子目錄的允許權。

★註:所有的選項是在 SVR4 版本時才開始提供。

【範例】

1. 設定檔案的存取權限:

chmod a+rwx letter
chmod 0777 letter

在第一個 chmod 指令中的 'a' 字元,代表 all,指每個使用者都有權力去讀(r)、寫(w)及執行(x)這個檔案。而第二個 chmod 指令的功能與第一個相同,'7' 是由 4(讀)、2(寫)及 1(執行)等 3 個數字相加而得,代表允許每一種權力,而且出現在擁有者、群及其他使用者的位置上,故將此檔案開放給系統上每一個使用者使用。

2. 限制檔案的存取權力:

chmod ugo-w note
chmod a-w note
chmod -w note

上面 3 個指令都是將 note 檔案的寫入權刪除,範圍為每個使用者(包含使用者本身亦無權力去修改檔案的內容)。

3. 開啟執行檔案時的設定群識別碼:

chmod =rx,g+s access

允許每個人去讀(r)和執行(x)並開啟設定群識別碼。

4. 禁止其他使用者使用(讀、寫及執行):

chmod o-rwx

'o' 字元是代表其他使用者(不包含群及使用者自己)。

5. 檔案的鎖住:

chmod a+l bank

在存取時會自動鎖住檔案,且同一個時間內只能允許 1 個程式存取此檔的內容。

網路電視    旅遊景點    算命    象棋殘局    回首頁