chmod(1) FreeBSD 一般コマンドマニュアル

chmod

前のページ 上に戻る 次のページ

chmod




解説

     chmod は指定されたファイルのモードを mode で指定したものに変更します。

     オプションとして以下のものがあります:

     -H      -R オプションが指定されていれば、引数がシンボリックリンクのとき、
             それをたどって変更します。 (ディレクトリツリー探索中に見つかった
             シンボリックリンクは、デフォルトではそれ以上追跡しません)

     -L      -R オプションが指定されていれば、すべてのシンボリックリンクをたど
             り、リンク先のファイルを変更します。

     -P      -R オプションが指定されていても、どのシンボリックリンクもたどりま
             せん。これがデフォルトです。

     -R      指定されたファイル自身だけではなく、それらをルートとするディレク
             トリ階層を再帰的に検索してモードを変更します。

     -f      chmodfile のモードを変更できなかった場合に、診断メッセージを
             表示しません。

     -v      chmod を冗長にし、モードが変更されるファイルを表示させます。

     シンボリックリンクはモードを持たないので、 -H または -L オプションが指定
     されていなければ、シンボリックリンクに対する chmod 実行結果は常に真とな
     り、何も変えません。 -H, -L, -P オプションは、 -R オプションが指定されて
     いなければ無視されます。また、これらが複数指定されると最後に指定したもの
     が有効になります。

     ファイルのモードの変更はそのファイルの所有者とスーパユーザだけにしか許さ
     れていません。


診断

     ユーティリティ chmod は、成功すると 0 で、エラーがあった場合は >0 で終了
     します。


モード

     モードには、数値を用いた絶対値指定と、シンボルによる指定があります。数値
     指定では、以下の値を ``or'' で組み合わせた 8 進数を用います:

           4000    (set-user-ID-on-execution ビット) このビットがセットされて
                   いる実行可能ファイルは、ファイルを所有するユーザ ID に実効
                   ユーザ ID を設定されて実行されます。 set-user-id ビットを
                   セットされているディレクトリは、その中で作成される全ての
                   ファイルおよびディレクトリの所有者をディレクトリの所有者に
                   設定することを強制し、作成するプロセスのユーザ ID は無関係
                   となります。これは、ディレクトリが存在するファイルシステム
                   がこの機能をサポートしている場合に限られます: chmod(2)mount(8)suiddir オプションを参照してください。
           2000    (set-group-ID-on-execution ビット) このビットがセットされて
                   いる実行可能ファイルは、ファイルを所有するグループ ID に実

           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 シンボル
           が指定されていなければ、所有者、グループ、その他の各モードビットが
                   き込み可能にします。

     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), chmod(2), stat(2), umask(2), fts(3), setmode(3),
     symlink(7), chown(8), mount(8), sticky(8)


規格

     chmod ユーティリティは、規格にない perm シンボルの ``t'' を除いては IEEE
     Std 1003.2 (``POSIX.2'') 互換になるように作られています。


歴史

     chmod コマンドは Version 1 AT&T UNIX から導入されました.

FreeBSD 4.4                     March 31, 1994                     FreeBSD 4.4

ABELNET VPSサービス