.\" Copyright Andries Brouwer, Ragnar Hojland Espinosa and A. Wik, 1998. .\" Chinese version Copyright 王炎,BitBIRD,Scorpio,www.linuxforum.net 2000. .\" Modifier: Scorpio,BitBIRD. .\" .\" This file may be copied under the conditions described .\" in the LDP GENERAL PUBLIC LICENSE, Version 1, September 1998 .\" that should have been distributed together with this file. .\" .TH CHMOD 1 "November 1998" "GNU fileutils 4.0" .SH NAME chmod \- 改變檔案的訪問權限 .SH 總攬 .BI "chmod [" options "] " "mode file..." .sp .SH POSIX 選項: .B [-R] .sp GNU 選項 (最短方式): .B [-cfvR] .BI [--reference=rfile] .B "[--help] [--version] [--]" .SH 描述 使用chmod命令改變指定檔案訪問權限有兩種方式:一種是用符號 標記所進行更改,另一種方式是採用8進制數指定新的訪問權限。 使用下面的語法格式來使用符號改變方式 .br \&`[ugoa...][[+-=][rwxXstugo...]...][,...]'. .PP 在這種格式下,所帶參數是一個用逗號分隔的字符列表.每個符號方式的 改變命令以零或者字'ugoa'開始;'ugoa'控制哪些使用者對該檔案訪問權 限將被改變:檔案的所有者(u),與檔案所有者同組的使用者(g),其他組的 使用者(o),所有使用者(a).因此,a在這裏等同於ugo.如果沒有帶參數,則缺 省設置為a,運行效果相同,但是在umask中設置的位將不會受影響. .PP 操作符'+'使得使用者選擇的權限被追加到每個指定檔案,(操作給 指定檔案添加所選權限);操作符'-'使得這些權限被撤消;'='使得 指定檔案只具有這些權限。 .PP 字符串'rwxXstugo' 給使用者選擇新的屬性:(r)讀權限、(w)寫權限、 (x)執行權(或對目錄的訪問權),(X)只有目標檔案對某些使用者是 可執行的或該目標檔案是目錄時才追加x屬性,(s)同時設定使用者 或組ID,(t)粘滯位(保存程式的文本到交換設備上),(u)目標檔案 屬主,(g)目標檔案屬主所在的組,(o)其他使用者。(因此,'chmod g-s file' 撤消sgid位,'chmod ug+s file'同時設置了suid和sgid位,'chmod o+s file' 則沒有進行任何設置) .PP POSIX並沒有粘滯位的描述。它最初是指在交換設備上保留程式文本。 現在,如果設置了目錄的粘滯位, 那麼只有檔案和目錄的所有者可以刪除該目錄下的檔案。 (一般使用於類似於/tmp這樣有基本寫權限的目錄) .PP 數字模式是一到4個八進制數,每個數由位權為4,2,1的3位疊加而得. 被省略掉的數字預設設置為零. 第一位為4時為suid,2時為sgid,1時 為粘滯位,.第二位設置檔案所有者的權限:可讀(4),可寫(2),可執行(1); 第三位設置了檔案所在組其他使用者的權限,值如上;第四位設置了其 他組的使用者的權限,值同上. .PP . 由於chmod的系統調用不支持,chomd命令不能改變符號鏈接的權限. 由於符號鏈接的權限從不使用,所以這也不成問題.無論如何,由於 每個符號連接都可在命令行中列出,chmod改變了所指檔案的屬性. 相反,chmod在遞歸目錄遍歷時忽略所碰到的符號連接. .SH POSIX 選項 .B "\-R" 改變目錄及目錄下的內容的訪問權限. .SH "GNU 選項" .TP .B "\-c, \-\-changes" 只有在檔案的權限確實改變時才進行詳細的說明 .TP .B "\-f, \-\-silent, \-\-quiet" 不輸出權限不能改變的檔案的錯誤訊息 .TP .B "\-v, \-\-verbose" 詳細說明權限的變化 .TP .B "\-R, \-\-recursive" 改變目錄及其所有子目錄的檔案的權限 .TP .BI "\-\-reference=" "rfile" (更新在fileutils 4.0上) 改變檔案的模式到rfile. .SH "GNU 標準選項" .TP .B "\-\-help" 在標準輸出上輸出幫助信息並退出 .TP .B "\-\-version" 在標準輸出上輸出版本信息並退出 .TP .B "\-\-" 終端選項列表 .SH 環境變量 變量LANG, LC_ALL, LC_CTYPE ,LC_MESSAGES與一般情況相同. .SH 遵循 POSIX 1003.2 只需要-R參數。使用其他選項可能無法移植。該標準沒有描述 `t'權限位。該標準沒有特別要求chmod命令是否必須通過拒絕或清除suid,sgid位 來保持一致性,也就是說,當所有的可執行位都被清除了以後, chomd 是否還完全保留`s'位. .SH 非標準模式 在上面的內容中我們討論了't'位在目錄上的用法。不同的系統對這些 位的組合有特殊的定義。特別是Linux,繼System V之後(參考System V 接口描述(SVID)第三卷),給一個檔案設置 sgid 位但又不給它設置組執行權限, 那麼就標誌該檔案被強制鎖住.詳細內容,參照檔案 /usr/src/linux/Docu-mentation/mandatory.txt .SH 注意 此頁描述的chmod基於fileutils-4.0 package;其他版本可能會有細微 的差別.請將修正和增加發送到aeb@cwi.nl. 程式中的錯誤報告到fileutils-bugs@gnu.ai.mit.edu. .SH "[中文版維護人]" .B 王炎 .SH "[中文版最新更新]" .BR 2000/10/19 .SH "《中國linux論壇man手冊頁翻譯計劃》:" .BI http://cmpp.linuxforum.net