CHMOD
Section: User Commands (1)
索引
jman
BSD mandoc
索引
名称
chmod
- ファイルのモードを変更する
索引
書式
chmod
[-fhv
]
[-R [-H | L | P
]
]
mode
file ...
索引
解説
は指定されたファイルのモードを
mode
で指定したものに変更します。
オプションとして以下のものがあります:
- -f
-
が
file
のモードを変更できなかったときに、診断メッセージを表示しませんし、
失敗を示す終了値の変更を行いません。
- -H
-
-R
オプションが指定されていれば、引数がシンボリックリンクのとき、それを
たどって変更します。
(ディレクトリツリー探索中に見つかったシンボリックリンクは、デフォルトでは
それ以上追跡しません)
- -h
-
ファイルがシンボリックリンクの場合、
リンクの先のファイルの代りにリンク自身のモードを変更します。
- -L
-
-R
オプションが指定されていれば、すべてのシンボリックリンクをたどり、
リンク先のファイルを変更します。
- -P
-
-R
オプションが指定されていても、どのシンボリックリンクもたどりません。
これがデフォルトです。
- -R
-
指定されたファイル自身だけではなく、それらをルートとする
ディレクトリ階層を再帰的に検索してモードを変更します。
- -v
-
を冗長にし、モードが変更されるファイルを表示させます。
-v
が複数回指定された場合、ファイルの旧モードと新モードが、
8 進数およびシンボルにて表示されます。
-H
-L
-P
オプションは、
-R
オプションが指定されていなければ無視されます。また、これらが
複数指定されると最後に指定したものが有効になります。
ファイルのモードの変更はそのファイルの所有者とスーパユーザだけにしか
許されていません。
索引
診断
Ex -std
索引
モード
モードには、数値を用いた絶対値指定と、シンボルによる指定があります。
数値指定では、以下の値を
``or''
で組み合わせた 8 進数を用います:
- 4000
-
(setuid ビット)
このビットがセットされている実行可能ファイルは、
ファイルを所有するユーザ ID に実効ユーザ ID を設定されて実行されます。
このビットをセットされているディレクトリは、
その中で作成される全てのファイルおよびディレクトリの所有者を
ディレクトリの所有者に設定することを強制し、
作成するプロセスのユーザ ID は無関係となります。
これは、ディレクトリが存在するファイルシステムが
この機能をサポートしている場合に限られます:
chmod(2)
と
mount(8)
の
suiddir
オプションを参照してください。
- 2000
-
(setgid ビット)
このビットがセットされている実行可能ファイルは、
ファイルを所有するグループ ID に実効グループ ID を設定されて実行されます。
- 1000
-
(スティッキビット)。
chmod(2)
と
sticky(8)
を参照してください。
- 0400
-
所有者の読み込みを許可。
- 0200
-
所有者の書き込みを許可。
- 0100
-
ファイルの場合、所有者の実行を許可。
ディレクトリの場合、所有者の検索を許可。
- 0040
-
グループのメンバの読み込みを許可。
- 0020
-
グループのメンバの書き込みを許可。
- 0010
-
ファイルの場合、グループのメンバの実行を許可。
ディレクトリの場合、グループのメンバの検索を許可。
- 0004
-
他者の読み込みを許可。
- 0002
-
他者の書き込みを許可。
- 0001
-
ファイルの場合、他者の実行を許可。
ディレクトリの場合、他者の検索を許可。
例えば、所有者に読み込み・書き込み・実行を許可し、
グループのメンバに読み込み・実行を許可し、
他者に読み込み・実行を許可し、
set-uid と set-gid を指定しない絶対値指定のモードは、
755 (400+200+100+040+010+004+001) となります。
シンボルによる指定は以下の文法に従います。
mode ::= clause [, clause ...]
clause ::= [who ...] [action ...] action
action ::= op [perm ...]
who ::= a | u | g | o
op ::= + | - | =
perm ::= r | s | t | w | x | X | u | g | o
who
シンボルの ``u'', ``g'', ``o'' はそれぞれユーザ、グループ、それ以外に
相当します。``a'' シンボルは ``ugo'' を指定した場合と同じになります。
perm
シンボルはモードの各ビットを以下のように表現します。
- r
-
読み込み許可ビット
- s
-
実行時 setuid および実行時 setgid ビット
- t
-
sticky ビット
- w
-
書き込み許可ビット
- x
-
実行/検索 許可ビット
- X
-
対象がディレクトリであるか、変更前のモードで誰かの実行/検索許可ビット
が立っている場合に、実行/検索許可ビットがセットされます。
perm
シンボルでの ``X'' の指定は、
op
シンボルを ``+''で連結する時のみ意味があり、他の場合は無視されます。
- u
-
元の、ファイルの所有者許可ビット
- g
-
元の、ファイルのグループ許可ビット
- o
-
元の、ファイルの所有者とグループ以外の許可ビット
op
シンボルの働きは以下のようになります
- +
-
perm
値が指定されなければ、``+'' は何の作用もありません。
who
シンボルが指定されていなければ、
perm
値はそれぞれの who シンボルの対応するビットに作用し、それを umask で
マスクしたビットがセットされます。
who
シンボルが指定されていれば、その
perm
値が設定されます。
- -
-
perm
値が指定されていなければ、``-'' は何の作用もありません。
who
シンボルが指定されていなければ、
perm
値はそれぞれの who シンボルの対応するビットに作用し、それを umask で
マスクしたビットがクリアされます。
who
シンボルが指定されていれば、その
perm
値がクリアされます。
- =
-
who
シンボルで指定されたモードビットがクリアされます。who シンボルが指定
されていなければ、所有者、グループ、その他の各モードビットがクリアされ
ます。
who
シンボルが指定されていなければ、
perm で指定したビットが、所有者、グループ、その他のそれぞれを umask で
マスクしたものだけ設定されます。
who
シンボルと
perm
が指定されていれば、その値がそのまま設定されます。
各
clause
では、モードビットを操作するためのオペレーションを 1 つ以上記述しなけ
ればなりません。そして各オペレーションは記述した順番で適用されます。
所有者とグループ以外の ``o'' のみに対して、``s'' や ``t'' の組み合わせの
perm
値が指定されても無視されます。
索引
使用例
- 644
-
ファイルを誰にでも読めるようにして、ファイルの所有者のみ書き込み可能に
します。
- go-w
-
ファイルの所有者以外の書き込みを禁止します。
- =rw,+X
-
umask でマスクされていないビットの読み書きを許可しますが、実行許可は
現在設定されているものを保持します。
- +X
-
誰かが実行/検索可能なファイルやディレクトリならば、すべてのユーザが
実行/検索できるファイルやディレクトリとします。
- 755
-
- u=rwx,go=rx
-
- u=rwx,go=u-w
-
誰にでも読み込みと実行ができて、所有者のみ書き込み可能になるようにしま
す。
- go=
-
グループやその他のユーザにいかなる許可も与えません。
- g=u-w
-
グループビットをユーザビットと同じにしますが、グループの書き込みは禁止
します。
索引
バグ
naughty bit のための
perm
オプションがありません。
索引
互換性
-v
オプションは非標準であり、スクリプト中の使用は非推奨です。
索引
関連項目
chflags(1),
install(1),
setfacl(1),
chmod(2),
stat(2),
umask(2),
fts(3),
setmode(3),
symlink(7),
chown(8),
mount(8),
sticky(8)
索引
規格
ユーティリティは、規格にない
perm
シンボルの
``t''
を除いては
St -p1003.2
互換になるように作られています。
索引
歴史
コマンドは
AT&T System
v1
から導入されました。
索引
Index
- 名称
-
- 書式
-
- 解説
-
- 診断
-
- モード
-
- 使用例
-
- バグ
-
- 互換性
-
- 関連項目
-
- 規格
-
- 歴史
-
Time: 07:06:02 GMT, January 12, 2009