Chmod

chmod（change mode、チェンジモード）は、UNIXおよびUNIX系オペレーティングシステムにおけるシェルコマンドの一種である。ファイルやディレクトリのファイルモード（ファイルパーミッションなど）を変更するのに使われる。
歴史.
 コマンドは、AT&T の最初の UNIX（Research Unix V1）に既に備わっており、今も UNIX 系オペレーティングシステムで使われている。
使用法.
 コマンドのオプション形式は次の通り。
 $ chmod ["options"] "mode" "file1" ...
現在のパーミッション設定を見るには、次のように入力する。
 $ ls -l
オプション.
主なオプションとして、次のものがある。
文字列によるモード指定.
 では、全パーミッションと特殊モードを mode パラメータで表現する。ファイルやディレクトリのモードを指定する1つの方法としてシンボリックモードがある。シンボリックモードは、3つの部分からなる文字列で表される。
 $ chmod ["references"]["operator"]["modes"] "file1" ...
references はクラス（ユーザ、グループ、その他）を指定するのに使われる。references が指定されない場合、全クラスを意味する。以下の文字を使って指定する。
operator はモードの処理方法を指定する。
modes はモードを指定する。基本パーミッションに対応して3つの基本モードがある。
これら3要素で構成される文字列がシンボリックモードでのパーミッション指定として認識される。複数の変更があるときは、それらをカンマで連結して指定すればよい。
例.
次の例は、 という名前のファイルまたはディレクトリについて、ユーザクラスおよびグループクラスのリードパーミッションとライトパーミッションを付与するものである。
$ chmod ug+rw sample
$ ls -ld sample
drw-rw---- 2 unixguy unixguy 96 Dec 8 12:53 sample
次の例は、全パーミッションを削除するもので、 は読み出すことも書き込むことも実行することもできなくなる。
$ chmod a-rwx sample
$ ls -l sample
---------- 2 unixguy unixguy 96 Dec 8 12:53 sample
次の例は、ユーザおよびグループのパーミッションをリードと実行だけに設定する（ライトは不可とする）。
 コマンド実行前の sample のパーミッション
$ ls -ld sample
drw-rw---- 2 unixguy unixguy 96 Dec 8 12:53 sample
$ chmod ug=rx sample
$ ls -ld sample
dr-xr-x--- 2 unixguy unixguy 96 Dec 8 12:53 sample
八進数によるモード指定.
 コマンドは、三桁か四桁の八進数でモードを指定できる。これを絶対モード指定と呼ぶ。例えば、次のように指定する。
 $ chmod 0664 sample
sample というファイルの 、、 ビットが設定されていない場合、これは以下と等価である。
 $ chmod 664 sample
あるいは
 $ chmod +r,-x,ug+w sample
特殊モード.
 コマンドは、ファイルやディレクトリの追加パーミッション（あるいは特殊モード）も変更可能である。シンボリックモードでは が "setuid" と "setgid" モードを表し、 が "sticky" モードを表す。それぞれ、特定のクラスでのみ有効である。詳しくはファイルパーミッションを参照されたい。
多くのオペレーティングシステムでは絶対モードでの特殊モード指定が可能だが、一部では不可能なOSもあり、その場合はシンボリックモードでしか指定できない。