.\" Copyright (c) 1989, 1990, 1993, 1994 .\" The Regents of the University of California. All rights reserved. .\" .\" This code is derived from software contributed to Berkeley by .\" the Institute of Electrical and Electronics Engineers, Inc. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" @(#)chmod.1 8.4 (Berkeley) 3/31/94 .\" %FreeBSD: src/bin/chmod/chmod.1,v 1.36 2004/04/06 20:06:44 markm Exp % .\" .\" $FreeBSD$ .Dd March 31, 1994 .Dt CHMOD 1 .Os .Sh 名称 .Nm chmod .Nd ファイルのモードを変更する .Sh 書式 .Nm chmod .Op Fl fhv .Op Fl R Op Fl H | L | P .Ar mode .Ar .Sh 解説 .Nm は指定されたファイルのモードを .Ar mode で指定したものに変更します。 .Pp オプションとして以下のものがあります: .Bl -tag -width indent .It Fl f .Nm が .Va file のモードを変更できなかったときに、診断メッセージを表示しませんし、 失敗を示す終了値の変更を行いません。 .It Fl H .Fl R オプションが指定されていれば、引数がシンボリックリンクのとき、それを たどって変更します。 (ディレクトリツリー探索中に見つかったシンボリックリンクは、デフォルトでは それ以上追跡しません) .It Fl h ファイルがシンボリックリンクの場合、 リンクの先のファイルの代りにリンク自身のモードを変更します。 .It Fl L .Fl R オプションが指定されていれば、すべてのシンボリックリンクをたどり、 リンク先のファイルを変更します。 .It Fl P .Fl R オプションが指定されていても、どのシンボリックリンクもたどりません。 これがデフォルトです。 .It Fl R 指定されたファイル自身だけではなく、それらをルートとする ディレクトリ階層を再帰的に検索してモードを変更します。 .It Fl v .Nm を冗長にし、モードが変更されるファイルを表示させます。 .Fl v が複数回指定された場合、ファイルの旧モードと新モードが、 8 進数およびシンボルにて表示されます。 .El .Pp .Fl H , .Fl L , .Fl P オプションは、 .Fl R オプションが指定されていなければ無視されます。また、これらが 複数指定されると最後に指定したものが有効になります。 .Pp ファイルのモードの変更はそのファイルの所有者とスーパユーザだけにしか 許されていません。 .Sh 診断 .Ex -std .Sh モード モードには、数値を用いた絶対値指定と、シンボルによる指定があります。 数値指定では、以下の値を .Ar ``or'' で組み合わせた 8 進数を用います: .Pp .Bl -tag -width 6n -compact -offset indent .It Li 4000 (setuid ビット) このビットがセットされている実行可能ファイルは、 ファイルを所有するユーザ ID に実効ユーザ ID を設定されて実行されます。 このビットをセットされているディレクトリは、 その中で作成される全てのファイルおよびディレクトリの所有者を ディレクトリの所有者に設定することを強制し、 作成するプロセスのユーザ ID は無関係となります。 これは、ディレクトリが存在するファイルシステムが この機能をサポートしている場合に限られます: .Xr chmod 2 と .Xr mount 8 の .Cm suiddir オプションを参照してください。 .It Li 2000 (setgid ビット) このビットがセットされている実行可能ファイルは、 ファイルを所有するグループ ID に実効グループ ID を設定されて実行されます。 .It Li 1000 (スティッキビット)。 .Xr chmod 2 と .Xr sticky 8 を参照してください。 .It Li 0400 所有者の読み込みを許可。 .It Li 0200 所有者の書き込みを許可。 .It Li 0100 ファイルの場合、所有者の実行を許可。 ディレクトリの場合、所有者の検索を許可。 .It Li 0040 グループのメンバの読み込みを許可。 .It Li 0020 グループのメンバの書き込みを許可。 .It Li 0010 ファイルの場合、グループのメンバの実行を許可。 ディレクトリの場合、グループのメンバの検索を許可。 .It Li 0004 他者の読み込みを許可。 .It Li 0002 他者の書き込みを許可。 .It Li 0001 ファイルの場合、他者の実行を許可。 ディレクトリの場合、他者の検索を許可。 .El .Pp 例えば、所有者に読み込み・書き込み・実行を許可し、 グループのメンバに読み込み・実行を許可し、 他者に読み込み・実行を許可し、 set-uid と set-gid を指定しない絶対値指定のモードは、 755 (400+200+100+040+010+004+001) となります。 .Pp シンボルによる指定は以下の文法に従います。 .Bd -literal -offset indent 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 .Ed .Pp .Ar who シンボルの ``u'', ``g'', ``o'' はそれぞれユーザ、グループ、それ以外に 相当します。``a'' シンボルは ``ugo'' を指定した場合と同じになります。 .Pp .Ar perm シンボルはモードの各ビットを以下のように表現します。 .Pp .Bl -tag -width Ds -compact -offset indent .It r 読み込み許可ビット .It s 実行時 setuid および実行時 setgid ビット .It t sticky ビット .It w 書き込み許可ビット .It x 実行/検索 許可ビット .It X 対象がディレクトリであるか、変更前のモードで誰かの実行/検索許可ビット が立っている場合に、実行/検索許可ビットがセットされます。 .Ar perm シンボルでの ``X'' の指定は、 .Ar op シンボルを ``+''で連結する時のみ意味があり、他の場合は無視されます。 .It u 元の、ファイルの所有者許可ビット .It g 元の、ファイルのグループ許可ビット .It o 元の、ファイルの所有者とグループ以外の許可ビット .El .Pp .Ar op シンボルの働きは以下のようになります .Bl -tag -width 4n .It + .Ar perm 値が指定されなければ、``+'' は何の作用もありません。 .Ar who シンボルが指定されていなければ、 .Ar perm 値はそれぞれの who シンボルの対応するビットに作用し、それを umask で マスクしたビットがセットされます。 .Ar who シンボルが指定されていれば、その .Ar perm 値が設定されます。 .It \&\- .Ar perm 値が指定されていなければ、``\-'' は何の作用もありません。 .Ar who シンボルが指定されていなければ、 .Ar perm 値はそれぞれの who シンボルの対応するビットに作用し、それを umask で マスクしたビットがクリアされます。 .Ar who シンボルが指定されていれば、その .Ar perm 値がクリアされます。 .It = .Ar who シンボルで指定されたモードビットがクリアされます。who シンボルが指定 されていなければ、所有者、グループ、その他の各モードビットがクリアされ ます。 .Ar who シンボルが指定されていなければ、 perm で指定したビットが、所有者、グループ、その他のそれぞれを umask で マスクしたものだけ設定されます。 .Ar who シンボルと .Ar perm が指定されていれば、その値がそのまま設定されます。 .El .Pp 各 .Ar clause では、モードビットを操作するためのオペレーションを 1 つ以上記述しなけ ればなりません。そして各オペレーションは記述した順番で適用されます。 .Pp 所有者とグループ以外の ``o'' のみに対して、``s'' や ``t'' の組み合わせの .Ar perm 値が指定されても無視されます。 .Sh 使用例 .Bl -tag -width "u=rwx,go=u-w" -compact .It Li 644 ファイルを誰にでも読めるようにして、ファイルの所有者のみ書き込み可能に します。 .Pp .It Li go-w ファイルの所有者以外の書き込みを禁止します。 .Pp .It Li =rw,+X umask でマスクされていないビットの読み書きを許可しますが、実行許可は 現在設定されているものを保持します。 .Pp .It Li +X 誰かが実行/検索可能なファイルやディレクトリならば、すべてのユーザが 実行/検索できるファイルやディレクトリとします。 .Pp .It Li 755 .It Li u=rwx,go=rx .It Li u=rwx,go=u-w 誰にでも読み込みと実行ができて、所有者のみ書き込み可能になるようにしま す。 .Pp .It Li go= グループやその他のユーザにいかなる許可も与えません。 .Pp .It Li g=u-w グループビットをユーザビットと同じにしますが、グループの書き込みは禁止 します。 .El .Sh バグ naughty bit のための .Ar perm オプションがありません。 .Sh 互換性 .Fl v オプションは非標準であり、スクリプト中の使用は非推奨です。 .Sh 関連項目 .Xr chflags 1 , .Xr install 1 , .Xr setfacl 1 , .Xr chmod 2 , .Xr stat 2 , .Xr umask 2 , .Xr fts 3 , .Xr setmode 3 , .Xr symlink 7 , .Xr chown 8 , .Xr mount 8 , .Xr sticky 8 .Sh 規格 .Nm ユーティリティは、規格にない .Ar perm シンボルの .Dq t を除いては .St -p1003.2 互換になるように作られています。 .Sh 歴史 .Nm コマンドは .At v1 から導入されました。