このセクションでは、役割とユーザーを作成および変更するコマンドについて説明します。権利プロファイルを作成または変更するには、権利プロファイルを作成する方法および システム権利プロファイルをクローニングおよび変更する方法を参照してください。
役割の詳細については、ユーザー権利およびプロセス権利の基本情報を参照してください。
役割とユーザーの作成または変更における主なアクションを次に示します。
役割の作成
追加権利によって信頼されるユーザーの作成
役割の権利の変更
ユーザーの権利の変更
ユーザー独自のパスワードを使用した役割の引き受けの有効化
役割のパスワードの変更
役割の削除
役割を使用する場合にはさまざまなオプションがあります。ARMOR から事前定義の役割をインストールし、排他的に使用できます。役割を作成することも可能です。ARMOR の役割の使用と、作成した役割を組み合わせることもできます。
ARMOR 役割を使用するには、使用例 2を参照してください。
ユーザー独自の役割を作成するには、roleadd コマンドを使用します。このコマンドのすべての引数のリストについては、roleadd(1M) のマニュアルページを参照してください。
注意 - 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
各情報の意味は次のとおりです。
役割を記述します。
ホームディレクトリを作成します。
1 つまたは複数の権利プロファイルを役割に割り当てます。権利プロファイルのリストについては、権利プロファイルの一覧表示を参照してください。
役割の名前です。許容される文字列の制限については、roleadd(1M) のマニュアルページを参照してください。
この例では、セキュリティー管理者が 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 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 アプリケーション管理者の役割の作成
管理者は、Oracle データベース管理者 (DBA) の役割を作成することにより、その管理者のログイン名が確実に監査トレールに含まれるようにします。oracle アカウントは役割であるため、ユーザーは自分のアカウントにログインしたあと、oracle 役割にユーザーを切り替える必要があります。このサイトには 3 人の DBA が存在します。
# usermod -K type=role oracle # usermod -R oracle adal # usermod -R oracle bdewey # usermod -R oracle cfoure使用例 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 11.3 での暗号化と証明書の管理 の 第 1 章, 暗号化フレームワークを参照してください。フレームワークを管理するには、Oracle Solaris 11.3 での暗号化と証明書の管理 の 暗号化フレームワークの管理を参照してください。
ログインを作成するには useradd コマンドを使用します。useradd コマンドのすべての引数のリストについては、useradd(1M) のマニュアルページを参照してください。このコマンドの権利関連の引数は 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
ユーザーのホームディレクトリを作成します。
既存の役割の名前を割り当てます。
username のログインシェルを決定します。このシェルは、pfbash などのプロファイルシェルにできます。信頼できるユーザーにプロファイルシェルを割り当てる理由については、権利の割り当てにおける操作性に関する考慮事項を参照してください。プロファイルシェルの一覧については、pfexec(1) のマニュアルページを参照してください。
その他の例については、Oracle Solaris 11.3 のユーザーアカウントとユーザー環境の管理 の CLI を使用したユーザーアカウントの設定と管理のタスクマップを参照してください。
ユーザーアカウントを変更するには、usermod コマンドを使用します。usermod コマンドのすべての引数のリストについては、usermod(1M) のマニュアルページを参照してください。このコマンドの権利関連の引数は 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(1M) のマニュアルページを参照してください。このコマンドの権利関連の引数は 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
注意 - 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 useradm
役割の管理タスクを現在実行しているユーザーは、続行できなくなります。profiles コマンドは次の出力を表示します。
useradm # profiles Unable to get user name