Go to main content

Oracle® Solaris 11.4 でのユーザーとプロセスのセキュリティー保護

印刷ビューの終了

更新: 2018 年 8 月
 
 

ユーザーおよび役割への権利の割り当て

このセクションでは、役割とユーザーを作成および変更するコマンドについて説明します。権利プロファイルを作成または変更するには、権利プロファイルを作成する方法および システム権利プロファイルをクローニングおよび変更する方法を参照してください。

役割の詳細については、ユーザー権利およびプロセス権利の基本情報を参照してください。

    役割とユーザーの作成または変更における主なアクションを次に示します。

  • 役割の作成

  • 追加権利によって信頼されるユーザーの作成

  • 役割の権利の変更

  • ユーザーの権利の変更

  • ユーザー独自のパスワードを使用した役割の引き受けの有効化

  • 役割のパスワードの変更

  • 役割の削除

役割の作成

役割を使用する場合にはさまざまなオプションがあります。ARMOR から事前定義の役割をインストールし、排他的に使用できます。役割を作成することも可能です。ARMOR の役割の使用と、作成した役割を組み合わせることもできます。

ARMOR 役割を使用するには、使用例 2, ARMOR の役割の使用を参照してください。

ユーザー独自の役割を作成するには、roleadd コマンドを使用します。このコマンドのすべての引数のリストについては、roleadd(8) のマニュアルページを参照してください。


Caution

注意  -  roleauth=user キーワードと auth_profiles=profiles キーワードの両方を使用して役割を構成しないでください。auth_profiles キーワードは、roleauth パスワード (ユーザー) ではない現在のプロセス所有者のパスワード (役割) に対して認証されるため、認証が失敗します。


たとえば、次のコマンドは、ホームディレクトリと pfbash ログインシェルでローカルユーザー管理者の役割を作成し、その役割のパスワードを作成します。

# roleadd -c "User Administrator role, local" \
-m -K profiles="User Security,User Management" accountadm
80 blocks
# ls /export/home/accountadm
local.bash_profile     local.login     local.profile
# passwd accountadm
Password: xxxxxxxx
Confirm Password: xxxxxxxx

各表記の意味は次のとおりです。

–c comment

役割を記述します。

–m

ホームディレクトリを作成します。

–K profiles=

1 つまたは複数の権利プロファイルを役割に割り当てます。権利プロファイルのリストについては、権利プロファイルの一覧表示を参照してください。

rolename

役割の名前です。許容される文字列の制限については、roleadd(8) のマニュアルページを参照してください。


注 -  役割アカウントを複数のユーザーに割り当てることができます。そのため、管理者は役割パスワードを作成し、その役割パスワードを通常の通信手段以外の手段でユーザーに伝えます。役割のパスワードの代替機能については、役割パスワードでのユーザー独自のパスワード使用の有効化使用例 18, 役割パスワードでのユーザー独自のパスワード使用の有効化、および使用例 20, ユーザーが役割パスワードとして独自のパスワードを使用できるようにするための権利プロファイルの変更を参照してください。
使用例 2  ARMOR の役割の使用

この例では、セキュリティー管理者が ARMOR 標準により定義されている役割をインストールします。管理者はまず、役割名が既存のどのアカウントとも競合していないことを確認してから、パッケージをインストールし、役割定義を表示して、信頼できるユーザーに役割を割り当てます。

    管理者は最初に、次の UID と名前がネームサービスに存在していないことを確認します。

  • 57 auditadm

  • 55 fsadm

  • 58 pkgadm

  • 53 secadm

  • 56 svcadm

  • 59 sysop

  • 54 useradm

管理者は UID と名前が使用されていないことを確認してから、パッケージをインストールします。

# pkg install system/security/armor

このパッケージは、7 つの役割とローカルホームディレクトリを /export/home ディレクトリに作成します。

各役割の権利を確認するため、管理者は各役割に割り当てられているプロファイルを一覧表示できます。

# profiles auditadm
# profiles fsadm
# profiles pkgadm
# profiles secadm
# profiles svcadm
# profiles sysop
# profiles useradm

ARMOR の役割に割り当てられた権利は変更できません。権利の別の構成を作成するには、システム権利プロファイルをクローニングおよび変更する方法を参照してください。

最後に、管理者は信頼できるユーザーに役割を割り当てます。役割の認証にはユーザー独自のパスワードが使用されます。一部のユーザーには複数の役割が割り当てられます。時間的制約のあるタスクを持つ役割は、複数の信頼できるユーザーに割り当てられます。

# usermod -R=auditadm adoe
# usermod -R=fsadm,pkgadm bdoe
# usermod -R=secadm,useradm cdoe
# usermod -R=svcadm ddoe
# usermod -R=svcadm edoe
# usermod -R=sysop fdoe
# usermod -R=sysop gdoe
使用例 3  アプリケーション管理者の役割の作成

