Next: , Previous: chgrp invocation, Up: Changing file attributes   [Contents][Index]


13.3 chmod: アクセス権を変更する

chmod は、名前を指定したファイルのアクセス権を変更する。


書式:

chmod [option]… {mode | --reference=ref_file} file

chmod コマンドがシンボリックリンクのアクセス権を変更することはない。 chmod システムコールがシンボリックリンクのアクセス権を変更できないからである。 シンボリックリンクのアクセス権が利用されることは全くないので、この制限は問題にならない。 とは言え、コマンドラインで指定された file が、シンボリックリンクだということはあるだろうが、そうした場合、chmod は、指定された各シンボリックリンクが参照しているファイルのアクセス権を変更する。 それに対して、ディレクトリを再帰的にたどっている最中にシンボリックリンクに出会った場合は、 chmod はそれを無視することになる。

chmod の実行に成功したとき、通常ファイルの set-group-ID ビットが消えることがあるが、 それは、ファイルのグループ ID が、chmod を実行したユーザの実効グループ ID や、補助グループ ID の一つに一致しなかった場合である。 もっとも、そのユーザがしかるべき特権を持っている場合には、 set-group-ID ビットが消えることはない。また、制限事項が他にも存在して、 指定した mode 中や ref_file の、set-user-ID ビットや set-group-ID ビットが無視されることもある。そうした動作は、裏で動いている chmod システムコールのポリシーや機能次第なのだ。どうなるかよくわからない場合には、 裏で動いているシステムの動作を調べればよい。

mode には、ファイルの新しいモードビット (訳注: すなわち、アクセス権) を指定する。詳細については、「ファイルの許可属性」の章を参照していただきたい (see File permissions)。mode を指定するとき、mode をどうしても ‘-’ で始めたいのなら、前に -- を置いた方がよい。 たとえば、‘chmod -- -w file’ のようにだ。 とは言え、たいていの場合、‘chmod a-w file’ の方が望ましい。 なお、chmod -w file (-- がない) が ‘chmod a-w file’ と別の動作になる場合には、警告が出る。

このプログラムでは以下のオプションが使用できる。参照: Common options.

-c
--changes

アクセス権の変更が実際に行われた各 file について、何を実行したかを詳しく表示する。

-f
--silent
--quiet

アクセス権が変更できないファイルがあっても、エラーメッセージを出さない。

--preserve-root

ルートディレクトリ (/) を再帰的に変更しようとすると、 エラーになる。--recursive オプションを指定していない場合、 このオプションは効果がない。 See Treating / specially.

--no-preserve-root

--preserve-root オプションが前にあれば、その効果を無効にする。 See Treating / specially.

-v
--verbose

すべての file について、何を実行し、何を実行しなかったかを詳しく 表示する。

--reference=ref_file

file のモードを ref_file のそれと同じものに変更する。 See File permissions. ref_file がシンボリックリンクの場合は、 シンボリックリンクのモードではなく、リンクが参照しているファイルのモードを使用する。

-R
--recursive

ディレクトリとその中身のアクセス権を再帰的に変更する。

終了ステータス 0 は成功を示し、0 以外の値は失敗を示す。