Solaris のシステム管理 (セキュリティサービス)

第 19 章 役割によるアクセス制御 (手順)

この章では、RBAC 要素を管理するための作業手順について説明します。次に、この章で説明する作業マップを示しています。RBAC の初期設定の作業手順については、RBAC の構成 (作業マップ)を参照してください。RBAC 要素の管理全般については、第 19 章「役割によるアクセス制御 (手順)」を参照してください。

この章では、次のトピックについて説明します。

RBAC に関連する作業は、Solaris 管理コンソールを使用して実行することをお勧めします。RBAC 要素を管理するためのコンソールツールは、ユーザーツールコレクションに含まれています。

ローカルファイルの操作は、Solaris 管理コンソールやほかのコマンド行インタフェースを使用して行うこともできます。Solaris 管理コンソールコマンドを使用してサーバーに接続するときは、認証が要求されます。このため、Solaris 管理コンソールコマンドは、スクリプトでは使用できません。その他のコマンドは、スーパーユーザーまたは同等の役割になることを必要とし、ネームサービスのデータベースには適用できません。


ヒント –

また、コマンド行を使用して RBAC 情報を管理した場合は、編集がただちに有効にならないことがあります。編集を有効にするには、ネームサービスキャッシュデーモン (nscd(1M)) を停止して再起動する必要があります。


RBAC の構成 (作業マップ)

作業 

説明 

参照先 

1. RBAC を計画する

RBAC の概念を理解し、お使いのサイトのセキュリティ要件を調査して、RBAC を運用に統合する方法を計画する 

RBAC の実装を計画する方法

2. Solaris 管理コンソールからユーザーツールを起動する 

すべての RBAC 操作は、ユーザーツールで実行できる 

ユーザーツールコレクションを実行する方法

3. 必要に応じて初期ユーザーをインストールする 

最初の役割に割り当てる 1 人または複数の既存のユーザーが必要である 

ユーザーアカウントツールを使用して初期ユーザーを作成する方法

4. 最初の役割をインストールする 

最初の役割 (通常は Primary Administrator) は、root ユーザーがインストールする必要がある

ユーザーツールコレクションを実行する方法

5. (省略可能) root を役割にする

匿名の root ログインを防ぐために、root を役割にできる

root を役割にする方法

RBAC の計画

RBAC は、組織の情報資源を管理するときに、重要な役割を果たします。RBAC を計画する際には、RBAC の機能と組織のセキュリティ要件を十分に理解しておく必要があります。

RBAC の実装を計画する方法
  1. RBAC の基本概念を理解します。

    第 18 章「役割によるアクセス制御 (概要)」を参照してください。RBAC を使用したシステム管理は、従来の UNIX を使用した場合と大きく異なります。実装を開始する前に、RBAC の概念を理解する必要があります。詳細は、第 20 章「役割によるアクセス制御 (参照)」を参照してください。

  2. セキュリティポリシーを調査します。

    組織のセキュリティポリシーには、システムに対する潜在的な脅威を詳細に記述し、各脅威の危険性の分析結果に応じて適切な対応策を定義する必要があります。RBAC を使用したセキュリティ関連の作業とは切り離して行うことをお勧めします。推奨される役割とその構成をそのままインストールすることもできますが、セキュリティポリシーによっては RBAC の構成のカスタマイズが必要になることがあります。

  3. 組織に必要な RBAC を決定します。

    組織のセキュリティ要件に応じて、さまざまなレベルの RBAC を使用できます。

    • RBAC を使用しない – すべての作業を root ユーザーとして実行できる。この例では、通常のユーザーとしてログインし、コンソールツールを選択するときに、ユーザーとして root を入力する

    • 役割として root を使用する – この方式では、匿名の root ログインを防ぐために、すべてのユーザーが root としてログインできないようにする。代わりに、通常のユーザーとしてログインしてから、root 役割を引き受ける (root を役割にするを参照)

    • 役割を 1 つだけ使用する – この方式では、Primary Administrator 役割だけを追加する。スーパーユーザーモデルと似た方式である

    • 推奨される役割 – 容易に構成可能な 3 つの推奨される役割として、Primary Administrator、System Administrator、および Operator を利用できる。 さまざまな責任レベルの管理者の業務が、推奨される役割と一致している組織の場合は、この方式が適している

    • カスタム役割 – 独自の役割を作成して、組織のセキュリティ要件を満たすことができる。新しい役割は、既存またはカスタマイズした権利プロファイルに基づいて作成できる

  4. 組織に適した推奨される役割を決定します。

    推奨される役割とそのデフォルトの権利プロファイルの機能を確認します。推奨される役割を構成するときは、次の 3 つの権利プロファイルを使用できます。

    • 「Primary Administrator」権利プロファイル – すべての管理タスクを実行できる役割用。ほかのユーザーに権限を与えたり、管理役割に関連付けられた権限を編集したりする。この役割のユーザーは、Primary Administrator 役割を割り当てたり、他のユーザーに権利を与えたりすることができる

    • 「System Administrator」権利プロファイル – セキュリティに関係しない管理タスクを実行できる役割用。たとえば、System Administrator は、新しいユーザーアカウントは追加できるが、パスワードを設定したりほかのユーザーに権利を与えたりすることはできない

    • 「Operator」権利プロファイル – バックアップと復元、プリンタ管理など、単純な管理タスクを実行できる役割用

    これらの権利プロファイルを利用すると、システム管理者は 1 つの権利プロファイルを使って推奨される役割を構成することができます。

    これらの権利プロファイルを詳細に検証するには、権限ツールを使用して内容を表示します。標準的な権利プロファイルの概要については、権利プロファイルの内容 も参照してください。コンソールツールを使用すると、これらの役割と権利プロファイルをカスタマイズして、組織の要件を満たすことができます。

  5. 追加する任意の役割または権利プロファイルが組織に適切であるかどうかを判断します。

    使用するサイトで、アクセスを制限する必要があるアプリケーションを調べます。セキュリティに影響するアプリケーション、サービス拒否が発生する可能性のあるアプリケーション、特別な管理者教育を必要とするアプリケーションには、RBAC を適用することをお勧めします。

    1. 新しい操作に必要なコマンドを決定します。

    2. この操作に適切な権利プロファイルを決定します。

      既存の権利プロファイルがこの操作に割り当てられていないか、または別の権利プロファイルを作成する必要がないかどうかを確認します。

    3. この権利プロファイルに適した役割を決定します。

      この操作の権利プロファイルを既存の役割に割り当てるかどうか、または新しい役割を作成するかどうかを決定します。既存の役割を使用する場合は、この役割を割り当てるユーザーにほかの権利プロファイルが適していないかどうかを確認します。

  6. 役割に割り当てるユーザーを決定します。

    必要な権限だけを割り当てるために、ユーザーの信頼レベルに応じて役割を割り当てます。ユーザーが使用しない操作の権限は割り当てないようにすると、問題が発生する可能性が減少します。

