戻る

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)