このセクションの例では、通常のユーザーの権利を制限するか、または管理者から一部の管理権利を削除します。ユーザー、役割、および権利プロファイルを変更する方法を示します。権利の詳細については、権利を使用したユーザーとプロセスの制御についてを参照してください。
ユーザーから制限特権を削除する – 使用例 24
ユーザーから基本特権を削除する – 使用例 25
ユーザー独自のシェルプロセスから基本特権を削除する – 使用例 26
使用が制限されたシステムを作成する – 使用例 27
管理者を明示的に割り当てられている権利に制限する – 使用例 28
LDAP の属性をユーザー、役割、システム、または一連のシステムで修飾する – 使用例 29、user_attr(4) のマニュアルページ、および Oracle Solaris 11.2 修飾ユーザー属性に関するブログ
アプリケーションがサブプロセスを作成できないようにする – 使用例 31
ユーザープロセスがサブプロセスを生成できないようにする – 使用例 32
ゲスト用の制限付きエディタを作成する – 使用例 32
パブリックシステムに制限付きエディタを割り当てる – 使用例 33
権利プロファイルの制限セットから特権を削除する – 使用例 45
Sun Ray ユーザー向けの権利プロファイルを作成する – 使用例 45
ユーザーから承認を削除する – 使用例 49
役割割り当てを削除する – 使用例 52
システムへのアクセスを時間または場所で制限する – user_attr(4) およびOracle Solaris 11.2 修飾ユーザー属性
次の例では、jdoe の最初のログインから開始されるすべてのセッションで sys_linkdir 特権を使用できないようにします。su コマンドの実行後でも、ユーザーはディレクトリへのハードリンクの作成やディレクトリのリンク解除を実行できません。
# usermod -K 'limitpriv=all,!sys_linkdir' jdoe # userattr limitpriv jdoe all,!sys_linkdir使用例 25 権利プロファイルからの基本特権の削除
次の例では、徹底的なテストのあとで、セキュリティー管理者は Sun Ray Users 権利プロファイルから別の基本特権を削除します。管理者は使用例 45でプロファイルを作成したときに、制限セットから 1 つの特権を削除しています。ここでは、管理者は 2 つの基本特権を削除します。このプロファイルが割り当てられているユーザーは、現在のセッションの外部ではどのプロセスも検査できず、さらに別のセッションを追加することもできません。
# profiles -p "Sun Ray Users" profiles:Sun Ray Users> set defaultpriv="basic,!proc_session,!proc_info" profiles:Sun Ray Users> end profiles:Sun Ray Users> exit使用例 26 ユーザー自身からの基本特権の削除
次の例では、通常のユーザーが .bash_profile を変更して proc_info 基本特権を削除します。ps や prstat などのプログラムの出力にはユーザー自身のプロセスだけが含まれており、有用な情報を示していることがあります。
## .bash_profile ## Remove proc_info privilege from my shell ## ppriv -s EI-proc_info $$
ppriv 行は、現在のシェルプロセス ($$) でユーザーの有効特権セットと継承可能特権セット (EI-) から proc_info 特権を削除します。
次の prstat 出力では、プロセスの合計が 74 から 3 に減少しています。
## With all basic privileges Total: 74 processes, 527 lwps, load averages: 0.01, 0.00, 0.00 ## With proc_info removed from the effective and inheritable set Total: 3 processes, 3 lwps, load averages: 0.00, 0.00, 0.00使用例 27 システムをそのユーザーが使用できる権限を制限するように変更する
この例では、管理者がネットワークの管理にのみ役立つシステムを作成します。管理者は、policy.conf ファイルから Basic Solaris User 権利プロファイルとすべての承認を削除します。Console User 権利プロファイルは削除されません。結果となる policy.conf ファイルで影響を受けた行は次のとおりです。
... ##AUTHS_GRANTED= ##AUTH_PROFS_GRANTED= ##PROFS_GRANTED=Basic Solaris User CONSOLE_USER=Console User ...
承認、コマンド、または権利プロファイルが明示的に割り当てられているユーザーのみがこのシステムを使用できます。ログイン後、その承認ユーザーは管理責務を果たすことができます。承認されたユーザーがシステムコンソールの前に座っている場合、そのユーザーには Console User の権利があります。
使用例 28 明示的に割り当てられた権利への管理者の制限2 つの方法で、ユーザーまたは役割を限られた数の管理操作に制限できます。
ユーザーのプロファイルリストの最終プロファイルとして、Stop 権利プロファイルを割り当てます。
Stop 権利プロファイルは、制限付きシェルを作成するもっとも簡単な方法です。policy.conf ファイル内の承認と権利プロファイルは、ユーザーまたは役割には割り当てられません。
システム上の policy.conf ファイルを変更して、役割またはユーザーがそのシステムを管理タスクに使用するよう要求します。使用例 27を参照してください。
次のコマンドは、auditrev 役割を監査レビューの実行のみに制限します。
# rolemod -K profiles="Audit Review,Stop" auditrev
auditrev 役割には Console User 権利プロファイルがないため、監査担当者はシステムをシャットダウンできません。この役割には solaris.device.cdrw 承認がないため、監査担当者は CD-ROM ドライブに対して読み取りまたは書き込みを行うことができません。この役割には Basic Solaris User 権利プロファイルがないため、そのプロファイルのコマンドをこの役割で実行できません。All 権利プロファイルが割り当てられていないため、ls コマンドは実行されません。この役割は、ファイルブラウザを使用してレビューする監査ファイルを選択します。
詳細は、割り当てられた権利の検索順序および権利プロファイルのリファレンスを参照してください。
使用例 29 LDAP ユーザーや役割がその権利を使用できる場所と時間の修飾この一連の例は、ユーザーや役割へのセキュリティー属性の割り当てを集中管理する方法を示しています。これらのコマンドは LDAP ネームサービスでのみ機能し、files ネームサービスでは機能しません。
次の例では、ユーザー jdoe がシステム labsys1 および labsys2 を管理できるようにします。jdoe は LDAP アカウントです。
# usermod -q labsys1 -K profiles="System Administrator" jdoe # usermod -q labsys2 -K profiles="System Administrator" jdoe
次の例では、system1 上の役割 admin への管理アクセスを平日の午前 5 時から午後 3 時までに制限します。admin は LDAP アカウントです。システムのローカルタイムゾーンが使用されます。
# rolemod -q system1 -k access_times="(*}:Wk0500-1500" \ -K profiles="System Administrator" admin使用例 30 ユーザーや役割が管理権利を持つシステムの修飾
この一連の例は、セキュリティー属性の割り当てをホスト名、またはネットグループと呼ばれるホストのグループで修飾する方法を示しています。netgroup(4) のマニュアルページを参照してください。
次の例では、ユーザー jdoe が lab1 ネットグループとして定義されている一連のシステムを管理できるようにします。jdoe および lab1 ネットグループは、LDAP ディレクトリで管理されます。
# usermod -q @lab1 -K profiles="System Administrator" jdoe
次の例では、ユーザー jdoe を平日の午前 5 時から午後 3 時までの lab1 ネットグループの管理に制限します。
# usermod -q @lab1 -k access_times="(*}:Wk0500-1500" -K profiles="System Administrator" jdoe使用例 31 選択したアプリケーションによる新規プロセス生成の防止
この例では、適切な動作のためにサブプロセスが不要なアプリケーションの権利プロファイルを管理者が作成します。便宜上、管理者はこれらの実行可能ファイルを保管するディレクトリを作成します。サブプロセスを必要としない新しいアプリケーションが追加されたら、実行可能ファイルをこのディレクトリに追加できます。あるいは、実行可能ファイルが特定のディレクトリに存在している必要がある場合、管理者は /opt/local/noex/app-executable からそれにリンクできます。
# profiles -p "Prevent App Subprocess" profiles:Prevent App Subprocess> set desc="Keep apps from execing processes" profiles:Prevent App Subprocess> add cmd=/opt/local/noex/mkmod ... Subprocess:mkmod> set limitprivs=all,!proc_exec ... Subprocess:mkmod> end ... Subprocess> add cmd=/opt/local/noex/gomap ... Subprocess:gomap> set limitprivs=all,!proc_exec ... Subprocess:gomap> end ... Subprocess> commit ... Subprocess> exit使用例 32 ゲストによるエディタサブプロセス生成の防止
この例では、管理者がエディタコマンドから proc_exec 基本特権を削除して、ユーザーが 1 つまたは複数のエディタからサブシェルを作成することを防止します。
管理者は、vim エディタの制限特権セットから proc_exec を削除する権利プロファイルを作成します。
# profiles -p -S ldap "Editor Restrictions" profiles:Editor Restrictions> set desc="Site Editor Restrictions" ... Restrictions> add cmd=/usr/bin/vim ... Restrictions:vim> set limitprivs=all,!proc_exec ... Restrictions:vim> end ... Restrictions> commit ... Restrictions> exit
管理者がほかの一般的なエディタを権利プロファイルに追加します。
# profiles -p "Editor Restrictions" profiles:Editor Restrictions> add cmd=/usr/bin/gedit ... Restrictions:gedit> set limitprivs=all,!proc_exec ... Restrictions:gedit> end ... Restrictions> add cmd=/usr/bin/gconf-editor ... Restrictions:gconf-editor> set limitprivs=all,!proc_exec ... Restrictions:gconf-editor> end ... Restrictions> add cmd=/usr/bin/ed ... Restrictions:ed> set limitprivs=all,!proc_exec ... Restrictions:ed> end ... Restrictions> add cmd=/usr/bin/ex ... Restrictions:ex> set limitprivs=all,!proc_exec ... Restrictions:ex> end ... Restrictions> add cmd=/usr/bin/edit ... Restrictions:edit> set limitprivs=all,!proc_exec ... Restrictions:edit> end ... Restrictions> commit ... Restrictions> exit
管理者は、権利プロファイルのエントリに誤字、脱字、繰り返しなどのエラーがないかどうかを確認します。
# profiles -p "Editor Restrictions" info Found profile in files repository. name=Editor Restrictions desc=Site Editor Restrictions cmd=/usr/bin/vim limitprivs=all,!proc_exec ...
管理者は Editor Restrictions 権利プロファイルを guest ユーザーに割り当てます。
# usermod -K profiles+="Editor Restrictions" guest
管理者は profiles+ を使用して、この権利プロファイルをアカウントの現在の権利プロファイルに追加します。
エディタ特権が制限されていることを確認するため、管理者はエディタを開き、別のウィンドウでエディタプロセスの特権を調べます。
# ppriv -S $(pgrep vi) 2805: vi .bash_profile flags = PRIV_PFEXEC User is running a profile shell E: basic,!proc_info proc_info is removed from basic set I: basic,!proc_info P: basic,!proc_info L: all,!proc_exec proc_exec is removed from limit set
この例では、管理者が Editor Restrictions 権利プロファイルを policy.conf ファイルに追加します。管理者は、ゲストがログインできるパブリックシステムにこのファイルが配布されていることを確認します。
# cd /etc/security; cp policy.conf policy.conf.orig # pfedit /etc/security/policy.conf ... AUTHS_GRANTED= AUTH_PROFS_GRANTED= #PROFS_GRANTED=Basic Solaris User PROFS_GRANTED=Editor Restrictions,Basic Solaris User
User Security 管理者は、すべてのユーザーにプロファイルシェルを割り当てました。理由と手順については、ユーザーへの権利の割り当てを参照してください。