管理者は、Oracle データベース管理者 (DBA) の役割を作成することにより、その管理者のログイン名が確実に監査トレールに含まれるようにします。oracle アカウントは役割であるため、ユーザーは自分のアカウントにログインしたあと、oracle 役割にユーザーを切り替える必要があります。このサイトには 3 人の DBA が存在します。

# usermod -K type=role oracle
# usermod -R oracle adoe
# usermod -R oracle bdoe
# usermod -R oracle cdoe
使用例 4  LDAP リポジトリでの User Administrator 役割の作成

管理者は LDAP 内に User Administrator 役割を作成します。ユーザーは役割を引き受けるときにパスワードを入力するため、個々のコマンドにパスワードを入力する必要がなくなります。

# roleadd -c "User Administrator role, LDAP" -m -S ldap \
-K profiles="User Security,User Management" accountadm
使用例 5  責務を分離するための役割の作成

管理者は 2 つの役割を作成します。usermgt 役割は、ユーザーを作成したり、ユーザーにホームディレクトリを提供したり、その他のセキュリティー以外のタスクを実行したりできます。usersec 役割は、ユーザーの作成はできませんが、パスワードの割り当てとほかの権利の割り当て変更は実行できます。いずれの役割でも、ユーザーまたは役割の監査フラグの設定や、役割のパスワードの変更はできません。これらのアクションは root 役割が実行する必要があります。

# roleadd -c "User Management role, LDAP" -s /usr/bin/pfksh \
-m -S ldap -K profiles="User Management"  usermgt
# roleadd -c "User Security role, LDAP" -s /usr/bin/pfksh \
-m -S ldap -K profiles="User Security"  usersec

管理者は、使用例 7, ユーザーへの役割の割り当ての通常のユーザーをすべて作成するには 2 人のユーザーが必要であることを確認します。

使用例 6  暗号化サービス管理のための役割の作成と割り当て

この例では、LDAP ネットワーク上の管理者が暗号化フレームワークを管理するための役割を作成して、その役割を UID 1111 に割り当てます。

# roleadd -c "Cryptographic Services manager" \
-g 14 -m -u 104 -S ldap -K profiles="Crypto Management" cryptomgt
# passwd cryptomgt
New Password: xxxxxxxx
Confirm password: xxxxxxxx 
# usermod -u 1111 -R +cryptomgt

UID が 1111 のユーザーは、ログイン後にその役割を引き受けて、割り当てられている権利を表示します。

$ su - cryptomgt
Password: xxxxxxxx
$ profiles -l
      Crypto Management
          /usr/bin/kmfcfg            euid=0
          /usr/sbin/cryptoadm        euid=0
          /usr/sfw/bin/CA.pl         euid=0
          /usr/sfw/bin/openssl       euid=0

暗号化フレームワークについては、Oracle Solaris 12 での暗号化と証明書の管理を参照してください。

信頼できるユーザーのログインの作成

ログインを作成するには useradd コマンドを使用します。useradd コマンドのすべての引数のリストについては、useradd(8) のマニュアルページを参照してください。このコマンドの権利関連の引数は roleadd コマンドと同じですが、さらに –R rolename オプションがあります。

役割をユーザーに割り当てる場合、ユーザーはその役割を引き受けたあとでその役割の権利を使用できます。たとえば次のコマンドは、信頼できるユーザーのログインの作成で作成した accountadm 役割を引き受けることが可能な信頼できるユーザーを作成します。

# useradd -c "Trusted Assistant User Manager user"  -m -R accountadm \ 
        -s /usr/bin/pfbash jdoe
80 blocks
# ls /export/home/jdoe
local.bash_profile     local.login     local.profile

各表記の意味は次のとおりです。

–m

ユーザーのホームディレクトリを作成します。

–R rolename

既存の役割の名前を割り当てます。

–s shell

username のログインシェルを決定します。このシェルは、pfbash などのプロファイルシェルにできます。信頼できるユーザーにプロファイルシェルを割り当てる理由については、権利の割り当てにおける操作性に関する考慮事項を参照してください。プロファイルシェルの一覧については、pfexec(1) のマニュアルページを参照してください。

ほかの例については、Managing User Accounts and User Environments in Oracle Solaris 11.4 の Setting Up and Managing User Accounts (Task Map)を参照してください。

ユーザーの権利の変更

ユーザーアカウントを変更するには、usermod コマンドを使用します。usermod コマンドのすべての引数のリストについては、usermod(8) のマニュアルページを参照してください。このコマンドの権利関連の引数は useradd コマンドと同じです。

