EN JA
MAC(3)
MAC(3) FreeBSD Library Functions Manual MAC(3)

名称

macMAC セキュリティ API への手引き

ライブラリ

Standard C Library (libc, -lc)

書式

#include < sys/mac.h>

カーネル設定ファイルで:
options MAC

解説

強制的な Access Control ラベルは、自由なアクセス制御を無効にして、オペレーティングシステムオブジェクトの機密性、整合性、と他のセキュリティ属性について記述します。すべてのシステムオブジェクトが、MAC ラベリングをサポートするというわけではありません、そして、MAC ポリシは、管理者によって明白に有効にされなければなりません。 POSIX.1e に基づいて、この API は、検索する、操作する、設定する、およびファイルとプロセスで MAC ラベルとテキストの間を相互に変換するためにルーチンを含んでいます。

MAC ラベルは、MAC ポリシからセキュリティ属性を表す、1 組の (名前、値) から成ります。例えば、このラベルは、2 つのポリシによって定義されたセキュリティラベル、 mac_biba(4)mac_mls(4) を含んでいます:

biba/low,mls/low

さらに、MAC ラベルの構文と意味論は、 maclabel(7) で見つけられます。

アプリケーションは、 mac_t に格納されたラベルで動作しますが、使用するか、または外部記憶装置へのプレゼンテーションの目的のために、この内部形式とテキスト形式の相互に変換することができます。オブジェクトのラベルについて問い合わせるとき、アプリケーションが問いただしたがっているどのポリシを宣言するかを許可して、 mac_t は、 mac_prepare(3) で説明されたインタフェースを使用して、最初に準備されなければなりません。また、アプリケーションの作者は、 mac.conf(5) に宣言されたデフォルトラベル名を当てにすることができます。

mac_t で終了するとき、アプリケーションは、その記憶域を解消するために mac_free(3) を呼び出さなければなりません。

次の関数が定義されています:

mac_is_present()
この関数は、 mac_is_present(3) で説明され、特有のポリシが設定されているかどうかと同様に、アプリケーションが、MAC が設定されるかどうかテストできます。
mac_get_fd(), mac_get_file(), mac_get_link(), mac_get_peer()
この関数は、 mac_get(3) で説明され、ファイル記述子、ファイルとソケットのピアに関連している MAC ラベルを検索します。
mac_get_pid(), mac_get_proc()
この関数は、 mac_get(3) で説明され、プロセスに関連している MAC ラベルを検索します。
mac_set_fd(), mac_set_file(), mac_set_link()
この関数は、 mac_set(3) で説明され、ファイル記述子とファイルに関連している MAC ラベルを設定します。
mac_set_proc()
この関数は、 mac_set(3) で説明され、現在のプロセスに関連している MAC ラベルを設定します。
mac_free()
この関数は、 mac_free(3) で説明され、作業用の MAC ラベル記憶域を解放します。
mac_from_text()
この関数は、 mac_text(3) で説明され、テキスト形式の MAC ラベルを作業用の MAC ラベル記憶域 mac_t に変換します。
mac_prepare(), mac_prepare_file_label(), mac_prepare_ifnet_label(), mac_prepare_process_label(), mac_prepare_type()
この関数は、 mac_prepare(3) で説明され、MAC ラベル操作のための作業用記憶域を割り付けます。 mac_prepare(3) は、呼び出し側で指定されたラベル名に基づくラベルを準備します。他の呼び出しは、 mac.conf(5) で指定されたデフォルト設定を当てにします。
mac_to_text()
この関数は、 mac_text(3) で説明され、 mac_t をテキスト形式の MAC ラベルに変換するために使用されます。

関連ファイル

/etc/mac.conf
mac.conf(5) で説明されている MAC ライブラリ設定ファイル。ポリシ特有の知識なしで、システムオブジェクト上の MAC ラベルを承知しているアプリケーションのためのデフォルトの振る舞いを提供します。

規格

これらの API は、IEEE POSIX.1e 草稿 17 に記述されているように、大まかに POSIX.1e に記述された API に基づいています。しかしながら、POSIX API へのこれらの API の類似点は、 POSIX API が柔軟性があり拡張可能なアクセス制御のために要求されるいくつかの考えを表現することができなかったように、大まかなだけです。

歴史

Mandatory Access Control のサポートは、 TrustedBSD Project の一部として FreeBSD 5.0 で導入されました。

バグ

TrustedBSD MAC Framework と関連ポリシ、インタフェースとアプリケーションは、 FreeBSD の実験的な機能であると考えられます。生産設備を考慮するサイトは、任意の設備プロセスの間を考慮して、これらのサービスの実験的な状態を保持するべきです。また、カーネルフレームワークに関連する事項については mac(9) を参照してください。
August 7, 2009 FreeBSD