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

第 9 章 役割によるアクセス制御の使用 (手順)

この章では、個別の役割を使用することによってスーパーユーザーの機能を分散するための作業手順について説明します。役割が使用できるメカニズムとして、権利プロファイル、承認、および特権があります。この章では、次の作業マップについて説明します。

RBAC の概要については、「役割によるアクセス制御 (概要)」を参照してください。第 10 章役割によるアクセス制御 (参照)にも参考情報が挙げられています。RBAC を使用して、または RBAC を使用しないで特権を使用する方法については、第 11 章特権 (手順)を参照してください。

RBAC の使用 (作業マップ)

RBAC を使用するにあたって、RBAC の計画と構成、および役割を引き受ける方法を知ることが必要です。役割について熟知すると、RBAC をさらにカスタマイズして新しい操作を処理することができます。次の作業マップにこれらの主要な作業を示します。

作業 

説明 

参照先 

RBAC の計画と構成を行います  

使用するサイトで RBAC を構成します。 

「RBAC の構成 (作業マップ)」

役割を使用します 

コマンド行および Solaris 管理コンソールの GUI で役割を引き受けます。 

「役割の使用 (作業マップ)」

RBAC をカスタマイズします 

使用するサイト用に RBAC をカスタマイズします。 

「RBAC の管理(作業マップ)」

RBAC の構成 (作業マップ)

RBAC を効果的に使用するには、計画が必要です。次の作業マップを使用して、サイトでの RBAC の計画と初期実装を行います。

作業 

説明 

参照先 

1. RBAC を計画します  

サイトのセキュリティー要件の調査、およびサイトでの RBAC の使用方法の決定が含まれます。 

「RBAC の実装を計画する方法」

2. Solaris 管理コンソールの使用方法を理解します 

Solaris 管理コンソールについて熟知することが含まれます。 

『Solaris のシステム管理 (基本編)』の第 2 章「Solaris 管理コンソールの操作 (手順)」

3. 最初のユーザーと役割を構成します 

Solaris 管理コンソールで RBAC 構成ツールを使用してユーザーと役割を作成し、作成した役割を作成したユーザーに割り当てます。 

『Solaris のシステム管理 (基本編)』「Solaris 管理ツールを RBAC と組み合わせて使用する (作業マップ)」

4. (省略可能) 役割を引き受けることができるほかのユーザーを作成します 

管理役割を引き受けることができるユーザーが確実に存在するようにします。 

『Solaris のシステム管理 (基本編)』「Solaris 管理ツールを RBAC と組み合わせて使用する (作業マップ)」

5. (推奨) ほかの役割を作成し、ユーザーに割り当てます 

RBAC ツールを使用して特定の管理領域に対する役割を作成し、作成した役割をユーザーに割り当てます。 

「GUI を使用して役割の作成および割り当てを行う方法」

例 9–5

コマンド行を使用して役割を作成し、作成した役割をユーザーに割り当てます 

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

「役割をローカルユーザーに割り当てる方法」

6. (推奨) 役割の動作を監査します 

役割の動作を記録する監査イベントを含む監査クラスを事前に選択します。 

「役割を監査する方法」

7. (省略可能) root ユーザーを役割にします

セキュリティーホールである、匿名の root ログインを防ぎます。

root ユーザーを役割にする方法」

RBAC の構成

RBAC は、次のユーティリティーで構成することができます。

ProcedureRBAC の実装を計画する方法

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

  1. RBAC の基本概念を理解します。

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

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

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

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

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

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

    • 「役割を 1 つだけ使用する」 – この方式では、役割を 1 つ追加します。追加された 1 つの役割には、Primary Administrator 権利プロファイルが割り当てられます。この方式は、役割がスーパーユーザー機能を持つという点で、スーパーユーザーモデルと似ています。ただし、この方式では、役割を引き受けたユーザーを追跡することができます。

    • 「推奨される役割」 – この方式では、Primary Administrator、System Administrator、および Operator の権利プロファイルに基づいた 3 つの役割が作成されます。さまざまな責任レベルの管理者がいる組織の場合は、この方式が適しています。

    • 「カスタム役割」 – 独自の役割を作成して、組織のセキュリティー要件を満たすことができます。新しい役割は、既存またはカスタマイズした権利プロファイルに基づいて作成できます。責務の分離を適用するように権利プロファイルをカスタマイズする方法については、『Oracle Solaris Trusted Extensions 構成ガイド』「Trusted Extensions での役割とユーザーの作成」を参照してください。

    • 「root ユーザーを役割にする」 – この方式では、どのユーザーも root としてログインできないようにします。代わりに、通常のユーザーとしてログインしてから、root 役割を引き受ける必要があります。詳細については、root ユーザーを役割にする方法」を参照してください。

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

    推奨される役割とそのデフォルトの権利プロファイルの機能を確認します。デフォルトの権利プロファイルにより、管理者は単一のプロファイルを使用して推奨される役割を構成することができます。

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

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

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

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

    権利プロファイルの詳細については、次のいずれかを参照してください。

    • /etc/security ディレクトリで、prof_attr データベースおよび exec_attr データベースの内容を参照してください。

    • Solaris 管理コンソールで、権限ツールを使用して権利プロファイルの内容を表示してください。

    • このマニュアルで、一般的な権利プロファイルを要約した 「権利プロファイルの内容」を参照してください。

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

    使用するサイトで、アクセスを制限する必要があるアプリケーションを調べます。セキュリティーに影響するアプリケーション、サービス拒否が発生する可能性のあるアプリケーション、特別な管理者教育を必要とするアプリケーションには、RBAC を適用することをお勧めします。役割や権利プロファイルをカスタマイズして、組織のセキュリティー要件に対応することができます。

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

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

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

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

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

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

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

ProcedureGUI を使用して役割の作成および割り当てを行う方法

新しい役割を作成するには、スーパーユーザーになるか、 Primary Administrator 役割を使用します。この手順では、新しい役割の作成者が Primary Administrator 役割を引き受けています。

