.\" 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 .SH "跋" .br 本頁面中文版由中文 man 手冊頁計劃提供。 .br 中文 man 手冊頁計劃:\fBhttps://github.com/man-pages-zh/manpages-zh\fR