このマニュアルはGNU版 chmod コマンドについて記述したものである。 chmod コマンドは指定したそれぞれのファイルのアクセス権を mode に従って変更する。変更方法をシンボルで表現するか、もしくは変更後の アクセス権を表すビットパターンを8進数で表現したもののいずれかを 使うことができる。
シンボルモードの書式は `[ugoa...][[+-=][rwxXstugo...]...][,...]'である。 コンマで区切ることによりシンボルモードを複数指定することができる。
文字`ugoa'の組合せにより、どのユーザのアクセス権を変更するかを決める: それぞれの文字は、ファイルの所有者(u)、 ファイルと同じグループに属している所有者以外のユーザ (訳注: 以後グループと表記)(g)、 ファイルと同じグループに属していないユーザ (訳注: 以後その他ユーザと表記)(o)、 もしくは全ユーザ(a) を表している。 もしこれらのいずれも指定されない場合は、`a' が指定されたのと同じ結果となるが、 umaskに設定されたビット位置は変化しない。
演算子`+'は各々のファイルの現状のアクセス権に選択したアクセス権を加える; 演算子`-'は選択したアクセス権を削除する; そして演算子`=' は指定したアクセス権だけをそのファイルのアクセス権とする。
文字 `rwxXstugo' は対象ユーザの新しいアクセス権を選択する: それぞれの文字は、読み取り許可(r)、 書き込み許可(w)、 実行許可(またはディレクトリに対するアクセス許可)(x)、 実行許可(但し、対象がディレクトリである場合か、 または、所有者/グループ/その他ユーザのいずれかにおいて、 既に実行許可が設定されていた場合のみ変更できる)(X)、 実行時にユーザIDまたはグループIDを設定する(s)、 プログラムコードをスワップデバイス上に保持する(t)、 変更前の所有者アクセス権(u)、 変更前のグループアクセス権(g)、 変更前のその他ユーザアクセス権(o)、を表す。 (訳注: t(sticky bit)について。最近は、ディレクトリに設定されている場合、 ファイルの所有者とディレクトリの所有者だけが、 そのディレクトリからファイルを削除できることを意味する。 全ユーザが書き込みアクセス権を持つ /tmp のようなディレクトリで、 これはごく普通に使われている。)
数値モードは1から4桁の8進数(0-7)で表される。 その数値は値4,2,1に対応するビットを加算することにより得られる。 省略された桁は0と見做される。 最初の桁では、ユーザIDの設定(4)、グループIDの設定(2)、 sticky bit(1)といった属性を指定する。 2桁目では、ファイルの所有者のアクセス権を指定する: 読み取り(4)、 書き込み(2)、実行(1)を示す。 3桁目では、グループのアクセス権を指定する: 値は同じ意味を示す。 4桁目では、その他ユーザのアクセス権を指定する: 値は同じ意味を示す。
chmod システムコールがシンボリックリンクのアクセス権を変更できないため、 chmod コマンドはシンボリックリンクのアクセス権を決して変更できない。 シンボリックリンクのアクセス権は決して使われることがないため、 このことは問題ではない。 しかし、 chmod コマンドは、引数にシンボリックリンクが指定された場合、 それが指しているファイルのアクセス権を変更する。 それに対して、 chmod コマンドは、再帰的にディレクトリを移動しながら処理している時に見つけた シンボリックリンクは無視する。
それぞれのモードは、1文字又はそれ以上の`ugoa'のいずれかの文字の組合せで ユーザアクセス権を表し、次に`+-='の演算子1文字によって変更動作を指定し、 最後に1文字又はそれ以上の`rwxXstugo'のいずれかの文字の組合せで 変更する属性を指定する。
で完全なマニュアルを参照することができる。