始める前に
  1. Solaris 管理コンソールを起動します。


    # /usr/sbin/smc &
    

    ログインの手順については、「Solaris 管理コンソールで役割を引き受ける方法」を参照してください。

  2. 「管理役割 (Administrative Roles)」アイコンをクリックします。

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

  4. 一連のダイアログボックスのフィールドに入力して新しい役割を作成します。

    作成可能な役割については、例 9–1 から例 9–4 を参照してください。


    ヒント –

    Solaris 管理コンソールの各ツールは、ページの下部またはウィンドウパネル左側に情報を表示します。このインタフェースでの作業について情報が必要な場合は、いつでも「ヘルプ (Help)」を選択できます。


  5. 役割をユーザーに割り当てます。


    ヒント –

    役割のプロパティーを入力すると、最後のダイアログボックスで、その役割のユーザーを入力するよう促されます。


  6. 端末ウィンドウで、ネームサービスキャッシュデーモンを再起動します。


    # svcadm restart system/name-service-cache
    

    詳細は、svcadm(1M) および nscd(1M) のマニュアルページを参照してください。


例 9–1 System Administrator 権利プロファイルの役割の作成

この例では、セキュリティーに関係しないシステム管理タスクを新しい役割が行うことができます。役割は、次のパラメータで前述の手順を実行すると作成されます。



例 9–2 Operator 権利プロファイルの役割の作成

Operator 権利プロファイルは、プリンタを管理したりオフラインメディアにシステムをバックアップしたりすることができます。役割を交代で 1 人のユーザーに割り当てたいという場合があります。そのような場合には、「手順 1: 役割名を入力します (Step 1: Enter a Role Name) 」ダイアログボックスで、 役割メーリングリストオプションを選択します。役割は、次のパラメータで前述の手順を実行すると作成されます。



例 9–3 セキュリティー関連の権利プロファイルの役割の作成

デフォルトでは、セキュリティー関連のコマンドと権利を含む権利プロファイルだけが、Primary Administrator プロファイルとなります。Primary Administrator ほどの権限はないが、セキュリティー関連のタスクを処理できる役割を作成する場合には、役割を作成する必要があります。

次の例で、役割はデバイスを保護します。役割は、次のパラメータで前述の手順を実行すると作成されます。

次の例で、役割はネットワーク上のシステムとホストのセキュリティーを保護します。役割は、次のパラメータで前述の手順を実行すると作成されます。



例 9–4 適用範囲が制限された権利プロファイルの役割の作成

多くの権利プロファイルでは、適用範囲に制限があります。この例では、役割の唯一のタスクは DHCP を管理することです。役割は、次のパラメータで前述の手順を実行すると作成されます。



例 9–5 ユーザーの役割の割り当ての変更

この例では、既存のユーザーに役割が追加されます。ユーザーの役割の割り当てを変更するには、Solaris 管理コンソールの「ユーザー」ツールの「ユーザーアカウント (User Accounts) 」アイコンをクリックし、ユーザーをダブルクリックし、オンラインヘルプに従ってユーザーの機能に役割を追加します。


注意事項

役割が持つべき機能を持っていない場合、次の内容を確認します。

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

Solaris 管理コンソールの GUI は、RBAC を管理するための望ましい方法です。GUI の使用については、「GUI を使用して役割の作成および割り当てを行う方法」を参照してください。この手順で説明するように、コマンド行インタフェースを使用することもできます。


注 –

コマンド行インタフェースとグラフィカルユーザーインタフェースを同時に使って、RBAC を管理しないでください。構成に対して矛盾した変更が加えられ、予測していない動作が生じることがあります。両方のツールとも RBAC を管理することができますが、両方を同時に使用することはできません。


始める前に

役割を作成するには、Primary Administrator 権利プロファイルを含む役割を引き受けるか、root ユーザーに切り替える必要があります。

  1. Primary Administrator 役割を引き受けるか、スーパーユーザーになります。

    Primary Administrator 役割には、Primary Administrator プロファイルが含まれます。役割を作成してユーザーに役割を割り当てるには、『Solaris のシステム管理 (基本編)』の第 2 章「Solaris 管理コンソールの操作 (手順)」を参照してください。

  2. 次のコマンドのいずれかを選択して、コマンド行で役割を作成します。

    • ローカルのネームサービスの適用範囲の役割には、roleadd コマンドを使用します。


      注 –

      roleadd コマンドは、Solaris 管理コンソールの GUI やコマンド行インタフェースに比べて制限されています。roleadd コマンドの実行後、usermod コマンドを実行して役割をユーザーに割り当てる必要があります。その後、ユーザーは、「役割をローカルユーザーに割り当てる方法」で説明するように、役割のパスワードを設定する必要があります。



      # roleadd -c comment \
      -g group -m homedir -u UID -s shell \
      -P profile rolename
      
      -c comment

      rolename について説明するコメントです。

      -g group

      rolename に対するグループの割り当てです。

      -m homedir

      rolename のホームディレクトリへのパスです。

      -u UID

      rolename の UID です。

      -s shell

      rolename のログインシェルです。このシェルはプロファイルシェルである必要があります。

      -P profile

      rolename の 1 つまたは複数の権利プロファイルです。

      rolename

      新しいローカル役割の名前です。

    • smrole add コマンドを使用します。

      このコマンドは、NIS、NIS+、LDAP などの分散ネームサービスで役割を作成します。Solaris 管理コンソールサーバーのクライアントとして動作します。


      $ /usr/sadm/bin/smrole -D domain-name \ 
      -r admin-role -l <Type admin-role password> \
      add -- -n rolename -a rolename -d directory\
      -F full-description -p profile
      
      -D domain-name

      管理対象のドメインの名前です。

      -r admin-role

      役割を変更できる管理役割の名前です。管理役割は solaris.role.assign 承認を得る必要があります。引き受けた役割を変更する場合、役割は solaris.role.delegate 承認を得る必要があります。

      -l

      admin-role のパスワードに対するプロンプトです。

      --

      認証オプションとサブコマンドオプションの間に必要な区切り文字です。

      -n rolename

      新しい役割の名前です。

      -c comment

      役割の機能を説明するコメントです。

      -a username

      rolename を引き受けることができるユーザーの名前です。

      -d directory

      rolename のホームディレクトリです。

      -F full-description

      rolename の詳細です。この説明は Solaris 管理コンソールの GUI に表示されます。

      -p profile

      rolename の機能に含まれる権利プロファイルです。このオプションには、役割に対する管理機能を備えたコマンドが用意されています。複数の -p profile オプションを指定することができます。

  3. 変更を有効にするには、「役割をローカルユーザーに割り当てる方法」を参照してください。


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

