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

名称
書式
解説
診断
モード
使用例
バグ
互換性
関連項目
規格
歴史

jman



Time: 07:06:02 GMT, January 12, 2009