Linux命令 chmod - 用來變更文件或目錄的權(quán)限

2021-10-28 11:42 更新

chmod

用來變更文件或目錄的權(quán)限

概要

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

主要用途

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

參數(shù)

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

file:指定要更改權(quán)限的一到多個(gè)文件。

選項(xiàng)

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

返回值

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

例子

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

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

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

注意

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


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

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號