Linux命令 chmod - 用來變更文件或目錄的權限

2021-10-28 11:42 更新

chmod

用來變更文件或目錄的權限

概要

chmod [OPTION]... MODE[,MODE]... FILE...
chmod [OPTION]... OCTAL-MODE FILE...
chmod [OPTION]... --reference=RFILE FILE...

主要用途

  • 通過符號組合的方式更改目標文件或目錄的權限。
  • 通過八進制數(shù)的方式更改目標文件或目錄的權限。
  • 通過參考文件的權限來更改目標文件或目錄的權限。

參數(shù)

mode:八進制數(shù)或符號組合。

file:指定要更改權限的一到多個文件。

選項

-c, --changes:當文件的權限更改時輸出操作信息。
--no-preserve-root:不將'/'特殊化處理,默認選項。
--preserve-root:不能在根目錄下遞歸操作。
-f, --silent, --quiet:抑制多數(shù)錯誤消息的輸出。
-v, --verbose:無論文件是否更改了權限,一律輸出操作信息。
--reference=RFILE:使用參考文件或參考目錄RFILE的權限來設置目標文件或目錄的權限。
-R, --recursive:對目錄以及目錄下的文件遞歸執(zhí)行更改權限操作。
--help:顯示幫助信息并退出。
--version:顯示版本信息并退出。

返回值

返回狀態(tài)為成功除非給出了非法選項或非法參數(shù)。

例子

參考man chmod文檔的DESCRIPTION段落得知:u符號代表當前用戶。g符號代表和當前用戶在同一個組的用戶,以下簡稱組用戶。o符號代表其他用戶。a符號代表所有用戶。r符號代表讀權限以及八進制數(shù)4。w符號代表寫權限以及八進制數(shù)2。x符號代表執(zhí)行權限以及八進制數(shù)1。X符號代表如果目標文件是可執(zhí)行文件或目錄,可給其設置可執(zhí)行權限。s符號代表設置權限suid和sgid,使用權限組合u+s設定文件的用戶的ID位,g+s設置組用戶ID位。t符號代表只有目錄或文件的所有者才可以刪除目錄下的文件。+符號代表添加目標用戶相應的權限。-符號代表刪除目標用戶相應的權限。=符號代表添加目標用戶相應的權限,刪除未提到的權限。
linux文件的用戶權限說明:

# 查看當前目錄(包含隱藏文件)的長格式。
ls -la
  -rw-r--r--   1 user  staff   651 Oct 12 12:53 .gitmodules

# 第1位如果是d則代表目錄,是-則代表普通文件。
# 更多詳情請參閱info coreutils 'ls invocation'(ls命令的info文檔)的'-l'選項部分。
# 第2到4位代表當前用戶的權限。
# 第5到7位代表組用戶的權限。
# 第8到10位代表其他用戶的權限。
# 添加組用戶的寫權限。
chmod g+w ./test.log
# 刪除其他用戶的所有權限。
chmod o= ./test.log
# 使得所有用戶都沒有寫權限。
chmod a-w ./test.log
# 當前用戶具有所有權限,組用戶有讀寫權限,其他用戶只有讀權限。
chmod u=rwx, g=rw, o=r ./test.log
# 等價的八進制數(shù)表示:
chmod 754 ./test.log
# 將目錄以及目錄下的文件都設置為所有用戶擁有讀寫權限。
# 注意,使用'-R'選項一定要保留當前用戶的執(zhí)行和讀取權限,否則會報錯!
chmod -R a=rw ./testdir/
# 根據(jù)其他文件的權限設置文件權限。
chmod --reference=./1.log  ./test.log

注意

  1. 該命令是GNU coreutils包中的命令,相關的幫助信息請查看man chmod或info coreutils 'chmod invocation'。
  2. 符號連接的權限無法變更,如果用戶對符號連接修改權限,其改變會作用在被連接的原始文件。
  3. 使用-R選項一定要保留當前用戶的執(zhí)行和讀取權限,否則會報錯!


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號