ユーザーツールコレクションを初めて使用する

初期ユーザーをインストールして役割を割り当てるには、最初に通常のユーザーとしてログインします。Solaris 管理コンソールにユーザー自身を認証させるときは、root ユーザーを指定します。

ユーザーツールコレクションを実行する方法
  1. 通常のユーザーとしてログインし、Solaris 管理コンソールを起動します。


    % whoami 
    johnDoe
    % /usr/sadm/bin/smc&
    
  2. 「ユーザーツールコレクション (User Tool Collection)」に移動して、アイコンをクリックします。

    1. ナビゲーション区画の 「管理ツール (Management Tool)」で、「このコンピュータ (This Computer)」というラベルのアイコンを見つけます。

    2. その左にある切り替えアイコンをクリックします。

      切り替えアイコンは、レバーに似ています。レバーが水平の場合、フォルダの内容は表示されていません。レバーが垂直の場合、内容が表示されています。切り替えアイコンをクリックすると、フォルダの表示と非表示が切り替わります。

    3. 「System Configuration」フォルダの横にある切り替えアイコンをクリックして、その内容を表示します。

    4. 「ユーザー (User)」アイコンをクリックして、「ユーザーツールコレクション (User Tool Collection)」を開きます。

      ユーザーログインダイアログボックスが表示されます。

  3. 「ログイン: ユーザー名 (Login:User Name)」ダイアログボックスに、rootroot パスワードを入力します。「了解 (OK)」をクリックします。

    通常は、ここでユーザー名を入力して役割を引き受けます。しかし、最初は役割が存在しないため、root ユーザーを入力する必要があります。「ユーザーツールコレクション (User Tool Collection)」が開きます (次の図を参照)。

    図 19–1 「ユーザーツールコレクション (User Tool Collection)」

    「Management Tools」ウィンドウには、左に「Navigation」区画、右に「Tools」区画、下に「Information」区画と「Context Help」が表示されています。

初期ユーザーの設定

すべてのユーザーが役割に割り当てられ、すでにシステムにインストールされている場合は、この手順を省略して 初期役割の設定 に進みます。