smrole コマンドは、ネームサービスで新しい役割とその属性を指定します。次の例では、Primary Administrator が Operator 役割の新しいバージョンを作成します。役割には、標準的な Operator 権利プロファイルのほか、Media Restore 権利プロファイルが含まれます。コマンドによって、新しい役割のパスワードを入力するよう促されます。


% su - primaryadm
Password: <Type primaryadm password> 
$ /usr/sadm/bin/smrole add -H myHost -- -c "Backup and Restore Operator" \
-n operadm2 -a janedoe -d /export/home/operadm \
-F "Backup/Restore Operator" -p "Operator" -p "Media Restore"
Authenticating as user: primaryadm

Type /? for help, pressing <enter> accepts the default denoted by [ ]
Please enter a string value for: password :: <Type primaryadm password>

Loading Tool: com.sun.admin.usermgr.cli.role.UserMgrRoleCli from myHost
Login to myHost as user primaryadm 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 ::<Type operadm2 password>

$ svcadm restart system/name-service-cache

list サブコマンドを持つ smrole コマンドは、新しい役割を表示するのに使用されます。


$ /usr/sadm/bin/smrole list --
Authenticating as user: primaryadm

Type /? for help, pressing <enter> accepts the default denoted by [ ]
Please enter a string value for: password :: <Type  primaryadm password>

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

Procedure役割をローカルユーザーに割り当てる方法

この手順では、ローカル役割をローカルユーザーに割り当て、ネームキャッシュデーモンを再起動したあと、ユーザーが役割を引き受ける方法を示します。

分散ネームサービスで役割をユーザーに割り当てる方法については、「コマンド行から役割を作成する方法」および 「役割のプロパティーを変更する方法」を参照してください。

始める前に

ローカル役割は追加済みです (「コマンド行から役割を作成する方法」を参照)。Primary Administrator 権利プロファイルを含む役割を引き受けるか、root ユーザーに切り替える必要があります。

  1. 役割をローカルユーザーに割り当てます。

    roleadd コマンドによってローカル役割を追加した場合、この手順が必要です。smrole コマンドと Solaris 管理コンソールを使用して役割を作成したときは、この手順は省略可能です。


    # usermod -u UID -R rolename login-name
    
    -u UID

    ユーザーの UID です。

    -R rolename

    ユーザーに割り当てられる役割です。

    login-name

    ユーザーのログイン名です。

  2. 変更を有効にするには、ネームサービスキャッシュデーモンを再起動します。


    # svcadm restart system/name-service-cache
    

    Solaris 管理コンソールのインタフェースで役割を追加した場合は、「役割の使用 (作業マップ)」 に進んでください。そのほかの場合は、次の手順に進みます。

  3. (省略可能) 役割アカウントのロックを解除するには、ユーザーがパスワードを作成する必要があります。

    roleadd コマンドによってローカル役割を追加した場合、この手順が必要です。


    % su - rolename
    Password: <Type rolename password>
    Confirm Password: <Retype rolename password>
    $

例 9–7 コマンド行からのローカル役割の作成と割り当て

この例では、Solaris の暗号化フレームワークを管理するための役割が作成されます。Crypto Management 権利プロファイルには、ローカルシステムでハードウェアおよびソフトウェアの暗号化サービスを管理する cryptoadm コマンドが含まれます。


# roleadd -c "Cryptographic Services manager" \
-g 14 -m /export/home/cryptoadm -u 104 -s pfksh \
-P "Crypto Management" cryptomgt
# usermod -u 1111 -R cryptomgt
# svcadm restart system/name-service-cache
% su - cryptomgt
Password: <Type cryptomgt password>
Confirm Password: <Retype cryptomgt password>
$ /usr/ucb/whoami
cryptomgt
$

Solaris の暗号化フレームワークの詳細については、第 13 章Solaris の暗号化フレームワーク (概要)を参照してください。フレームワークの管理方法については、「暗号化フレームワークの管理 (作業マップ)」を参照してください。


Procedure役割を監査する方法

役割が行う動作を監査することができます。監査記録に含まれるのは、役割を引き受けたユーザーのログイン名、役割名、および役割が行った動作です。6180:AUE_prof_cmd:profile command:ua,as 監査イベントによって、情報が収集されます。as クラスまたは ua クラスを事前に選択することにより、役割の動作を監査することができます。

  1. 監査を計画し、構成ファイルを編集します。

    詳細については、「Solaris 監査 (作業マップ)」を参照してください。

  2. audit_control ファイルの flags 行に ua クラスまたは as クラスを含めます。


    ## audit_control file
    flags:lo,as
    naflags:lo
    plugin:name=audit_binfile.so; p_dir=/var/audit

    ua クラスおよび as クラスには、ほかの監査イベントが含まれます。クラスに含まれる監査イベントについては、audit_event ファイルを参照してください。bsmrecord コマンドを使用することもできます (例 30–27 参照)。

  3. 監査サービスの構成が終了したら、監査を有効にします。

    詳細については、「監査サービスの構成と有効化 (手順)」を参照してください。

Procedureroot ユーザーを役割にする方法

この手順では、ログインユーザーから役割へ root を変更する方法を示します。この手順を完了すると、シングルユーザーモード以外では、root としてシステムに直接ログインできなくなります。root 役割が割り当てられていることと、su コマンドによって root になることが必要です。