権利プロファイルをユーザーに割り当てると、そのユーザーはプロファイルシェルを開いたあとで権利を使用できます。たとえば、権利プロファイルとプロファイルシェルをユーザーのログインシェルとして割り当てます。

# usermod -s /usr/bin/pfbash -K profiles="User Management" kdoe

これらの変更は、そのユーザーの次回のログイン時に有効になります。ユーザーが割り当てられている権利を使用する方法を習得する場合は、割り当てられている管理権利の使用を参照するように指示してください。

使用例 7  ユーザーへの役割の割り当て

この例では、通常のユーザーを作成するために 2 人の信頼できるユーザーが必要であることを管理者が確認します。役割は使用例 5, 責務を分離するための役割の作成で作成されました。

# usermod -R +accountadm jdoe
# usermod -R +usersec mdoe

役割の権利の変更

役割アカウントを変更するには、rolemod コマンドを使用します。rolemod コマンドのすべての引数のリストについては、rolemod(8) のマニュアルページを参照してください。このコマンドの権利関連の引数は roleadd コマンドと同じです。

key=value ペアの値と、–A–P、および –R オプションは、マイナス (-) またはプラス (+) 記号で変更できます。- 記号は、現在割り当てられている値から値を引くことを示します。+ 記号は、現在割り当てられている値に値を加えることを示します。権利プロファイルの場合、値は現在のプロファイルリストの先頭に付加されます。権利プロファイルが先の順序であることの影響については、割り当てられた権利の検索順序を参照してください。

使用例 8  役割の最初の権利プロファイルとしての権利プロファイルの追加

たとえば、accountadm 役割の先頭に権利プロファイルを付加します。

# rolemod -K profiles+="Device Management" accountadm
# profiles accountadm
accountadm:
Device Management
User Management
User Security
使用例 9  ローカル役割に割り当てられているプロファイルの置換

この例では、セキュリティー管理者が prtmgt 役割を変更し、Printer Management プロファイルの後に VSCAN Management 権利プロファイルを組み込みます。

# rolemod -c "Handles printers and virus scanning" \
-K profiles="Printer Management,VSCAN Management,All" prtmgt
使用例 10  役割への特権の直接割り当て

この例では、セキュリティー管理者は、システム時間に影響を及ぼすきわめて特殊な特権を realtime 役割に委ねます。特権をユーザーに割り当てるには、使用例 16, ユーザーへの特権の直接割り当てを参照してください。

# rolemod -K defaultpriv+='proc_clock_highres' realtime

defaultpriv キーワードの値は、常にその役割のプロセスに含まれる特権のリスト内にあります。

役割パスワードでのユーザー独自のパスワード使用の有効化

ユーザーが役割を引き受けるときに役割のパスワードではなくユーザー独自のパスワードを使用できるようにするには、その役割を変更します。

次のコマンドは、accountadm 役割が割り当てられているすべてのユーザーが、accountadm 役割を含め、割り当てられている任意の役割を引き受けるときに、ユーザー独自のパスワードを使用できるようにします。

# rolemod -K roleauth=user accountadm

Caution

注意  -  roleauth=user キーワードと auth_profiles=profiles キーワードの両方を使用して役割を構成しないでください。auth_profiles キーワードは、roleauth パスワード (ユーザー) ではない現在のプロセス所有者のパスワード (役割) に対して認証されるため、認証が失敗します。


auth_profiles キーワードは役割のために設計されていませんが、役割でも使用できます。このキーワードは、別の役割アカウントを使用する必要のない、ユーザーの資格情報による再認証のために設計されています。

役割のパスワードの変更

役割は多数のユーザーに割り当てることができるため、役割が割り当てられているユーザーは、その役割のパスワードを変更できません。役割のパスワードを変更するには root 役割である必要があります。

# passwd accountadm
Enter accountadm's password: xxxxxxxx
New: xxxxxxxx
Confirm: xxxxxxxx

リポジトリを指定しない場合は、すべてのリポジトリでパスワードが変更されます。コマンドオプションの詳細については、passwd(1) のマニュアルページを参照してください。

使用例 11  特定リポジトリでの役割のパスワードの変更

次の例では、root 役割がローカル devadmin 役割のパスワードを変更します。

# passwd -r files  devadmin
New password: xxxxxxxx
Confirm password: xxxxxxxx

次の例では、root 役割が LDAP ネームサービス内で devadmin 役割のパスワードを変更します。

# passwd -r ldap devadmin
New password: xxxxxxxx
Confirm password: xxxxxxxx

役割の削除

役割を削除すると、その役割は即時に使用不可になります。

# roledel accountadm

役割の管理タスクを現在実行しているユーザーは、続行できなくなります。profiles コマンドは次の出力を表示します。

accountadm $ profiles
Unable to get user name