JavaScript is required to for searching.
ナビゲーションリンクをスキップ
印刷ビューの終了
Oracle Solaris 10 セキュリティー開発者ガイド     Oracle Solaris 10 1/13 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.  スマートカードフレームワークの使用

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

B.  GSS-API リファレンス

C.  OID の指定

D.  SASL ソースコード例

E.  SASL リファレンス

F.  暗号化プロバイダのパッケージ化と署名

用語集

索引

承認について

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

  1. /etc/security/auth_attr 内で、1 つまたは複数の適切な承認を検索します。

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

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

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

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

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

    chkauthattr() 実行時に正しい承認がこれらのどの場所にも見つからなかった場合、そのユーザーはプログラムへのアクセスを拒否されます。

  3. このアプリケーションで必要な承認を管理者に知らせます。管理者への通知は、マニュアルページやその他の文書を通じて行えます。

例 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 */