root ユーザーを役割に変更することにより、匿名の root ログインを防ぎます。ユーザーは、ログインroot 役割を引き受ける必要があるため、ユーザーのログイン ID が監査サービスに提供され、sulog ファイルに含められます。

この手順では、ローカルユーザーを作成し、このユーザーに root 役割を割り当てます。ユーザーがこの役割を引き受けることを防ぐには、例 9–8 を参照してください。

始める前に

root として直接ログインすると、この手順は実行できません。自分のユーザー名でログイン後、su コマンドによって root になる必要があります。

  1. 通常のユーザーとして、対象のシステムにログインします。

  2. Primary Administrator 役割を引き受けるか、スーパーユーザーになります。

    Primary Administrator 役割には、Primary Administrator プロファイルが含まれます。役割の作成と作成した役割のユーザーへの割り当てについては、『Solaris のシステム管理 (基本編)』「Solaris 管理ツールを RBAC と組み合わせて使用する (作業マップ)」を参照してください。

  3. root 役割を引き受けることができるローカルユーザーを作成します。

    安全のために、少なくとも 1 人のローカルユーザーを root 役割に割り当ててください。


    $ useradd -c comment -u uid -d homedir username
    
    -c comment

    ユーザーについて説明するコメントです。

    -d homedir

    ユーザーのホームディレクトリです。このディレクトリはローカルシステム上にあります。

    -u uid

    ユーザーの識別番号です。

    username

    新しいローカルユーザーの名前です。


    # useradd -c "JDoe's local account" -u 123 -d /export/home1 jdoe-local
    
  4. ユーザーにパスワードを与えます。


    # passwd -r files jdoe-local
    New Password:    <Type password>
    Re-enter new Password: <Retype password>
    passwd: password successfully changed for jdoe-local
    #
  5. root としてログインしていないことを確認します。


    # who
    jdoe    console      May 24 13:51    (:0)
    jdoe    pts/5        May 24 13:51    (:0.0)
    jdoe    pts/4        May 24 13:51    (:0.0)
    jdoe    pts/10       May 24 13:51    (:0.0)
  6. root ユーザーを役割に変更します。


    # usermod -K type=role root
    
  7. root が役割であることを確認します。

    user_attr ファイルの root エントリは、次のようになります。


    # grep root /etc/user_attr
    root::::type=role;auths=solaris.*,solaris.grant;profiles=...
  8. root 役割を自分のローカルアカウントに割り当てます。


    # usermod -R root jdoe-local
    

    注意 – 注意 –

    root 役割をユーザーに割り当てないと、シングルユーザーモード以外では誰もスーパーユーザーになれなくなります。シングルユーザーモードに入るには、root パスワードを入力する必要があります。


  9. 失敗した場合に返されるようにネームサービスを構成します。

    1. 新しい端末ウィンドウを開き、root 役割を引き受けます。


      % whoami
      jdoe
      % su - jdoe-local
      Enter password:   <Type jdoe-local password>
      % roles
      root
      % su - root
      Enter password:   <Type root password>
      #
    2. nsswitch.conf ファイルを編集します。

      たとえば、nsswitch.conf ファイルの次のエントリによって、ネームサービスを返すことができます。


      passwd:  files nis [TRYAGAIN=0 UNAVAIL=return NOTFOUND=return]
      group:  files nis [TRYAGAIN=0 UNAVAIL=return NOTFOUND=return]
  10. (省略可能) root 役割をネームサービスで選択されたユーザーアカウントに割り当てます。

    この手順については、「ユーザーの RBAC プロパティーを変更する方法」を参照してください。


例 9–8 root 役割がシステムの構成に使用されることを防ぐ

この例では、システムの構成にはいくつかの個別の役割を使用するように、サイトのセキュリティーポリシーで要求します。これらの個別の役割はすでに作成され、テストされています。root アカウントがシステムの構成に使用されることを防ぐために、セキュリティー管理者は root を役割に変更し、ただしその役割を割り当てないようにします。シングルユーザーモードでシステムに入ることができるように、root 役割のパスワードは維持します。

管理者はまず、root が役割として割り当て済みでないことを確認します。


% whoami
jdoe-local
% su - root
Password: a!2@3#4$5%6^7
# grep roles /etc/user_attr
jdoe-local::::type=normal;roles=secadmin
kdoe-local::::type=normal;roles=sysadmin

引き続き root アカウントで、root を役割に変更します。


# usermod -K type=role root

次に、user_attr ファイル内の root エントリの変更内容を確認します。


# grep root /etc/user_attr
root::::type=role;auths=solaris.*,solaris.grant;profiles=...


例 9–9 root 役割を変更して root ユーザーに戻す

この例では、管理者はシステムの使用を停止し、スーパーユーザーとしてデスクトップにログインします。システムはすでにネットワークから削除されています。

管理者はまず、root 役割を引き受け、root 役割の割り当てをすべて削除します。


% whoami
jdoe-local
% su - root
Password: a!2@3#4$5%6^7
# grep roles /etc/user_attr
jdoe-local::::type=normal;roles=root
kdoe-local::::type=normal;roles=root
# usermod -R "" jdoe-local
# usermod -R "" kdoe-local
# grep roles /etc/user_attr
#

引き続き root 役割で、root をユーザーに変更します。


# rolemod -K type=normal root

次に、user_attr ファイル内の root エントリの変更内容を確認します。


# grep root /etc/user_attr
root::::type=normal;auths=solaris.*,solaris.grant;profiles=...

注意事項

デスクトップ環境では、root が役割の場合、root として直接ログインすることはできません。このシステム上で root が役割になっていることを示す診断メッセージが表示されます。root 役割を引き受けることのできるローカルアカウントがない場合は、ローカルアカウントを作成します。root としてシングルユーザーモードでシステムにログインし、ローカルユーザーアカウントを作成し、この新しいアカウントに root 役割を割り当てます。次に、この新しいユーザーでログインし、root 役割を引き受けます。

root ユーザーを役割に変更し、次の割り当てのいずれかを実行できない場合、スーパーユーザーになることはできません。

役割の使用 (作業マップ)

