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