JavaScript is required to for searching.
ナビゲーションリンクをスキップ
印刷ビューの終了
Oracle Solaris 11 セキュリティーサービス開発ガイド     Oracle Solaris 11 Information Library (日本語)
search filter icon
search icon

ドキュメントの情報

はじめに

1.  Oracle Solaris の開発者向けセキュリティー機能 (概要)

2.  特権付きアプリケーションの開発

特権付きアプリケーション

特権について

管理者が特権を割り当てる方法

特権の実装方法

許可された特権セット

継承可能な特権セット

制限特権セット

実効特権セット

スーパーユーザーモデルと特権モデルの互換性

特権の種類

特権を使用したプログラミング

特権のデータ型

特権インタフェース

setppriv(): 特権設定用

priv_str_to_set(): 特権マッピング用

特権のコーディング例

スーパーユーザーモデルでの特権の囲い込み

最小特権モデルでの特権の囲い込み

特権付きアプリケーション開発のガイドライン

承認について

3.  PAM アプリケーションおよび PAM サービスの記述

4.  GSS-API を使用するアプリケーションの記述

5.  GSS-API クライアント例

6.  GSS-API サーバー例

7.  SASL を使用するアプリケーションの記述

8.  Oracle Solaris 暗号化フレームワークの紹介

9.  ユーザーレベルの暗号化アプリケーションとプロバイダの記述

10.  Oracle Solaris 鍵管理フレームワークの紹介

A.  C ベース の GSS-API プログラム例

B.  GSS-API リファレンス

C.  OID の指定

D.  SASL ソースコード例

E.  SASL リファレンス

用語集

索引

承認について

承認は、/etc/security/auth_attr ファイル内に格納されます。 承認を使用するアプリケーションを開発するには、次の手順に従います。

  1. 次のように getent コマンドを使用して、auth_attr データベース内のエントリをスキャンします。

    % getent auth_attr | sort | more

    getent コマンドは auth_attr データベース内の承認の一覧を取得し、類似した名前の承認をまとめてソートします。 承認は、構成された順序で取得されます。 getent コマンドの使用については、getent(1M) のマニュアルページを参照してください。

  2. プログラム開始時に、chkauthattr(3C) 関数を使って必要な承認の有無を検査します。

    chkauthattr() 関数は、次の場所で順に承認を検索します。

    • policy.conf(4) データベース内の AUTHS_GRANTED キー – AUTHS_GRANTED は、デフォルトで割り当てられた承認を示します。

    • policy.conf(4) データベース内の PROFS_GRANTED キー – PROFS_GRANTED は、デフォルトで割り当てられた権利プロファイルを示します。chkauthattr() は、これらの権利プロファイルに指定された承認が含まれているかどうかを検査します。

    • user_attr(4) データベース – このデータベースには、ユーザーに割り当てられたセキュリティー属性が格納されています。

    • prof_attr(4) データベース – このデータベースには、ユーザーに割り当てられた権利プロファイルが格納されています。

    chkauthattr() 実行時に正しい承認がこれらのどの場所にも見つからなかった場合、そのユーザーはプログラムへのアクセスを拒否されます。 chkauthattr() 関数が Stop プロファイルを検出した場合、AUTHS_GRANTED、PROFS_GRANTED、および /etc/security/policy.conf から検出される承認およびプロファイルは無視されます。 したがって、Stop プロファイルは /etc/security/policy.conf ファイル内の PROFS_GRANTED および AUTHS_GRANTED キーを使用して一覧表示されるプロファイルを無視するために使用できます。

提供されたセキュリティー属性を使用する方法、新しいセキュリティー属性を追加する方法、およびセキュリティー属性をユーザーおよびプロセスに割り当てる方法については、『Oracle Solaris の管理: セキュリティーサービス』の第 9 章「役割に基づくアクセス制御の使用 (タスク)」を参照してください。


注 - ユーザーは auth_attr()exec_attr()、および prof_attr() データベースにエントリを追加できます。 ただし、Oracle Solaris 承認はこれらのデータベース内に保管されません。


例 2-3 承認の検査

次のコードは、chkauthattr() 関数を使ってあるユーザーの承認を検査する方法を示したものです。 この場合、プログラムは solaris.job.admin 承認の有無を検査しています。 このユーザーがこの承認を持っている場合、このユーザーはほかのユーザーのファイルを読み書きできます。 この承認がない場合、このユーザーが操作できるのは、自身が所有するファイルだけになります。

/* Define override privileges */
priv_set_t *override_privs = priv_allocset();

/* Clear privilege set before adding privileges. */
priv_set(PRIV_OFF, PRIV_EFFECTIVE, PRIV_FILE_DAC_READ,
            priv_FILE_DAC_WRITE, NULL);

priv_addset(override_privs, PRIV_FILE_DAC_READ);
priv_addset(override_privs, PRIV_FILE_DAC_WRITE);

if (!chkauthattr("solaris.jobs.admin", username)) {
    /* turn off privileges */
    setppriv(PRIV_OFF, PRIV_EFFECTIVE, override_privs);
}
/* Authorized users continue to run with privileges */
/* Other users can read or write to their own files only */