次の作業マップは、役割が割り当てられたあとにその役割を使用する手順を示しています。

作業 

説明 

参照先 

Solaris 管理コンソールを使用します 

自分を役割として認証して Solaris 管理コンソールで管理タスクを実行します。 

「Solaris 管理コンソールで役割を引き受ける方法」

端末ウィンドウで役割を引き受けます 

プロファイルシェルでコマンド行の管理タスクを実行します。 

「端末ウィンドウで役割を引き受ける方法」

役割の使用

役割は、Solaris のデフォルトの権利プロファイルで設定し、ユーザーに割り当てると、使用できるようになります。役割は、コマンド行で引き受けることができます。Solaris 管理コンソールで、役割は、ローカルおよびネットワーク越しにシステムを管理するために使用することもできます。

Procedure端末ウィンドウで役割を引き受ける方法

始める前に

役割がすでに割り当てられている必要があります。そしてその情報でネームサービスを更新する必要があります。

  1. 端末ウィンドウで、引き受けることのできる役割を判断します。


    % roles
    Comma-separated list of role names is displayed
    
  2. su コマンドを使用して役割を引き受けます。


    % su - rolename
    Password: <Type rolename password>
    $

    su - rolename コマンドを実行すると、シェルがその役割のプロファイルシェルに変わります。プロファイルシェルは、セキュリティー属性 (承認、特権、および set ID ビット) を認識します。

  3. 役割になっていることを確認します。


    $ /usr/ucb/whoami
    rolename
    

    端末ウィンドウで役割のタスクを実行できるようになりました。

  4. (省略可能) 自分の役割の機能を表示します。

    この手順については、「役割が実行可能な特権付きコマンドを判断する方法」を参照してください。


例 9–10 Primary Administrator 役割を引き受ける

次の例で、ユーザーは Primary Administrator の役割を引き受けます。デフォルトの構成では、この役割はスーパーユーザーと同等です。その後、役割は、その役割のプロファイルシェルに入力されるどのコマンドでも利用可能な特権を確認します。


% roles
sysadmin,oper,primaryadm
% su - primaryadm
Password: <Type primaryadm password>
$ /usr/ucb/whoami Prompt has changed to role prompt
primaryadm
$ ppriv $$
1200:   pfksh
flags = <none>
        E (Effective): all
        I (Inheritable): basic
        P (Permitted): all
        L (Limit): all

特権の詳細については、「特権 (概要)」を参照してください。



例 9–11 root 役割を引き受ける

次の例で、ユーザーは root 役割を引き受けます。root 役割は root ユーザーを役割にする方法」で作成されたものです。


% roles
root
% su - root
Password: <Type root password>
# /usr/ucb/whoami Prompt has changed to role prompt
root
$ ppriv $$
1200:   pfksh
flags = <none>
        E: all
        I: basic
        P: all
        L: all

特権の詳細については、「特権 (概要)」を参照してください。



例 9–12 System Administrator 役割を引き受ける

次の例で、ユーザーは System Administrator の役割を引き受けます。Primary Administrator 役割とは対照的に、System Administrator は、効果的に組み合わされた特権の基本セットを備えています。


% roles
sysadmin,oper,primaryadm
% su - sysadmin
Password: <Type sysadmin password>
$ /usr/ucb/whoami Prompt has changed to role prompt
sysadmin
$ ppriv $$
1200:   pfksh
flags = <none>
        E: basic
        I: basic
        P: basic
        L: all

特権の詳細については、「特権 (概要)」を参照してください。役割の機能の簡単な説明については、「System Administrator 権利プロファイル」を参照してください。


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

Solaris 管理コンソールの GUI で情報を変更するには、管理機能が必要です。役割によって、管理機能が与えられます。情報を表示する場合は、solaris.admin.usermgr.read 承認が必要です。Basic Solaris User 権利プロファイルには、この承認が含まれます。

始める前に

ユーザーのプロパティーを変更できる管理役割がすでに割り当てられている必要があります。たとえば、Primary Administrator 役割は、ユーザーまたは役割のプロパティーを変更できます。

  1. Solaris 管理コンソールを起動します。


    % /usr/sbin/smc &
    

    詳細については、『Solaris のシステム管理 (基本編)』「Solaris 管理ツールを RBAC と組み合わせて使用する (作業マップ)」を参照してください。

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

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

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

    ツールまたはコレクションに移動して、アイコンをクリックします。RBAC 要素を管理するツールは、「ユーザー」ツールにあります (次の図を参照)。

    「Management Tools」ウィンドウには、左に「Navigation」区画、右に「Tools」区画、下に「Information」区画と「Context Help」が表示されています。
  4. 「ログイン: ユーザー名 (Login: User Name)」ダイアログボックスで、ユーザー名とパスワードを 入力します。

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

    ダイアログボックスの「役割 (Role)」オプションメニューに、割り当てられる役割が表示されます。役割を選択して、役割のパスワードを入力します。

RBAC の管理(作業マップ)

次の作業マップは、役割によるアクセス制御 (RBAC) の初期実装後、RBAC をカスタマイズする手順を示しています。

作業 

説明 

参照先 

役割のパスワードを変更します 

承認されたユーザーまたは役割で、別の役割のパスワードを変更します。 

「役割のパスワードを変更する方法」

役割のプロパティーを変更します 

役割の機能 (特権、特権付きコマンド、プロファイル、承認) を変更します。 

「役割のプロパティーを変更する方法」

権利プロファイルを作成または変更します 

権利プロファイルを作成します。あるいは、権利プロファイルの承認、特権付きコマンド、または補助権利プロファイルを変更します。 

「権利プロファイルを作成または変更する方法」

ユーザーの管理機能を変更します 

役割、権利プロファイル、承認、または特権を通常のユーザーに追加します。 

「ユーザーの RBAC プロパティーを変更する方法」

レガシーアプリケーションをセキュリティー保護します 

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

「RBAC プロパティーをレガシーアプリケーションに追加する方法」

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

RBAC の管理

Solaris 管理コンソールの GUI は、RBAC を管理するための望ましい方法です。


