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

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() 関数を使用して、承認をテストします。