ユーザーアカウントツールを使用して初期ユーザーを作成する方法
  1. ナビゲーション区画または「ユーザーツールコレクション (User Tool Collection)」の表示区画で、ユーザーアカウントツールのアイコンをクリックします。

    ユーザーアカウントツールが起動します。「アクション (Action)」メニューにこのツールのオプションが表示されます。

  2. 「アクション (Action)」メニューから「ユーザーを追加 (Add User)」->「ウィザードを使用 (With Wizard)」を選択します。

    「ユーザーを追加 (Add User)」ウィザードが起動します。このウィザードは、ユーザーの構成に必要な情報を要求するダイアログボックスの集合です。「次へ (Next)」および「戻る (Back)」ボタンを使用して、ダイアログボックスを移動します。「次へ (Next)」ボタンは、すべての必須フィールドに入力するまで有効になりません。最後に、入力したデータを確認するダイアログボックスが表示されます。前のダイアログボックスに戻って入力を変更するか、「完了 (Finish)」をクリックして新しい役割を保存します。

    次の図は、最初に表示される「手順 1: ユーザー名を入力します。(Step 1:Enter a user name)」ダイアログボックスです。

    図 19–2 「ユーザーを追加 (Add User)」ウィザード

    「Add User」ウィザードには、ユーザーを追加する各ステップが左に、入力用のフィールドが右に表示されています。

  3. 最初のユーザー名とその他の識別情報を入力します。

  4. 「手順 2: ユーザー識別番号を入力します。(Step 2: Enter a User Identification Number)」ダイアログボックスで UID を入力します。

    このエントリは、ユーザーの既存の UID と一致している必要があります。

  5. 「手順 3: ユーザーのパスワードを入力します。(Step 3: Enter the User's Password)」ダイアログボックスで、パスワードを設定するかどうかを指定します。

    ユーザー自身のパスワードをこのアカウントに設定する場合は、2 番目のオプションをクリックします。この場合、ユーザー自身のパスワードを入力し、確認を行います。

  6. 「手順 4: ユーザーの一次グループを選択します。(Step 4: Select the User's Primary Group)」ダイアログボックスで、適切なグループを選択します。

  7. 「手順 5: ユーザーのホームディレクトリを作成します。(Step 5: Create the User's Home Directory)」ダイアログボックスで、ホームディレクトリのパスを指定します。

  8. 「手順 6: メールサーバーを指定します。(Step 6: Specify the Mail Server)」ダイアログボックスで、デフォルトのメールサーバーとメールボックスを確認します。

    これらの設定は、「ユーザープロパティ (User Properties)」ダイアログボックスであとで変更することができます。

  9. 「確認します。(Review)」ダイアログボックスで情報を確認します。保存する場合は、「完了 (Finish)」をクリックします。情報を再入力する場合は、「戻る (Back)」をクリックします。

    情報が不足していたり、間違っていた場合は、「戻る (Back)」ボタンを繰り返しクリックして、不正な情報を入力したダイアログボックスを表示します。次に、「次へ (Next)」を繰り返しクリックして、「確認します。(Review)」ダイアログボックスに戻ります。

初期役割の設定

最初に、ユーザーと役割を管理する役割を作成します。通常は、Primary Administrator です。まず、ローカルホストにそのユーザーと役割をインストールします。ネームサービススコープのツールボックスを設定した場合は、そのネームサービスに同じユーザーと役割を作成する必要があります。『Solaris のシステム管理 (基本編)』の「ネームサービス環境で Solaris 管理ツールを使用する (作業マップ)」を参照してください。最初の役割を設定して、ユーザー自身に割り当てたあと、root になる代わりに、役割を引き受けてコンソールツールを実行することができます。

管理役割ツールを使用して最初の役割 (Primary Administrator) を作成する方法

最初の役割をインストールするには、通常のユーザーとしてログインする必要があります。Solaris 管理コンソールにユーザー自身を認証させるには、root ユーザーを指定します。まず、ローカルホストに役割をインストールします。最初の役割を設定して、ユーザー自身に割り当てたら、root としてではなく、設定した役割でコンソールツールを実行することができます。

  1. 「ログイン: ユーザー名 (Login:User Name)」ダイアログボックスに、rootroot パスワードを入力します。「了解 (OK)」をクリックします。

  2. ナビゲーション区画または「ユーザーツールコレクション (User Tool Collection)」の表示区画で、「管理役割 (Administrative Roles)」アイコンをクリックします。

    管理役割ツールが起動します。「アクション (Action)」メニューにこのツールのオプションが表示されます。

  3. 「アクション (Action)」メニューから「管理役割を追加 (Add Administrative)」を選択します。

    「管理役割を追加 (Add Administrative)」ウィザードが起動します。このウィザードは、役割の構成に必要な情報を要求するダイアログボックスの集合です。「次へ (Next)」および「戻る (Back)」ボタンを使用して、ダイアログボックスを移動します。「次へ (Next)」ボタンは、すべての必須フィールドに入力するまで有効になりません。最後に、入力したデータを確認するダイアログボックスが表示されます。前のダイアログボックスに戻って入力を変更するか、「完了 (Finish)」をクリックして新しい役割を保存します。

    次の図は、最初に表示される「手順 1: 役割名を入力します。(Step 1:Enter a Role Name)」ダイアログボックスです。

    図 19–3 「管理役割を追加 (Add Administrative)」ウィザード

    「Add Administrative Role」ウィザードには、左にヘルプ、右に入力用のフィールドが表示されています。

  4. primaryadmin または使用している役割名と、その他の識別情報を入力します。

    役割メーリングリストオプションを選択すると、この役割を持つユーザーの別名を作成できます。

  5. 「手順 2: 役割パスワードを入力します。(Step 2: Enter a Role Password)」ダイアログボックスの「役割パスワード (Role Password)」フィールドに新しい役割のパスワードを入力し、「パスワードを確認 (Confirm Password)」フィールドに再度入力します。

    入力を確認することにより、スペルミスのパスワードが保存されるのを防ぐことができます。

  6. 「手順 3: 役割権利を選択します。(Step 3: Enter Role Rights)」ダイアログボックスで、「Primary Administrator」の権利プロファイルを選択します。

    「有効な権利 (Available Rights)」列 (左側) の Primary Administrator 権利プロファイルをダブルクリックします。「許可された権利 (Granted Rights)」列 (右側) の権利プロファイルが、この役割に割り当てられた権利プロファイルです。この例では、Primary Administrator 権利プロファイルだけが必要です。

  7. 「手順 4: ホームディレクトリを選択します。(Step 4: Select a Home Directory)」ダイアログボックスで、ホームディレクトリのサーバーとパスを指定します。

  8. 「手順 5: この役割にユーザーを割り当てます。(Step 5: Assign Users to This Role)」ダイアログボックスで、Primary Administrator の役割に割り当てるユーザーのログイン名を入力します。

    追加するユーザーは、動作中のネームサービススコープに定義されている必要があります。「手順 1: 役割名を入力します。(Step 1: Enter a Role Name)」ダイアログボックスで役割のメーリングリストオプションを選択した場合、これらのユーザーは Primary Administrator 役割に送信された電子メールを受信します。

  9. 「確認します。(Review)」ダイアログボックスで情報を確認します。保存する場合は、「完了 (Finish)」をクリックします。情報を再入力する場合は、「戻る (Back)」をクリックします。

    情報が不足、あるいは間違っていた場合は、「戻る (Back)」ボタンを繰り返しクリックして、不正な情報を入力したダイアログボックスを表示します。次に、「次へ (Next)」を繰り返しクリックして、「確認します。(Review)」ダイアログボックスに戻ります。

  10. 端末ウィンドウを開いてスーパーユーザーになり、ネームサービスキャッシュデーモンを起動して停止します。

    新しい役割は、ネームサービスキャッシュデーモンを再起動するまで有効になりません。スーパーユーザーで、次のように入力します。


    # /etc/init.d/nscd stop
    # /etc/init.d/nscd start
    

root を役割にする

この手順では、ローカルな有効範囲内の root ユーザーを役割にします。root を役割にすると、そのサーバーに root ユーザーとして直接ログインすることを防ぐことができます。ユーザーはまず、通常のユーザーとしてログインする必要があり、その UID は監査できるようになります。


注意 – 注意 –

root を役割にするときに、root を有効なユーザー、または root に相当する現在の既存の役割に割り当てなかった場合は、すべてのユーザーが root になることができなくなります。


root を役割にする方法

  1. 対象のサーバーにログインします。

  2. スーパーユーザーになります。

  3. /etc/user_attr ファイルを編集します。

    次に、標準的な user_attr ファイルの一部を示します。


    root::::type=normal;auths=solaris.*,solaris.grant;profiles=All
    johnDoe::::type=normal
  4. このファイルにユーザー名があることを確認します。

  5. ユーザー自身のレコードに割り当てられている役割に対して、root を追加します。

    root の役割を、任意の適用可能なユーザーに割り当てます。primaryadmin を最も強力な役割として使用する場合は、root を任意のユーザーに割り当てる必要はありません。


    johnDoe::::type=normal;roles=root
  6. このファイルの root レコードに移動し、type=normaltype=root に変更します。


    root::::type=role;auths=solaris.*,solaris.grant;profiles=All
  7. ファイルを保存します。

RBAC 情報の管理 (作業マップ)

次の作業マップでは、特定の RBAC 操作に必要な情報の入手先を示します。

作業 

説明 

参照先 

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

セキュリティまたはシステム運用に影響するアプリケーションを実行するには、スーパーユーザーになるか、または同等の役割を引き受ける必要がある 

コンソールツールで役割を引き受ける方法

コマンド行で役割を引き受ける方法

役割の作成 

新しい役割 (特権付きアプリケーションを実行するための特殊な ID) を追加する 

管理役割ツールを使用して役割を作成する方法

コマンド行から役割を作成する方法

役割プロパティの変更 

役割 (割り当てられたユーザー、権利プロファイル、および役割に割り当てられた承認) のプロパティを変更する 

管理役割ツールを使用して役割を変更する方法

コマンド行から役割を変更する方法

権利プロファイルの作成または変更 

承認、セキュリティ属性を持つコマンド、および補助権利プロファイルの割り当てなどの権利プロファイルを追加または変更する 

権利ツールを使用して権利プロファイルを作成または変更する方法

コマンド行から権利プロファイルを変更する方法

ユーザーの RBAC プロパティの変更 

ユーザーに割り当てられた役割、権利プロファイル、または承認を変更する 

ユーザーアカウントツールを使用してユーザーの RBAC プロパティを変更する方法

コマンド行から権利プロファイルを変更する方法

レガシーアプリケーションのセキュリティ保護 

レガシーアプリケーションの set ID アクセス権を有効にする。スクリプトでは set ID を有効にしたコマンドを使用できる。必要に応じて、レガシーアプリケーション内で承認を確認できる 

レガシーアプリケーションにセキュリティ属性を追加する方法

スクリプト内のコマンドにセキュリティ属性を追加する方法

スクリプトまたはプログラム内の承認を確認する方法

これらの手順を行なって、役割によるアクセス制御 (RBAC) で使用される要素を管理します。ユーザー管理手順については、『Solaris のシステム管理 (基本編)』の「ユーザーアカウントとグループの管理 (手順)」を参照してください。

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

特権付きアプリケーションを実行するには、まずスーパーユーザーになるか、または同等の役割を引き受ける必要があります。特権付きアプリケーションは通常のユーザーとして実行することもできますが、不注意に実行するとエラーが発生します。できるだけ、通常のユーザーとして実行しないでください。

コマンド行で役割を引き受ける方法
  1. su コマンドを次のように使用します。


    % su my-role
    Password: my-role-password
    #

    su だけを入力すると、スーパーユーザーになります。役割名を指定して su と入力すると、その役割を引き受けます (役割が割り当てられている場合)。適切なパスワードを入力してください。役割になると、コマンド行がその役割のプロファイルシェルに切り替わります。その役割の権利プロファイルに割り当てられたセキュリティ属性でコマンドが実行されるように、プロファイルシェルが変更されます。

  2. シェルにコマンドを入力します。

    コマンドは、割り当てられたセキュリティ属性と setuid または setgid アクセス権で実行されます。

コンソールツールで役割を引き受ける方法
  1. Solaris 管理コンソールを起動します。

    次のいずれかの方式を使用します。

    • コマンド行で smc と入力する

    • 「ツール (Tools)」サブパネルの 「Solaris 管理コンソール (Solaris Management Console)」アイコンをクリックする

    • 「アプリケーションマネージャ (Application Manager)」の「Solaris 管理コンソール (Solaris Management Console)」アイコンをダブルクリックする

    すべての Solaris 管理コンソールツールでは、拡張コンテキストヘルプを使用して、各フィールドの説明を表示できます。また、「ヘルプ (Help)」メニューからさまざまなヘルプトピックにアクセスできます。コンソールを起動するときは、root としてログインしても、通常のユーザーとしてログインしてもかまいません。

  2. 操作に必要なツールボックスを選択します。

    適切な適用範囲のツールまたはコレクションを含むツールボックスに移動し、アイコンをクリックします。スコープには、ファイル (ローカル)、NIS、NIS+、および LDAP があります。適切なツールボックスがナビゲーション区画に表示されていない場合は、「コンソール (Console)」メニューから「ツールボックスを開く (Open Toolbox)」を選択して、関連するツールボックスを読み込みます。

  3. ツールを選択します。

    使用するツールまたはコレクションに移動して、アイコンをクリックします。RBAC 要素を管理するツールは、すべて「ユーザーツールコレクション (User Tool Collection)」にあります。

  4. 「ログイン: ユーザー名 (Login: User Name)」ダイアログボックスでユーザー自身を認証させます。

    次のいずれかを選択します。

    • ユーザー名とパスワードを入力して、通常のユーザーとして役割を引き受ける、または操作する

    • root および root パスワードを入力して、スーパーユーザーとして操作する

    役割を設定していないか、設定されている役割が必要な操作を実行できない場合は、 root としてログインする必要があります。ユーザーが、root または役割が割り当てられていないユーザーとして認証された場合は、ツールがコンソールに読み込まれます。この場合は、手順 6 に進んでください。

  5. 「ログイン: 役割名 (Login: Role)」ダイアログボックスでユーザーを認証させます。

    ダイアログボックスの「役割 (Role)」オプションメニューに、割り当てられる役割が表示されます。役割を選択して、役割のパスワードを入力します。通常のユーザーとして操作している場合は、ユーザー自身のユーザー名とパスワードを入力します。

  6. 実行するツールに移動して、アイコンをクリックします。

役割の作成

役割を作成するには、Primary Administrator 権利プロファイルが割り当てられている役割になるか、root ユーザーとして実行する必要があります。役割の詳細は、RBAC の役割推奨される役割の構成 を参照してください。

管理役割ツールを使用して役割を作成する方法
  1. 管理役割ツールを起動します。

    管理役割ツールを実行して、Solaris 管理コンソールを起動します (コンソールツールで役割を引き受ける方法を参照)。次に、「ユーザーツールコレクション (User Tool Collection)」を開いて、「管理役割 (Administrative Roles)」アイコンをクリックします。

  2. 「管理役割を追加 (Add Administrative)」ウィザードが起動します。

    「アクション (Action)」メニューから「管理役割を追加 (Add Administrative Role)」を選択して、「管理役割を追加 (Add Administrative)」ウィザードを起動します。

  3. 表示されるダイアログボックスのフィールドに入力します。入力が完了したら、「完了 (Finish)」をクリックします。

    「次へ (Next)」および「戻る (Back)」ボタンを使用して、ダイアログボックスを移動します。「次へ (Next)」ボタンは、すべての必須フィールドに入力するまで有効になりません。最後に、入力されたデータを確認するダイアログボックスが表示されます。前のダイアログボックスに戻って入力を変更するか、「完了 (Finish)」をクリックして新しい役割を保存します。表 19–1 に、ダイアログボックスの要約を示します。

  4. 端末ウィンドウを開いてスーパーユーザーになり、ネームサービスキャッシュデーモンを起動して停止します。

    新しい役割は、ネームサービスキャッシュデーモンを再起動するまで有効になりません。スーパーユーザーで、次のように入力します。


    # /etc/init.d/nscd stop
    # /etc/init.d/nscd start
    
表 19–1 管理役割を追加ウィザードのダイアログボックスとフィールド

ダイアログボックス 

フィールド 

フィールドの説明 

手順 1: 役割名を入力します (Step 1: Enter a role name)  

役割名 (Role Name) 

役割の短縮名 

 

役割の正式名 (Full Name) 

正式名 

 

備考欄 (Description) 

役割の説明 

 

役割 ID 番号 (Role ID Number) 

役割の UID。自動的に増分する 

 

役割シェル (Role Shell) 

役割に使用できるプロファイルシェル: Administrator の C シェル、Administrator の Bourne シェル、または Administrator の Korn シェル 

 

役割メーリングリストの作成 (Create a role mailing list) 

この役割に割り当てられているユーザーのメーリングリストを作成する 

手順 2: 役割パスワードを入力します。(Step 2: Enter a role password)  

役割パスワード (Role Password) 

******** 

 

パスワードの確認 (Confirm Password) 

******** 

手順 3: 役割権利を選択します。(Step 3: Select role rights)  

有効な権利 / 許可された権利 (Available Rights / Granted Rights) 

役割の権利プロファイルの割り当てまたは削除を行う 

同一のコマンドを複数回入力しても、エラーにはならない。ただし、権利プロファイルでは、同一のコマンドが複数回発生した場合、最初のコマンドに割り当てられた属性が優先され、後続の同一コマンドはすべて無視される。順番を変更するときは、上矢印または下矢印を使用する 

手順 4: ホームディレクトリを選択します。(Step 4: Select a home directory)  

サーバー (Server) 

ホームディレクトリのサーバー 

 

パス (Path) 

ホームディレクトリのパス 

手順 5: この役割にユーザーを割り当てます。(Step 5: Assign users to this role)  

追加 (Add) 

この役割を引き受けるユーザーを追加する。同じスコープ内でユーザーでなければならない 

 

削除 (Delete) 

この役割が割り当てられているユーザーを削除する 

コマンド行から役割を作成する方法
  1. スーパーユーザーになるか、ほかの役割を作成できる役割を引き受けます。

  2. 次のいずれかの役割の作成方法を選択します。

    • ローカルスコープの役割を作成する場合、roleadd コマンドを使用して、新しいローカル役割とその属性を指定する

    • また同じくローカルスコープの役割を作成する場合、user_attr ファイルを編集して、ユーザーに type=role を追加することもできる

      この方法は、入力ミスが発生しやすいため、緊急時以外はできるだけ使用しない

    • ネームサービスの役割を作成する場合は、smrole コマンドを使用して、新しい役割とその属性を指定する

      このコマンドは、スーパーユーザー、またはその他の役割を作成できる役割による認証を必要とする。smrole コマンドは、すべてのネームサービスに適用でき、Solaris 管理コンソールサーバーのクライアントとして動作する

  3. ネームサービスキャッシュデーモンを起動して停止します。

    新しい役割は、ネームサービスキャッシュデーモンを再起動するまで有効になりません。スーパーユーザーで次のように入力します。


    # /etc/init.d/nscd stop
    # /etc/init.d/nscd start
    

例 19–1 smrole コマンドを使用してカスタムの Operator 役割を作成する

次のコマンドシーケンスは、smrole コマンドを使用して役割を作成します。この例では、新しい Operator 役割が作成され、標準の Operator 権利プロファイルと Media Restore 権利プロファイルが割り当てられます。


% su primaryadmin 
# /usr/sadm/bin/smrole add -H myHost -- -c "Custom Operator" -n oper2 -a johnDoe \
-d /export/home/oper2 -F "Backup/Restore Operator" -p "Operator" -p "Media Restore"
Authenticating as user: primaryadmin

Type /? for help, pressing <enter> accepts the default denoted by [ ]
Please enter a string value for: password :: <primaryadmin パスワードを入力する>

Loading Tool: com.sun.admin.usermgr.cli.role.UserMgrRoleCli from myHost
Login to myHost as user primaryadmin was successful.
Download of com.sun.admin.usermgr.cli.role.UserMgrRoleCli from myHost was successful.

Type /? for help, pressing <enter> accepts the default denoted by [ ]
Please enter a string value for: password ::<oper2 パスワードを入力する>

# /etc/init.d/nscd stop
# /etc/init.d/nscd start

新しく作成した役割およびその他の役割を表示するには、次のように smrole コマンドに list サブコマンドを指定します。


# /usr/sadm/bin/smrole list --
Authenticating as user: primaryadmin

Type /? for help, pressing <enter> accepts the default denoted by [ ]
Please enter a string value for: password :: <primaryadmin パスワードを入力する>

Loading Tool: com.sun.admin.usermgr.cli.role.UserMgrRoleCli from myHost
Login to myHost as user primaryadmin was successful.
Download of com.sun.admin.usermgr.cli.role.UserMgrRoleCli from myHost was successful.
root                    0               Super-User
primaryadmin            100             Most powerful role
sysadmin                101             Performs non-security admin tasks
oper2                   102             Backup/Restore Operator

役割プロパティの変更

役割を変更するには、Primary Administrator 権利プロファイルが割り当てられている役割を引き受ける必要があります。役割が設定されていない場合は、スーパーユーザーとして「ユーザーツールコレクション (User Tool Collection)」を実行する必要があります。

管理役割ツールを使用して役割を変更する方法
  1. 管理役割ツールを起動します。

    管理役割ツールを実行するには、Solaris 管理コンソールを実行する必要があります (コンソールツールで役割を引き受ける方法 を参照)。次に、「ユーザーツールコレクション (User Tool Collection)」を開いて、「管理役割 (Administrative Roles)」アイコンをクリックします。

    管理役割ツールが起動したら、既存の役割のアイコンが表示区画に表示されます。

  2. 変更する役割をクリックして、 「アクション (Action)」メニューから適切な項目を次のように選択します。

    • 役割に割り当てられるユーザーを変更するには、「管理役割を割り当てる (Assign Administrative Role)」を選択する

      「管理役割を割り当てる (Assign Administrative Role)」ダイアログボックスが表示されます。「管理役割を割り当てる (Assign Administrative Role)」ダイアログボックスは、「役割プロパティ (Role Properties)」ダイアログボックスに似ていますが、「ユーザー (Users)」タブだけで構成されます。現在のスコープのユーザーをこの役割に割り当てるときは、「追加 (Add)」フィールドを使用します。ユーザーに割り当てられた役割を削除するときは、「削除 (Delete)」フィールドを使用します。「了解 (OK)」をクリックして、保存します。

    • 役割に割り当てられた権利を変更するときは、「ユーザーへ権利を割り当てる (Assign Rights to Role)」を選択する

      「ユーザーへ権利を割り当てる (Assign Rights to Role)」ダイアログボックスが表示されます。「ユーザーへ権利を割り当てる (Assign Rights to Role)」ダイアログボックスは、「役割プロパティ (Role Properties)」ダイアログボックスに似ていますが、「権利 (Rights)」タブだけで構成されます。「有効な権利 (Available Right)」列と「許可された権利 (Granted Rights)」列を使用して、選択した役割に対して権利プロファイルの追加または削除を行います。「了解 (OK)」をクリックして、保存します。

    • 役割の任意のプロパティを変更するときは、「プロパティ (Properties)」 を選択するか、役割アイコンをダブルクリックする

      「役割プロパティ (Role Properties)」ダイアログボックスが表示され、すべての役割プロパティにアクセスすることができます (次の図と表を参照)。タブを使用して変更する情報に移動し、必要な変更を行なってから、「了解 (OK)」をクリックして保存します。

      図 19–4 「役割プロパティ (Role Properties)」ダイアログボックス

      「Role Properties」ダイアログボックスには、ヘルプ区画と、「General」「Home Directory」「Rights」「Password」「Users」「Group」のタブがあります。

      表 19–2 「役割プロパティ (Role Properties)」の要約

      タブ

      タブの説明 

      基本 (General) 

      役割 ID 情報とデフォルトのログインシェルを指定する 

      パスワード (Password) 

      役割パスワードを指定する 

      ユーザー (Users) 

      役割に割り当てるユーザーを指定する 

      グループ (Group) 

      役割の一次グループと二次グループを設定する。ファイルとディレクトリのアクセスおよび作成に使用する 

      ホームディレクトリ (Home Directory) 

      役割のホームディレクトリ、ホームディレクトリサーバー、自動マウント、およびディレクトリアクセスを指定する 

      権利 (Rights) 

      権利プロファイルを特定の役割に割り当てることができるようにする。割り当てられた権利プロファイルの優先度は、ここで変更できる 

コマンド行から役割を変更する方法
  1. スーパーユーザーになるか、ほかの役割を作成できる役割を引き受けます。

  2. 操作に適切な次のコマンドを使用します。

    • ローカルに定義された役割の属性を変更するときは、rolemod コマンドを使用する

    • ローカルに定義された役割を削除するときは、roledel コマンドを使用する

    • ローカル役割に割り当てられた承認または権利プロファイルを変更するときは、user_attr ファイルを編集する

      この方法は、入力ミスが発生しやすいため、緊急時以外はできるだけ使用しない

    • ネームサービスの役割の属性を変更するときは、smrole コマンドを使用する

      このコマンドは、スーパーユーザーか、ほかの役割を作成できる役割としての認証を必要とする。smrole コマンドは、Solaris 管理コンソールサーバーのクライアントとして動作する

権利プロファイルの作成または変更

権利プロファイルを作成または変更するには、Primary Administrator 権利プロファイルが割り当てられている役割を引き受ける必要があります。役割が設定されていない場合は、スーパーユーザーとしてユーザーツールコレクション を実行する必要があります。権利プロファイルの詳細は、RBAC の役割推奨される役割の構成 を参照してください。

権利ツールを使用して権利プロファイルを作成または変更する方法
  1. 権利ツールを起動します。

    権利ツールを実行するには、Solaris 管理コンソールを起動する必要があります (コンソールツールで役割を引き受ける方法 を参照)。次に、「ユーザーツールコレクション (User Tool Collection)」を開いて、「権利 (Rights)」アイコンをクリックします。

    権利ツールが起動すると、既存の権利プロファイルのアイコンが表示区画に表示されます。

  2. 権利プロファイルの作成または変更に適した次の動作を選択します。

    • 新しい権利プロファイルを作成するときは、「アクション (Action)」メニューから「権利を追加 (Add Rights)」を選択する

    • 既存の権利プロファイルを変更するときは、その権利プロファイルのアイコンをクリックして、「アクション (Action)」メニューから「プロパティ (Properties)」を選択するか、権利プロファイルのアイコンをダブルクリックする

    どちらの場合も 「権利プロパティ (Rights Properties)」に似たダイアログボックスが表示されます。次の図に示す「権利を追加 (Add Right)」ダイアログボックスには、書き込み可能な 「名前 (Name)」フィールドがあります。標準の「権利プロパティ (Rights Properties)」ダイアログボックスの「名前 (Name)」フィールドは、読み取り専用になっています。いったん定義した権利プロファイルは、変更できないためです。

    図 19–5 「権利を追加 (Add Right)」ダイアログボックス

    「Add Right」ダイアログボックスには、左にヘルプ区画、右に「General」「Supplementary Rights」「Commands」「Authorizations」のタブがあります。

  3. 新しい情報を入力します。「了解 (OK)」をクリックして、権利プロファイルを保存します。

    次の表は、「権利プロパティ (Right Properties)」ダイアログボックスのタブとフィールドの一覧です。

    タブ 

    フィールド 

    フィールドの説明 

    基本 (General) 

    名前 (Name) 

    新しい権利プロファイル名 

     

    備考欄 (Descrition) 

    新しい権利プロファイルの説明 

     

    ヘルプファイル名 (Help File Name) 

    新しい権利プロファイルの HTML ヘルプファイル名 

    コマンド (Commands) 

    ディレクトリを追加 (Add Directory) 

    「拒否されたコマンド (Commands Denied)」または「許可されたコマンド (Commands Permitted)」列に存在しないディレクトリを追加するためのダイアログボックスを開く 

     

    拒否されたコマンド (Commands Denied) / 許可されたコマンド (Commands Permitted) 

    権利プロファイルのコマンドの割り当てまたは削除を行う 

     

    セキュリティ属性を設定 (Set Security Attributes)

    コマンドのセキュリティ属性 (実 UID または GID、あるいは実効 UID または GID) の割り当てまたは削除を行うダイアログボックスを開く (図 19–6 を参照)


    注 –

    実 ID ではなく、実効 ID を割り当てることが望ましい。実 ID は、pkgadd などのコマンドで必要な場合にだけ使用する


     

    検索 (Find (command)) 

    2 つのコマンドリストから指定した文字列を検索する 

    承認 (Authorizations) 

    含まれない承認 (Authorizations Excluded) / 含まれる承認 (Authorizations Included) 

    権利プロファイルの承認の割り当てまたは削除を行う 

    補助権利 (Supplementary Rights) 

    含まれない権利 (Rights Excluded) / 含まれる権利 (Rights Included) 

    権利プロファイルの補助権利プロファイルの割り当てまたは削除を行う 

    図 19–6 セキュリティ属性をコマンドに追加する

    「Set Security Attributes」ダイアログボックスには、ヘルプと、権利にコマンドを追加したりコマンド ID を指定したりするためのフィールドがあります。


例 19–2 権利ツールを使用して新しい権利プロファイルを作成する

次の表は、「Restart」と呼ばれる仮想権利プロファイルを作成するときのサンプルデータです。この例の権利プロファイル「Restart」には、サブディレクトリ /etc/init.d のコマンドが割り当てられています。これらのコマンドの実効 UID は 0 です。この権利プロファイルは、/etc/init.d 内のデーモンを停止および起動できるシステム管理者が使用します。

タブ 

フィールド 

例 

基本 (General) 

名前 (Name) 

Restart 

 

備考欄 (Description) 

/etc/init.d 内のデーモンを起動および停止する

 

ヘルプファイル名 (Help File Name) 

Restart.html

コマンド (Commands) 

ディレクトリを追加 (Add Directory) 

「ディレクトリを追加 (Add Directory)」をクリックし、ダイアログボックスに /etc/init.d と入力して、「了解 (OK)」をクリックする

 

拒否されたコマンド (Commands Denied) / 許可されたコマンド (Commands Permitted) 

/etc/init.d を選択し、「追加 (Add)」をクリックして、「許可されたコマンド (Commands Permitted)」列にコマンドを移動する

 

セキュリティ属性を設定 (Set Security Attributes) 

/etc/init.d を選択し、「セキュリティ属性を設定 (Set Security Attributes)」をクリックして、Effective UID = root を設定する (図 19–6 を参照)

 

検索 (Find (command)) 

 

承認 (Authorizations) 

含まれない承認 (Authorizations Excluded) / 含まれる承認 (Authorizations Included) 

 

補助権利 (Supplementary Rights) 

含まれない権利 (Rights Excluded) / 含まれる権利 (Rights Included) 

 


コマンド行から権利プロファイルを変更する方法
  1. スーパーユーザーになるか、Primary Administrator 権利プロファイルを持つ役割を引き受けます。

  2. 操作に適した smprofile のサブコマンドを使用します。

    このコマンドは認証を必要とします。このコマンドは、すべてのネームサービスに適用できます。smprofile コマンドは、Solaris 管理コンソールサーバーのクライアントとして動作します。

    • 新しいプロファイルを追加するときは、 smprofileadd サブコマンドを使用する

    • 既存のプロファイルを変更するときは、smprofilemodify サブコマンドを使用する

ユーザーの RBAC プロパティの変更

ユーザーのプロパティを変更するには、ユーザーツールコレクションをスーパーユーザーとして実行するか、Primary Administrator 権利プロファイルが割り当てられている役割を持つ必要があります。

ユーザーアカウントツールを使用してユーザーの RBAC プロパティを変更する方法
  1. ユーザーアカウントツールを起動します。

    ユーザーアカウントツールを実行するには、Solaris 管理コンソールを起動する必要があります (コンソールツールで役割を引き受ける方法 を参照)。次に、「ユーザーツールコレクション (User Tool Collection)」を開いて、「ユーザーアカウント (User Accounts)」アイコンをクリックします。

    ユーザーアカウントツールが起動すると、既存のユーザーアカウントのアイコンが表示区画に表示されます。

  2. 変更するユーザーアカウントのアイコンをクリックして、「アクション (Action)」メニューから「プロパティ (Properties)」を選択するか、ユーザーアカウントのアイコンをダブルクリックします。

  3. 変更するプロパティのダイアログボックスで、適切なタブを次のように選択します。

    • ユーザーに割り当てられた役割を変更するときは、「役割 (Role)」タブをクリックして、変更する役割を「有効な役割 (Available Roles)」または「割り当てられた役割 (Assigned Roles)」列に移動します。

    • ユーザーに割り当てられた権利プロファイルを変更するときは、「権利 (Rights)」タブをクリックして、変更する権利プロファイルを「有効な権利 (Available Rights)」または「許可された権利 (Assigned Rights)」列に移動します。


      注 –

      権利プロファイルは、できるだけユーザーに直接割り当てないでください。特権付きアプリケーションを実行するときは、ユーザーが役割を引き受けるようにしてください。通常のユーザーが、特権を不正に使用できないようにするためです。


コマンド行からユーザーの RBAC プロパティを変更する方法
  1. スーパーユーザーになるか、ユーザーファイルを変更できる役割を引き受けます。

  2. 次のように適切なコマンドを使用します。

    • ローカルスコープに定義されたユーザーに割り当てられている承認、役割、または権利プロファイルを変更する場合は、 usermod コマンドを使用する

    • また同じくローカルスコープに定義されたユーザーに割り当てられている承認、役割、または権利プロファイルを変更する場合は、user_attr ファイルを編集することもできる

      この方法は、入力ミスが発生しやすいため、緊急時以外はできるだけ使用しない

    • ネームサービスに定義されたユーザーに割り当てられている承認、役割、または権利プロファイルを変更するときは、 smuser コマンドを使用する

      このコマンドは、スーパーユーザー、またはユーザーファイルを変更できる役割による認証を必要とする。smuser コマンドは、すべてのネームサービスに適用でき、Solaris 管理コンソールサーバーのクライアントとして動作する

レガシーアプリケーションのセキュリティ保護

この節では、レガシーアプリケーションのセキュリティを強化する方法について説明します。レガシーアプリケーションを Solaris 管理コンソールに追加するときは、『Solaris のシステム管理 (基本編)』 の「Solaris Management Console にツールを追加する」を参照してください。

レガシーアプリケーションにセキュリティ属性を追加する方法

レガシーアプリケーションにセキュリティ属性を追加するときは、コマンドに追加する場合と同じ方法で追加します。「権利プロパティ (Rights property)」ダイアログボックスの「コマンド (Commands)」タブにある「拒否されたコマンド (Commands Denied)」列に、コマンドまたはそのディレクトリを追加する必要があります。次に、そのコマンドを「許可されたコマンド (Commands Permitted)」列に移動します。

スクリプト内のコマンドにセキュリティ属性を追加する方法

スクリプト内のコマンドに setUID ビットを設定して実行する場合は、セキュリティ属性を同じ権利プロファイル内のそのコマンドに追加します。権利ツールを使用して権利プロファイルを作成または変更する方法を参照してください。

スクリプトまたはプログラム内の承認を確認する方法

承認を必要とするスクリプトを作成するには、auths コマンドに基づいたテストを追加する必要があります (auths(1) のマニュアルページを参照)。たとえば、次の行では、 $1 引数に指定した承認がユーザーに与えられているかどうかをテストします。


if [ `/usr/bin/auths|/usr/xpg4/bin/grep $1` ]; then
        echo Auth granted
else
        echo Auth denied
fi

さらに詳細にテストするには、ワイルドカードを使用してその他の承認を確認する論理を追加する必要があります。たとえば、solaris.admin.usermgr.write 承認がユーザーに与えられているかどうかをテストするには、solaris.admin.usermgr.writesolaris.admin.usermgr.* solaris.admin.*、および solaris.* という文字列を確認する必要があります。

プログラムを作成している場合は、getauthattr() 関数を使用して、承認をテストします。