注 –

コマンド行インタフェースとグラフィカルユーザーインタフェースを同時に使って、RBAC を管理しないでください。構成に対して矛盾した変更が加えられ、予測していない動作が生じることがあります。両方のツールとも RBAC を管理することができますが、両方を同時に使用することはできません。


Procedure役割のパスワードを変更する方法

始める前に

User Security プロファイルを含んだ役割を引き受けているか、スーパーユーザーに切り替えている必要があります。ある役割のパスワードを変更するには、別の役割を使用する必要があります。使用している役割自体のパスワードを変更することはできません。

  1. 次のいずれかの方法で、役割のパスワードを変更します。

    • スーパーユーザーとして、または User Security 権利プロファイルを含んだ役割で、passwd コマンドを実行します。


      $ passwd  -r naming-service target-rolename
      
      -r naming-service

      パスワードの変更を filesnisnisplus、または ldap のいずれかのリポジトリに適用します。リポジトリを指定しない場合は、files のパスワードが変更されます。

      target-rolename

      変更する既存の役割の名前です。

      コマンドオプションの詳細については、passwd(1) のマニュアルページを参照してください。

    • Solaris 管理コンソールでパスワードを変更します。

      コンソールの起動については、「Solaris 管理コンソールで役割を引き受ける方法」を参照してください。

      1. スーパーユーザーとして、または User Security 権利プロファイルを含んだ役割で、コンソールにログインします。

        対象の役割ではログインできません。

      2. 適切な適用範囲を選択します。

        適用範囲として Files を選択すると、ローカルシステム上の役割のパスワードが変更されます。適用範囲として LDAP を選択すると、LDAP ネームサービス内の役割のパスワードが変更されます。

      3. 「管理役割 (Administrative Roles)」に移動し、左側の区画の指示に従って操作します。

        詳細は、オンラインヘルプを参照してください。

    • スーパーユーザーとして、または User Security 権利プロファイルを含んだ役割で、smrole コマンドを modify サブコマンドとともに実行します。

      このコマンドは、Solaris 管理コンソールサーバーのクライアントとして動作します。


      $ /usr/sadm/bin/smrole -D domain-name -r admin-role -l <Type admin-role password> \
      modify -- -n target-rolename  -P password
      
      -D domain-name

      管理対象のドメインの名前です。

      -r admin-role

      対象の役割を変更できる管理役割の名前です。管理役割は solaris.admin.usermgr.pswd 承認を得る必要があります。管理役割と対象の役割は同じではいけません。

      -l

      admin-role のパスワードに対するプロンプトです。

      --

      認証オプションとサブコマンドオプションの間に必要な区切り文字です。

      -n target-rolename

      対象の役割の名前です。

      -P password

      target-rolename の新しいパスワードです。

      コマンドオプションの一覧については、smrole(1M) のマニュアルページを参照してください。


例 9–13 passwd コマンドによるローカル役割のパスワードの変更

この例では、スーパーユーザーがローカルの operadm 役割のパスワードを変更します。


# passwd -r files  operadm
New password: Type new password
Re-enter new password: Retype new password


例 9–14 LDAP リポジトリ内の役割のパスワードを変更する

この例では、Primary Administrator 役割が LDAP ディレクトリサービス内の operadm 役割のパスワードを変更します。


$ passwd -r ldap operadm
New password: Type new password
Re-enter new password: Retype new password


例 9–15 smrole modify コマンドによる役割のパスワードの変更

この例では、管理者が Solaris 管理コンソールサーバーに接続し、NIS ドメイン内の operadm のパスワードを変更します。管理者がパスワードを指定せずに Return キーを押すと、「New Password:」プロンプトが表示されます。


$ /usr/sadm/bin/smrole -D nis:/examplehost/example.domain \
-r primaryadm -l <Type primaryadm password> \
modify -- -n operadm -P Press the Return key
New Password: a!2@3#4$5%6*7
$

Procedure役割のプロパティーを変更する方法

始める前に

Primary Administrator 権利プロファイルを含む役割を引き受けるか、root ユーザーに切り替えて役割のプロパティーを変更する必要があります。役割のプロパティーには、パスワード、権利プロファイル、および承認が含まれます。


注 –

役割のパスワードプロパティーを変更する方法については、「役割のパスワードを変更する方法」を参照してください。


  1. 次のいずれかの方法で、役割のプロパティーを変更します。

    • Solaris 管理コンソールの「ユーザー」ツールを使用します。

      コンソールの起動については、「Solaris 管理コンソールで役割を引き受ける方法」を参照してください。左側の区画の指示に従って、管理役割の役割を変更します。詳細は、オンラインヘルプを参照してください。

    • rolemod コマンドを使用します。

      このコマンドは、ローカルのネームサービスで定義される役割の属性を変更します。


      $ rolemod -c comment -P profile-list rolename
      
      -c comment

      役割の機能を説明する新しいコメントです。

      -P profile-list

      役割に含まれるプロファイルのリストです。このリストでプロファイルの現在のリストが置き換えられます。

      rolename

      変更する既存のローカル役割の名前です。

      コマンドオプションの詳細については、rolemod(1M) のマニュアルページを参照してください。

    • modify サブコマンドを持つ smrole コマンドを使用します。

      このコマンドは、NIS、NIS+、LDAP などの分散ネームサービスで役割の属性を変更します。Solaris 管理コンソールサーバーのクライアントとして動作します。


      $ /usr/sadm/bin/smrole -D domain-name \ 
      -r admin-role -l <Type admin-role password> \
      modify -- -n rolename  -r username -u username
      
      -D domain-name

      管理対象のドメインの名前です。

      -r admin-role

      役割を変更できる管理役割の名前です。管理役割は solaris.role.assign 承認を得る必要があります。引き受けた役割を変更する場合、役割は solaris.role.delegate 承認を得る必要があります。

      -l

      admin-role のパスワードに対するプロンプトです。

      --

      認証オプションとサブコマンドオプションの間に必要な区切り文字です。

      -n rolename

      新しい役割の名前です。

      -r username

      rolename を引き受けることができなくなったユーザーの名前です。

      -u username

      rolename を引き受けることができるようになったユーザーの名前です。

      コマンドオプションの詳細については、smrole(1M) のマニュアルページを参照してください。


