戻る
GNUのsh-fileutils付属のchmodコマンドのマニュアル。
================================
CHMOD(1) CHMOD(1)
名前
chmod - ファイルのアクセス権を変更する
書式
chmod [オプション] mode file...
POSIX オプション: [-R]
GNU オ プ ショ ン (簡略形式): [-cfvR] [--reference=file]
[--help] [--version] [--]
説明
chmod コマンドは指定したそれぞれの file のアク セ ス 権 を
mode により変更する。変更方法をシンボルで表現するか、もし
くは変更後のアクセス権を表すビットパターンを8進数で表現 し
たもののいずれかを使うことができる。
シンボルモードでアクセス権を変更する場合の引数の書式は
`[ugoa...][[+-=][rwxXstugo...]...][,...]' である。
シンボルモードで引数にアクセス権の変更を複数指定する場合に
はコンマで区切る。シンボルモードでアクセス権を変更するそれ
ぞ れの表現は 0 個もしくは複数の文字 `ugoa' で始まる; これ
らがファイルに対するどのユーザーのアクセス権を変更するかを
決める: ファイルの所有者 (u)、ファイルと同じグループに属し
ているが所有者ではない (訳注: 以後グループと表記) (g)、 所
有者でもなく、そのファイルと同じグループにも属していない (
訳注: 以後その他と表記) (o)、もしくは全ユーザー (a) を表し
ている。つまり `a' は `ugo' と同じである。もしこれらのいず
れも指定されない場合、`a' が指定されたのと同じ結果と な る
が、umask に設定されたビット位置は変化しない。
`+' 演算子は各々のファイルの現状のアクセス権に、選択したア
クセス権を加える; `-' は削除する; そして `=' は指定した ア
クセス権だけがそのファイルのアクセス権となる。
文 字 `rwxXstugo' は影響を与えるユーザーに対する新しいアク
セス権を選択する: 読取り (r)、書き込み (w)、実行 (ま た は
ディ レクトリに対するアクセス) (x)、ファイルがディレクトリ
かもしくはあるユーザーにたいしてすでに実行アクセス権が設定
されている場合のみ実行 (X)、実行時にユーザーもしくはグルー
プ IDを設定する (s)、sticky bit (t)、そのファイルの所有 者
での現在のアクセス権は (u)、そのファイルのグループでの現在
のアクセス権は (g)、そのファイルのその他のユーザーでの現在
の アクセス権は (o) で表される。 (従って、`chmod g-s file'
は set-group-ID (sgid) ビットを削 除 す る。 `chmod ug+s
file' は suid そ して sgid ビットの両方を設定するが、
`chmod o+s file' は何もしない。)
POSIX では `sticky bit' について記述していない。その名前は
本来の意味から来ている: プログラムコードをスワップ上に維持
する。最近は、ディレクトリに設定されている場合、ファイルの
所有者とディレクトリの所有者だけがそのディレクトリからファ
イルを削除できることを意味する。 (全ユーザーが書き込みアク
セス権を持つ /tmp のようなディレクトリでこれはごく普通に使
われている。)
chmod コマンドがシンボリックリンクのアクセス権を変更するこ
と は 決 してない。なぜなら、 chmod システムコールはシンボ
リックリンクのアクセス権を変更することができないから で あ
る。シンボリックリンクのアクセス権は決して使われることがな
いため、このことは問題ではない。しかし、 chmod コマンド は
引数にシンボリックリンクが指定された場合、各々についてそれ
が指しているファイルのアクセス権を変更する。それに対して、
chmod コマンドは再帰的にディレクトリを移動しながら処理して
いる時に見つけたシンボリックリンクは無視する。
POSIX オプション
-R ディレクトリやそこに含まれるもののアクセス権を再 帰
的に変更する。
GNU オプション
-c, --changes
実 際にアクセス権の変更があった file それぞれについ
ての動作を詳細に表示する。
-f, --silent, --quiet
アクセス権を変更できなかったファイルについ て の エ
ラーメッセージを出力しない。
-v, --verbose
全 ての file について変更した、もしくはしなかったと
いう動作を詳細に表示する。
-R, --recursive
ディレクトリやそこに含まれるもののアクセス権を再 帰
的に変更する。
--reference=file
明 示的に mode を指示する代わりに、参照用に指定した
file のグループを使う。
GNU 標準オプション
--help 標準出力に使用方法のメッセージを出力して正常終了 す
る。
--version
標準出力にバージョン情報を出力して正常終了する。
-- オプションリストを終了する。
数値モード
ファイルのアクセス権は内部的に 16 ビットの整数で保持されて
いる。シンボルでアクセス権を指定する代わりに、 これから 変
更 す る アクセス権の内部表現に対応した 8 進数 (基数 8) を
使って指定することができる。この数値は常に 8 進数として 扱
わ れ る; C 言語のように数値の先頭に 0 を付加する必要はな
い。Mode に 0055 と指定するのと 55 と指定するのは同じで あ
る。
数値モードによる指定は、対応するシンボルモードで指定するよ
り大抵の場合短くすむ。しかしファイルの現状のアクセス権を考
慮した指定ができないという制限がある; 絶対値指定しかできな
い。
最初の桁ではユーザー ID の設定 (4)、グループ ID の 設 定
(2)、およびプログラムコードのスワップでの維持 (1) といった
属性を指定する。2桁目ではファイルを所有するユーザーのア ク
セ ス 権を指定する: 読み取り (4)、書き込み (2)、そして実行
(1); 3桁目ではファイルと同じグループのユーザーに対するアク
セ ス権を同じ値で指定する; そして4桁目ではその他のユーザー
に対するアクセス権を同じ値で指定する。省略された数字 は 0
として扱われる。
内部的に所有者、グループ、その他に与えるアクセス権は、それ
ぞれ1桁の8進数で表現される3ビットで保存されている。3種類の
特別なアクセス権もそれぞれ1ビットで保存され、他の8進数と同
じようにまとめて表現される。ここで 16 ビット整数での配置を
もっとも低い値のビットから示す。
その他
1 実行
2 書き込み
4 読み込み
グループ
10 実行
20 書き込み
40 読み込み
所有者
100 実行
200 書き込み
400 読み込み
特別なアクセス権
1000 プログラムコードをスワップに維持
2000 実行時にグループ ID を設定
4000 実行時にユーザー ID を設定
環境変数
変 数 LANG, LC_ALL, LC_CTYPE, LC_MESSAGES が通常の意味を持
つ。
準拠
POSIX 1003.2 では -R オプションのみが必須である。その他 の
オプションを使用すると互換性がないかもしれない。この標準で
は 't' の許可ビットについて説明していない。この標 準 で は
chmod が suid や sgid ビットのクリアもしくは設定の拒絶での
一貫性を維持するべきかどうかについてをとり決めていない。た
と え ば、 すべての実行ビットがクリアされる場合に chmod が
`s' ビットをどうするかまったくとり決めていない。
非標準モード
ここまでのところでディレクトリに対する `t' ビットの使い 方
を 説 明した。いろいろなシステムでは、他の意味のないモード
ビットの組合せに特別な意味を与えている。特に、System V 系
(System V Interface Definition (SVID) Version 3 を参照) で
ある Linux では、グループでの実行権を持たないファイルに 対
する sgid ビットに、ファイルに対する必須ロックの意味を与え
ている。詳細については /usr/src/linux/Documentation/manda-
tory.txt ファイルを参照。
注意
このページでは fileutils-4.0 パッケージでの chmod コマンド
について説明している; その他のバージョンでは少し違いがある
か も し れ な い。 修 正 や 追 加 は aeb@cwi.nl と
aw@mail1.bet1.puv.fi そして ragnar@macula.net 宛てメイルし
て く だ さ い。 プ ロ グ ラ ムのバグについては bug-fileu-
tils@gnu.org へ報告してください。
GNU fileutils 4.0 17 November 1998 CHMOD(1)