本文に進む 日本−日本語
日本HPホーム 製品とサービス お客様サポート/ ダウンロード ソリューション ご購入の方法
≫ お問い合わせ
詳細検索オプション
日本HPホーム
HP-UX リファレンス: セクション 1 : ユーザーコマンド (A~M) > c

chacl(1)

HP-UX 11i Version 2: September 2004
≫ 

テクニカル ドキュメント

PDF版
フィードバック
ここから本文が始まります

 ≫ 目次

 ≫ 索引

名称

chacl ― ファイルのアクセス制御リスト (ACL) の追加、修正、削除、コピー、または要約

構文

/usr/bin/chacl acl file ...

chacl -r acl file ...

chacl -d aclpatt file ...

chacl -f fromfile tofile ...

chacl -[z|Z|F] file ...

説明

chacl は、 chmod(1) の機能を拡張したもので、ユーザーが特定の追加ユーザーおよびグループにファイルアクセスを認可したり、制限したりすることができます。 ファイル作成の際に設定される従来のファイルアクセス パーミッションは、ファイル所有者、グループ、および他のユーザーへのアクセスを認めるかまたは制限します。 これらのファイルアクセス パーミッション (例: rwxrw-r--) は、3 つのベースアクセス制御リストエントリーにマップされます。 1 つのエントリーはファイルの所有者用で u .%, mode), 1 つはファイルのグループ用 (%. g, mode), そしてもう 1 つは他のユーザー用 (%.%, mode) です。

chacl では、ユーザーは、ファイルのアクセス制御リストにストアされた最大 13 のパーミッションの追加セット (これをオプションのアクセス制御リスト (ACL) エントリーといいます) を制御できます。

chacl を使用するには、所有者 (またはスーパーユーザー) が acl を構成しますが、これは単一または複数のファイルと対応付ける (user.group, mode) マッピングのセットです。 特定のユーザーおよびグループは、名前か数値のいずれかによって参照します。 任意のユーザー u), グループ g), または両方を参照するには、 % 記号を使用します。この記号は 任意の ユーザーまたはグループを表します。 @ 記号は、ファイルの所有者またはグループを指定します。

読み込み、書み込み、および実行/検索 (rwx) modes は、 chmod で使用するシンボリック演算子 op), アクセス権の追加 (+), 削除 (-), または設定 (=) と同一です。 acl にスペースまたは特殊文字がある場合、全体を引用符で囲むようにしてください。 acl を構成するには 2 通りの方法があります ( acl(5) に詳しい説明があります) が、以下の構文をお勧めします。

entry[, entry] ...

ただし、 entry の構文は次のようになります。

u.g op mode[op mode] ...

デフォルトでは、 chacl は既存の ACL を修正します。 それは、 ACL エントリーを追加するか、または既存の ACL エントリーにおけるアクセス権を修正します。 acl にすでにファイルと対応した ACL エントリーがある場合、エントリーのモードビットは指定した新しい値に変更されるか、または指定した演算子によって修正されます。 ファイルの ACL にすでに指定エントリーがない場合、その ACL エントリーが追加されます。 chacl で、ファイルへのアクセスをすべて削除することも可能です。null の acl 引き数を与えると、「アクセスなし」( -r オプションを使用しているとき) か、または「変更なし」を意味します。

構文の要約については、引き数なしで chacl を実行してください。

file- を指定する場合、 chacl は標準入力としてオープンしているファイルに対して動作します。

オプション

chacl は以下のオプションを認識します。

-r  

従来の ACL を、指定した ACL に置き換えます。 すべての追加 ACL エントリーは、指定のファイルの ACL から最初に削除されます。ベースパーミッションがゼロに設定され、新しい ACL が適用されます。 acl に所有者 u .%), グループ (%. g), またはファイルの他の (%.%) ユーザーのエントリーがなければ、その ACL エントリーのモードはゼロ (アクセスなし) に設定されます。 コマンドはファイルの ACL エントリーすべてに影響を与えますが、ファイル所有者またはグループ ID の変更はしません。

chmod(1) では、「変更」および「置き換え」操作は構文 (文字列または 8 進値) によって区別されます。 ACL には可変個数のエントリーがあるため、決まった構造はありません。したがって、 chacl は、デフォルトにより特定のエントリーを修正し、オプションによりエントリーをすべて置き換えます。

-d  

指定されたすべてのファイルにあたる ACL から指定されたエントリーを削除します。 aclpatt 引き数は、 ACL そのものか、または ACL パターンでもかまいません ( acl(5) を参照)。 chacl -d は、エントリーが削除される場合に限って、各ファイルの ACL をアップデートします。

任意のファイルからベース ACL エントリーを削除しようとすると、エントリーは残りますが、そのアクセスモードはゼロ (アクセスなし) に設定されます。 存在しない ACL エントリーをファイルから削除しようとすると (つまり、 ACL エントリーパターンが ACL エントリーに一致しない場合)、 chacl はエラーを通知し、処理を続行し、最終的に非ゼロを返します。

-f fromfile tofile
  

fromfile から指定した tofile に ACL をコピーし、必要ならば、所有権を移します ( acl(5), chown(2), または chownacl(3C) を参照)。 fromfile は、標準入力を表す - が可能です。

このオプションは、 -r オプションを意味します。 fromfile の所有者およびグループが tofile のものと同一である場合、 chacl -f は以下のものと同一です。