例 9–16 rolemod コマンドによるローカル役割のプロパティーの変更

この例では、Media Restore 権利プロファイルを含むように operadm 役割を変更します。


$ rolemod -c "Handles printers, backup, AND restore" \
-P "Printer Management,Media Backup,Media Restore,All" operadm

これらの権利プロファイルは、policy.conf ファイルを介して与えられたプロファイルに追加されます。



例 9–17 smrole modify コマンドによるローカル役割のプロパティーの変更

次の例では、Media Restore 権利プロファイルを追加するように operadm 役割を変更します。


$ /usr/sadm/bin/smrole -r primaryadm -l <Type primaryadm password> \
modify -- -n operadm -c "Handles printers, backup, AND restore" \
-p "Media Restore"


例 9–18 smrole modify コマンドによるドメインの役割の変更

次の例では、clockmgr 役割を変更します。ID が108の NIS ユーザーは役割を引き受けることができなくなります。ID が 110 の NIS ユーザーは、clockmgr の役割を引き受けることができます。


$ /usr/sadm/bin/smrole -D nis:/examplehost/example.domain \
-r primaryadm -l <Type primaryadm password> \
modify -- -n clockmgr -r 108 -u 110

Procedure権利プロファイルを作成または変更する方法

権利プロファイルは、役割のプロパティーです。prof_attr データベースに必要な権利プロファイルが含まれていないときには、権利プロファイルを作成または変更してください。権利プロファイルの詳細については、「RBAC の権利プロファイル」を参照してください。

始める前に

権利プロファイルを作成または変更するには、Primary Administrator の役割を引き受けているか、スーパーユーザーに切り替えている必要があります。

  1. 次のいずれかの方法で、権利プロファイルを作成または変更します。

    • Solaris 管理コンソールの「ユーザー」ツールを使用します。

      コンソールの起動については、「Solaris 管理コンソールで役割を引き受ける方法」を参照してください。左側の区画の指示に従って、「権利」の権利プロファイルを作成または変更します。詳細は、オンラインヘルプを参照してください。

    • smprofile コマンドを使用します。

      このコマンドによって、権利プロファイルの追加、変更、一覧表示、または削除を行うことができます。このコマンドは、ファイル、および NIS、NIS+、LDAP などの分散ネームサービスで機能します。smprofile コマンドは、Solaris 管理コンソールサーバーのクライアントとして動作します。


      $ /usr/sadm/bin/smprofile -D domain-name \ 
      -r admin-role -l <Type admin-role password> \
      add | modify -- -n profile-name \
      -d description  -m help-file -p supplementary-profile
      
      -D domain-name

      管理対象のドメインの名前です。

      -r admin-role

      役割を変更できる管理役割の名前です。管理役割は solaris.role.assign 承認を得る必要があります。引き受けた役割を変更する場合、役割は solaris.role.delegate 承認を得る必要があります。

      -l

      admin-role のパスワードに対するプロンプトです。

      --

      認証オプションとサブコマンドオプションの間に必要な区切り文字です。

      -n profile-name

      新しいプロファイルの名前です。

      -d description

      プロファイルの簡単な説明です。

      -m help-file

      作成した /usr/lib/help/profiles/locale/C ディレクトリに配置した HTML ヘルプファイルの名前です。

      -p supplementary-profile

      この権利プロファイルに含まれる既存の権利プロファイルの名前です。複数の -p supplementary-profile のオプションを指定することができます。

      コマンドオプションの詳細については、smprofile(1M) のマニュアルページを参照してください。


例 9–19 コマンド行から権利プロファイルを変更する

次の例では、Network Management 権利プロファイルを Network Security 権利プロファイルの補助プロファイルにします。Network Security プロファイルを含む役割は、ネットワークおよびホストを構成できるようになり、加えてセキュリティー関連のコマンドを実行します。


$ /usr/sadm/bin/smprofile -D nisplus:/example.host/example.domain \
-r primaryadm -l <Type primaryadm password> \
modify -- -n "Network Security" \
-d "Manage network and host configuration and security" \
-m RtNetConfSec.html -p "Network Management"

管理者は、新しいヘルプファイル、RtNetConfSec.html を作成し、それを/usr/lib/help/profiles/locale/C ディレクトリに配置してから、このコマンドを実行します。



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

次の表では、「Build Administrator」と呼ばれる仮想権利プロファイルのサンプルデータを示します。この権利プロファイルには、サブディレクトリ /usr/local/swctrl/bin のコマンドが含まれます。これらのコマンドの実効 UID は 0 です。Build Administrator 権利プロファイルは、ソフトウェア開発のビルドとバージョンを管理する管理者が使用します。

タブ 

フィールド 

例 

基本 (General) 

名前 

Build Administrator 

 

説明 

ソフトウェアのビルドとバージョンの管理用。 

 

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

BuildAdmin.html

コマンド (Commands) 

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

「ディレクトリを追加 (Add Directory)」をクリックし、ダイアログボックスに /usr/local/swctrl/bin と入力して、「了解 (OK)」をクリックします。

 

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

/usr/local/swctrl/bin を「許可されたコマンド (Commands Permitted)」列に移動します。

 

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

/usr/local/swctrl/bin を選択し、「セキュリティー属性を 設定 (Set Security Attributes)」をクリックして、 Effective UID = root を設定します。

承認 

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

承認なし

補助権利 (Supplementary Rights) 

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

補助権利プロファイルなし


注意事項

権利プロファイルによって期待する機能を持つ役割が提供されない場合は、次を確認します。

Procedureユーザーの RBAC プロパティーを変更する方法

ユーザーのプロパティーには、パスワード、権利プロファイル、役割、および承認が含まれます。ユーザーに管理機能を与える最も安全な方法として、ユーザーに役割を与えます。詳細については、「セキュリティー属性を直接割り当てる場合に考慮すべきセキュリティー事項」を参照してください。

