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

印刷ビューの終了

更新: 2014 年 7 月
 
 

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

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

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

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

  • 役割の作成

  • 信頼できるユーザーの作成

  • 役割の権利の変更

  • ユーザーの権利の変更

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

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

  • 役割の削除

役割の作成

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

ARMOR の役割を使用するには、Example 3–1 を参照してください。

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

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

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

各情報の意味は次のとおりです。

–c comment

役割を記述します。

–m

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

–K profiles=

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

rolename

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


注 -  役割アカウントを複数のユーザーに割り当てることができます。そのため、管理者は役割パスワードを作成し、その役割パスワードを通常の通信手段以外の手段でユーザーに伝えます。役割のパスワードの代替については、役割パスワードでのユーザー独自のパスワード使用の有効化Example 3–16 およびExample 3–17 を参照してください。
使用例 3-1  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

これらの権利割り当ては変更できません。別の権利構成を作成するには、新しい役割を作成してから、システム権利プロファイルをクローニングおよび変更する方法の手順に従って新しい権利プロファイルを作成する必要があります。

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

# usermod -R=auditadm adal
# usermod -R=fsadm,pkgadm bdewey
# usermod -R=secadm,useradm cfoure
# usermod -R=svcadm ghamada
# usermod -R=svcadm yjones
# usermod -R=sysop hmurtha
# usermod -R=sysop twong
使用例 3-2  LDAP リポジトリでの User Administrator 役割の作成

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

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

管理者は 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

管理者は、Example 3–5 の通常のユーザーをすべて作成するには 2 人のユーザーが必要であると確認できます。

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

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

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

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

% su - cryptmgt
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 11.2 での暗号化と証明書の管理 の第 1 章暗号化フレームワークを参照してください。フレームワークを管理するには、Oracle Solaris 11.2 での暗号化と証明書の管理 の暗号化フレームワークの管理を参照してください。

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

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

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

# useradd -c "Trusted Assistant User Manager user" -m -R useradm jdoe
80 blocks
# ls /export/home/jdoe
local.bash_profile     local.login     local.profile

各情報の意味は次のとおりです。

–s shell

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

–R rolename

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

その他の例については、Oracle Solaris 11.2 のユーザーアカウントとユーザー環境の管理 のCLI を使用したユーザーアカウントの設定と管理のタスクマップを参照してください。

ユーザーの権利の変更

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

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

# usermod -K profiles="User Management" kdoe

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

使用例 3-5  ユーザーへの役割の割り当て

この例では、通常のユーザーを作成するために 2 人の信頼できるユーザーが必要であることを管理者が確認します。役割はExample 3–3 で作成されたものです。

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

役割の権利の変更

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

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

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

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

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

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

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

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

# rolemod -K defaultpriv+='proc_clock_highres' realtime

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

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

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

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

# rolemod -K roleauth=user useradm

役割のパスワードの変更

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

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

リポジトリを指定しない場合は、すべてのリポジトリでパスワードが変更されます。

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

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

次の例では、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 useradm

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

useradm # profiles
Unable to get user name