chacl -r `lsacl fromfile` tofile ...

所有権を移すことなく ACL をコピーするには、 chacl -f の代わりに上記のコマンドをお勧めします。

-z  

ベースエントリーのみを残して、指定したファイルの ACL におけるオプションエントリーをすべて削除 (「ザップ」) します。

-Z  

指定したファイルの ACL におけるオプションエントリーをすべて削除 (「ザップ」) し、ベースエントリーにおけるアクセスモードをすべてゼロ (アクセスなし) に設定します。 これは元の ACL を null の ACL で以下のように置き換えるのと等価です。 ACL:

chacl -r '' file ...

または副作用としてオプションエントリーを削除する chmod(1) を使った場合と等価です。

chmod 0 file ...

-F  

ACL エントリーをベース ACL エントリーに組み込み (「折り重ね」) ます。ベース ACL エントリーのパーミッションビットは、必要ならば、呼び出し元のファイルへの有効なアクセス権を反映するために変更されます。オプションのエントリーがあれば、すべて削除されます。

通常のユーザーの場合、所有者のベース ACL エントリーのアクセスモードのみが変更できます。 getaccess と違い、読み取り専用ファイルシステム上のファイルまたは実行中の共用テキストプログラムに対して、書き込みビットはオフにされません ( getaccess(1) を参照)。

スーパーユーザーの場合、ファイルが通常ファイルでないか、または実行ビットがベース ACL エントリーモードにまだセットされていないがオプションの ACL エントリーモードにセットされている場合に限り、所有者のベース ACL エントリーにおける実行モードビットのみが変更されます。

同様に、 acl は、ファイルにおける文字列から得られます。

chacl `cat file` files ...

acl 内で「ファイル所有者またはグループ」を表す@ を使用すると ( -d オプションの場合を除いて)、ファイルごとに ACL を再び構文解析しなければならないため、 chacl の実行速度は低下します。

多言語化対応

環境変数

LANG は、メッセージの表示言語を決定します。

LANG が指定されていないか、空の文字列に設定されている場合、 "C"デフォルト ( lang(5) を参照) が LANG の代わりに使用されます。 いずれかの国際変数の内容の設定が不適当な場合、すべての国際変数が"C"に設定されたものとして chacl は動作します。 environ(5) を参照してください。

戻り値

chacl が正常終了すると、ゼロ値を返します。

任意のファイルの ACL を変更する前に chacl にエラーが発生すると、エラーメッセージを標準エラーにプリントし、1 を返します。このようなエラーとしては、無効な呼び出し、 acl aclpatt) の無効な構文、指定したユーザー名またはグループ名が不定、または -f オプションで fromfile から ACL を取得不可能といったことがあります。

chacl が要求された操作を実行できない場合、エラーメッセージを標準エラーにプリントし、処理を続行して、後で 2 を返します。これには、ファイルが存在しない、ファイルの ACL が変更できない、許容量をこえる ACL エントリーが発生する、または存在しない ACL エントリーを削除しようとした、といったケースがあります。

以下のコマンドは、ファイル x および y に対して、任意のグループにおけるユーザー jpc の読み取りアクセスを追加し、そのファイルグループにおける任意のユーザーの書き込みアクセスを削除します。

  • chacl "jpc.%+r, %.@-w" x y

このコマンドは、標準入力としてオープンされているファイルおよびファイル test の ACL を、ファイル所有者の読み書きのみ許可するものに置き換えます。

  • chacl -r '(@.%,rw-)' - test

もしあれば、ファイル myfile からグループ 13 におけるユーザー 165 に対する特定のアクセス権を削除します。 これはそのユーザーおよびグループに対してアクセスを制限する ACL エントリーを追加するのとは異なることに注意してください。 その結果ユーザーのアクセス権は、 ACL に残っているエントリーによって異なります。 また、コマンドは読み取りビットがオンのユーザー jpc のエントリーをすべて削除します (ACL パターン中で、ユーザー、グループ、またはアクセスモードを指定するのに、 ワイルドカードとしてアスタリスクを使用することができます)。

chacl -d '165.13, jpc.*+r' myfile 

oldfile から slow/hare および fast/tortoise に ACL をコピーします。

chacl -f oldfile slow/hare fast/tortoise 

標準入力としてオープンされているファイルのオプションの ACL エントリーをもしあれば削除します。

chacl -z - 

カレントディレクトリにある 名前が a, b, または c で始まるすべてのファイルへのアクセスをすべて拒否します。

chacl -Z [a-c]* 

ACL エントリーのファイル (fun.stuff) をベース ACL エントリーに組み込みます。

chacl -F fun.stuff 

警告

ACL 文字列に入れることができる反転エントリー (fun.stuff) の数は最高 16 個までですが、これは@ シンボルをユーザーまたはグループ名に冗長なエントリーを結合させることによって、一部のファイルでは 16 個のエントリーより少なくなることがあります。

制約

ターゲットファイルが存在するファイルシステムが ACL をサポートしていない場合、 chacl は異常終了します。

NFS

-F オプションのみが、リモートファイルでサポートされます。

著者

chacl は HP で開発されました。

参照

chmod(1), getaccess(1), lsacl(1), getacl(2), setacl(2), acl(5), glossary(9)

印刷用画面へ
プライバシー 本サイト利用時の合意事項
© 1983-2004 Hewlett-Packard Development Company, L.P.