始める前に

Primary Administrator 権利プロファイルを含む役割を引き受けるか、root ユーザーに切り替える必要があります。

  1. 次のいずれかの方法で、ユーザーの RBAC プロパティーを変更します。

    • Solaris 管理コンソールの「ユーザー」ツールを使用します。

      コンソールの起動については、「Solaris 管理コンソールで役割を引き受ける方法」を参照してください。左側の区画の指示に従って、「ユーザーアカウント (User Accounts) 」のユーザーを変更します。詳細は、オンラインヘルプを参照してください。


      ヒント –

      承認、特権、または権利プロファイルをユーザーに直接割り当てることはお勧めできません。役割をユーザーに割り当てることが望ましい方法です。その後、ユーザーが、特権付きの操作を実行するための役割を引き受けます。


    • usermod コマンドを使用します。

      このコマンドは、ローカルのネームサービスで定義されるユーザーの属性を変更します。


      $ usermod -R rolename username
      
      -R rolename

      既存のローカル役割の名前です。

      username

      変更する既存のローカルユーザーの名前です。

      コマンドオプションの詳細については、usermod(1M) のマニュアルページを参照してください。

    • modify サブコマンドを持つ smuser コマンドを使用します。

      このコマンドは、NIS、NIS+、LDAP などの分散ネームサービスでユーザーの属性を変更します。Solaris 管理コンソールサーバーのクライアントとして動作します。


      $ /usr/sadm/bin/smuser -D domain-name \ 
      -r admin-role -l <Type admin-role password> \
      modify -- -n username -a rolename
      
      -D domain-name

      管理対象のドメインの名前です。

      -r admin-role

      役割を変更できる管理役割の名前です。管理役割は solaris.role.assign 承認を得る必要があります。引き受けた役割を変更する場合、役割は solaris.role.delegate 承認を得る必要があります。

      -l

      admin-role のパスワードに対するプロンプトです。

      --

      認証オプションとサブコマンドオプションの間に必要な区切り文字です。

      -n username

      rolename を割り当てられるユーザーの名前です。

      -a rolename

      username に割り当てる役割の名前です。複数の -a rolename オプションを指定することができます。

      コマンドオプションの詳細については、smuser(1M) のマニュアルページを参照してください。


例 9–21 コマンド行からのローカルユーザーの RBAC プロパティーの変更

この例では、ユーザー jdoe が System Administrator の役割を引き受けることができるようになります。


$ usermod -R sysadmin jdoe

この役割は、ユーザーが引き受けることのできる役割に追加されます。



例 9–22 smuser コマンドを使用したユーザーの RBAC プロパティーの変更

この例では、ユーザー jdoe に、System Administrator と Operator の 2 つの役割が割り当てられます。ユーザーと役割はローカルに定義されるため、-D オプションは必要ありません。


$ /usr/sadm/bin/smuser -r primaryadm -l <Type primaryadm password> \
modify -- -n jdoe -a sysadmin -a operadm

次の例では、ユーザーは NIS ネームサービスで定義されます。したがって、-D オプションは必要です。2 つの役割が、ネームサービスで定義されます。一方の役割、root は、ローカルに定義されます。


$ /usr/sadm/bin/smuser -D nis:/examplehost/example.domain \
-r primaryadm -l <Type primaryadm password> \
modify -- -n jdoe -a sysadmin -a operadm -a root

ProcedureRBAC プロパティーをレガシーアプリケーションに追加する方法

レガシーアプリケーションは、コマンドまたはコマンドのセットです。セキュリティー属性は、権利プロファイルのコマンドごとに設定します。その後、権利プロファイルを役割に含めます。役割を引き受けるユーザーは、セキュリティー属性を指定したレガシーアプリケーションを実行することができます。

Solaris 管理コンソールにレガシーアプリケーションを追加する方法については、『Solaris のシステム管理 (基本編)』「Solaris 管理コンソールにツールを追加する」を参照してください。

始める前に

権利プロファイルのコマンドのセキュリティー属性を変更するには、Primary Administrator の役割を引き受けているか、スーパーユーザーに切り替えている必要があります。

  1. Solaris 管理コンソールの「ユーザー」ツールを使用します。

    コンソールの起動については、「Solaris 管理コンソールで役割を引き受ける方法」を参照してください。左側の区画の指示に従って、「権利」の権利プロファイルを変更します。詳細は、オンラインヘルプを参照してください。

  2. レガシーアプリケーションを実装するコマンドにセキュリティー属性を追加します。

    レガシーアプリケーションにセキュリティー属性を追加するときは、コマンドに追加する場合と同じ方法で追加します。セキュリティー属性を指定したコマンドを権利プロファイルに追加する必要があります。レガシーコマンドに対して、euid=0 または uid=0 のセキュリティー属性を指定します。手順の詳細については、「権利プロファイルを作成または変更する方法」を参照してください。

  3. レガシーアプリケーションを権利プロファイルに追加したあと、権利プロファイルを役割のプロファイルリストに含めます。

    権利プロファイルを役割に追加する方法については、「役割のプロパティーを変更する方法」を参照してください。


例 9–23 スクリプトのコマンドへのセキュリティー属性の追加

スクリプトのコマンドが setuid ビットまたは setgid ビットセットを持つ必要がある場合、実行可能なスクリプトおよびコマンドに対して、権利プロファイルでセキュリティー属性を追加する必要があります。その後、権利プロファイルを役割に含め、含めた役割をユーザーに割り当てます。ユーザーが、役割を引き受け、スクリプトを実行すると、コマンドはそのセキュリティー属性で実行されます。

セキュリティー属性をコマンドまたはシェルスクリプトに追加する方法については、「権利プロファイルを作成または変更する方法」を参照してください。



例 9–24 スクリプトまたはプログラム内の承認の確認

承認用のスクリプトを用意するには、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 承認がユーザーに与えられているかどうかをテストするには、次の文字列を確認します。

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