アクセス制御リストの管理

コマンドを使用して ACL の表示と設定ができます。

アプリケーション・プログラマーおよび その他のサブシステム開発者は、このセクションで述べる ACL ライブラリー・インターフェースならびに ACL 変換ルーチンを使用することができます。

ACL 管理コマンド

以下のコマンドを使用して、ファイルシステム・オブジェクトの ACL を扱うことができます。

aclget
FileObject という名前のファイル・オブジェクトの ACL を標準出力に、読み取り可能なフォーマットで書き込むか、または同様のものを outAclFile という名前の出力ファイルに書き込みます。
aclput
FileObject の ACL を、標準出力、すなわち inAclFile を介して指定された入力を使用して、ファイルシステム上に設定します。
acledit
指定された FileObject の ACL を編集するために、エディターを開きます。
aclconvert
ACL のタイプを別のタイプに変換します。 変換がサポートされていない場合は、このコマンドは失敗します。
aclgettypes
ファイルシステム・パスでサポートされている ACL タイプを取得します。

ACL ライブラリー・インターフェース

ACL ライブラリー・インターフェースは、ACL をアクセスする必要のあるアプリケーションに対してフロントエンドとして働きます。 アプリケーション (前述の汎用 ACL 管理コマンドを含む) は、登録されていない ACL syscall を直接呼び出すことはしません。その代わりに、汎用 syscall およびタイプ固有のロード可能なモジュールを、ライブラリー・インターフェースを介してアクセスします。 これにより、カスタマーのアプリケーション・プログラマーはロード可能なモジュールの複雑な用法から保護され、将来の AIX® リリースにおけるバックワード・バイナリー互換性の問題が低減されます。

以下のライブラリー・インターフェースは syscall を呼び出します。

aclx_fget および aclx_get
aclx_get および aclx_fget 機能は、ファイルシステム・オブジェクトのアクセス・コントロール情報を検索し、acl により指定されたメモリー領域にそれを書き込みます。 acl のサイズとタイプ情報は、*acl_sz*acl_type に保管されます。
aclx_fput および aclx_put
aclx_put および aclx_fput 機能は、入力ファイル・オブジェクトの acl に指定されたアクセス・コントロール情報を保管します。 これらの機能は、ACL タイプ変換は行いません。ACL タイプ変換を行うには、呼び出し側が aclx_convert 機能を明確に呼び出す必要があります。
aclx_gettypes
aclx_gettypes 機能は、特定のファイルシステムでサポートされている ACL タイプのリストを取得します。 1 つのファイルシステム・タイプが複数の ACL タイプを同時にサポートすることができます。 各ファイルシステム・オブジェクトは、そのファイルシステムによりサポートされる ACL タイプのリストに属する、固有の ACL タイプと関連しています。
aclx_gettypeinfo
aclx_gettypeinfo 機能は、パスで指定されたファイルシステム上の ACL タイプの特性と能力を取得します。 ACL 特性は、通常、それぞれの ACL タイプに固有なデータ構造タイプとなることに注意してください。 AIXC および NFS4 ACL に使用されるデータ構造は、別のドキュメントで述べます。
aclx_print および aclx_printStr
これらの 2 つの機能は、バイナリー・フォーマットの ACL をテキスト表示に変換します。 これらの機能は、aclget および acledit コマンドで呼び出されます。
aclx_scan および aclx_scanStr
これらの 2 つの機能は、ACL のテキスト表示をバイナリー・フォーマットに変換します。
aclx_convert
ACL のタイプを別のタイプに変換します。 この機能は、cpmv、または tar のようなコマンドによる暗黙的な変換に使用します。

ACL 変換

ACL 変換を使用することにより、ACL のタイプを別のタイプに変換することができます。 複数の ACL タイプのサポートは、特定の物理ファイルシステムでどの ACL タイプがサポートされているかによって異なります。 すべてのファイルシステムが、すべての ACL タイプをサポートするとは限りません。 例えば、 ファイルシステム 1 が AIXC ACL タイプのみをサポートし、ファイルシステム 2 は AIXC と NFS4 ACL タイプをサポートする場合があります。 2 つのファイルシステム間で AIXC ACL をコピーすることは可能ですが、 ファイルシステム 2 からファイルシステム 1 へ NFS ACL をコピーする場合は、ACL 変換を使用する必要があります。 ACL 変換は、アクセス・コントロール情報をできる限り多く保存します。

注: 変換プロセスは近似であり、 アクセス・コントロール情報が失われる可能性があります。 ACL 変換を計画する場合は、これを考慮に入れてください。
AIX オペレーティング・システムの ACL 変換は、以下のインフラストラクチャーを使用してサポートされます。
ライブラリー・ルーチン
これらのルーチンおよびユーザー・レベルの ACL フレームワークによって、ACL 変換による ACL のタイプから別のタイプへの変換が可能となります。
aclconvert コマンド
このコマンドは ACL を変換します。
aclput および acledit コマンド
これらのコマンドは ACL タイプを変更する場合に使用します。
cp および mv コマンド
これらのコマンドは、複数の ACL タイプを扱う場合に使用可能にされ、必要に応じて、内部 ACL 変換を行います。
backup コマンド
このコマンドは、レガシー・フォーマットのバックアップを行うように要求された場合、 ACL 情報を既知のタイプとフォームに変換します。 ACL をネイティブ・フォーマットで取得するには、-U オプションを指定します。 詳しくは、『backup』を参照してください。
各 ACL タイプは固有であり、アクセス制御マスクの改良は、ACL のタイプによって大きく異なります。 変換アルゴリズムは 近似であり、ACL を手動で変換する場合と同等ではありません。 変換が正確でない場合があります。 例えば、 NFS4 ACL は正確に AIXC ACL に変換できません。その理由は、NFS4 ACL はアクセス・マスクを最大 16 提供しており、AIXC ACL タイプでサポートされていない継承フィーチャーを有しているからです。 アクセス・コントロール情報の紛失を懸念する場合は、 ACL 変換機能ならびにインターフェースを使用しないでください。
注: ACL 変換アルゴリズムは本質的にプロプラエタリーであり、変更される可能性があります。