[Linux] #2 chmod - antqtech/KM GitHub Wiki
chmod
指令介紹
Linux chmod
(change mode)是 Linux 中用來修改檔案或目錄的權限(permissions)的指令。每個檔案或目錄在 Linux 系統中都擁有一組權限,這些權限決定了使用者、群組和其他使用者對該檔案或目錄能執行的操作,例如讀取、寫入或執行。
1. 權限的基本概念
Linux 中的檔案權限主要分為三個層級:
- 所有者(Owner):檔案的擁有者。
- 群組(Group):擁有該檔案的群組。
- 其他使用者(Others):所有其他未屬於檔案擁有者或群組的使用者。
每個層級的權限有三種基本操作:
- r(Read):讀取檔案內容。
- w(Write):修改檔案內容。
- x(Execute):執行檔案(對於檔案為程式檔案或可執行檔案有效)。
chmod
基本語法
2. chmod [選項] 模式 檔案或目錄
- 選項(Options):可選,用來改變指令的行為(如
-R
進行遞迴操作)。 - 模式(Mode):用來指定權限,可以使用數字或字母的方式來設定。
- 檔案或目錄(File/Directory):指定需要修改權限的檔案或目錄。
3. 設定權限的方式
chmod
可以使用兩種主要方式來設定檔案權限:數字模式和符號模式。
3.1 數字模式(Octal mode)
在數字模式中,每個權限對應一個數字,並使用這些數字來表示檔案的權限。數字模式由三個數字組成,分別代表檔案的所有者、群組和其他使用者的權限。
權限 | 數字 |
---|---|
r |
4 |
w |
2 |
x |
1 |
無權限 | 0 |
數字是根據權限的組合來設定的。例如:
7
代表rwx
(讀、寫、執行)。6
代表rw-
(讀、寫)。5
代表r-x
(讀、執行)。4
代表r--
(讀)。
例如,chmod 755 file.txt
表示設定 file.txt
檔案的權限為:
- 所有者:
rwx
(讀、寫、執行) - 群組:
rx
(讀、執行) - 其他使用者:
rx
(讀、執行)
3.2 符號模式(Symbolic mode)
符號模式使用字母來表示權限設定。符號模式通常比數字模式更具可讀性,主要使用以下符號:
u
:代表所有者(User)。g
:代表群組(Group)。o
:代表其他使用者(Others)。a
:代表所有使用者(All),即u
、g
和o
。
操作符:
+
:增加權限。-
:移除權限。=
:設置精確的權限。
例如:
chmod u+x file.txt
:為檔案所有者增加執行權限。chmod go-w file.txt
:為群組和其他使用者移除寫入權限。chmod a=r file.txt
:為所有使用者設置為只讀權限。
3.3 結合數字與符號模式
chmod
也可以同時使用數字和符號來設定權限。例如:
chmod 755 file.txt
chmod u+x file.txt
兩者的效果相同,都是為檔案所有者增加執行權限。
chmod
常用選項
4. -R
:遞迴地修改目錄及其所有子目錄的權限。例如,chmod -R 755 /path/to/directory
將會修改指定目錄及其所有子目錄的權限。-v
:顯示修改過程,顯示每一檔案權限變更的詳細資訊。--reference=file
:將另一個檔案的權限設定應用於指定檔案。例如,chmod --reference=file1 file2
會將file1
的權限複製到file2
。
5. 範例
-
為檔案
myfile.txt
設定權限,只有檔案所有者可以讀、寫、執行,群組和其他使用者只有讀取權限:chmod 744 myfile.txt
-
為目錄
/home/user/
設定權限,使所有使用者都能讀取和進入該目錄,但只有檔案所有者能夠寫入:chmod -R 755 /home/user/
-
移除群組和其他使用者的寫入權限,並允許所有者執行:
chmod go-w file.txt chmod u+x file.txt