ナビゲーションリンクをスキップ | |
印刷ビューの終了 | |
Oracle Solaris 11.1 の管理: Oracle Solaris ゾーン、Oracle Solaris 10 ゾーン、およびリソース管理 Oracle Solaris 11.1 Information Library (日本語) |
10. リソース上限デーモンによる物理メモリーの制御 (概要)
18. 非大域ゾーンのインストール、停止処理、停止、アンインストール、クローニングについて (概要)
19. 非大域ゾーンのインストール、ブート、停止処理、停止、アンインストール、およびクローニング (タスク)
22. ゾーンの移行と zonep2vchk ツールについて
23. Oracle Solaris システムの移行と非大域ゾーンの移行 (タスク)
24. ゾーンがインストールされている Oracle Solaris 11.1 システムでの自動インストールおよびパッケージ
25. Oracle Solaris ゾーンの管理 (概要)
26. Oracle Solaris ゾーンの管理 (タスク)
28. Oracle Solaris ゾーンで発生するさまざまな問題のトラブルシューティング
30. Oracle Solaris 10 システムの評価とアーカイブの作成
31. (オプション) Oracle Solaris 10 ゾーンへの Oracle Solaris 10 native 非大域ゾーンの移行
プロジェクト識別子は、関連する作業を特定するために使用される管理識別子です。プロジェクト識別子は、ユーザー識別子やグループ識別子と同様な、作業負荷に付けられているタグと考えることができます。ユーザーまたはグループは 1 つ以上のプロジェクトに所属できます。プロジェクトは、ユーザー (またはユーザーグループ) が参加することを許可されている作業負荷を表すために使用します。このメンバーシップは、たとえば、使用状況や初期リソース割り当てに基づく課金の根拠となります。ユーザーにはデフォルトのプロジェクトを割り当てる必要がありますが、ユーザーが起動するプロセスは、ユーザーが属しているプロジェクトであれば、どのプロジェクトにでも関連付けることができます。
システムにログインするには、そのユーザーにデフォルトのプロジェクトが割り当てられている必要があります。ユーザーは、そのプロジェクトで指定されたユーザーリストやグループリストに含まれていない場合でも、自動的にそのデフォルトプロジェクトのメンバーになります。
システム上の各プロセスはプロジェクトのメンバーシップを所有しているため、ログインやその他の初期処理にデフォルトのプロジェクトを割り当てるアルゴリズムが必要です。アルゴリズムについては、getprojent(3C) のマニュアルページを参照してください。システムは、手順に従ってデフォルトプロジェクトを判定します。デフォルトプロジェクトが見つからない場合、ユーザーのログインまたはプロセスの開始要求は拒否されます。
システムは、次の手順でユーザーのデフォルトプロジェクトを判定します。
ユーザーが、/etc/user_attr 拡張ユーザー属性データベースで定義されている project 属性のエントリを持っている場合は、その project 属性の値がデフォルトプロジェクトになります。user_attr(4) のマニュアルページを参照してください。
user.user-id という名前のプロジェクトが project データベースにある場合は、そのプロジェクトがデフォルトプロジェクトになります。詳細は、project(4) のマニュアルページを参照してください。
group. group-name というプロジェクトが project データベースにあり、group-name がユーザーのデフォルトのグループ名 (passwd ファイルで指定されている) である場合は、そのプロジェクトがデフォルトプロジェクトになります。passwd ファイルについては、passwd(4) のマニュアルページを参照してください。
project データベースに default という特別なプロジェクトがある場合は、そのプロジェクトがデフォルトプロジェクトになります。
このロジックは getdefaultproj() ライブラリ関数が提供します。詳細は、getprojent(3PROJECT) のマニュアルページを参照してください。
次のコマンドに -K オプションと key=value ペアを付けて使用すると、ローカルファイル内のユーザー属性を設定できます。
ユーザーのデフォルトプロジェクトを設定する
ユーザー情報を変更する
ローカルファイルには、次のようなものがあります。
/etc/group
/etc/passwd
/etc/project
/etc/shadow
/etc/user_attr
NIS などのネットワークネームサービスを使ってローカルファイルに追加エントリを補足する場合、これらのコマンドでは、ネットワークネームサービスで指定された情報を変更することはできません。ただし、これらのコマンドを使用すると、次の内容を外部の「ネームサービスデータベース」と照合して検証できます。
ユーザー名 (または役割) の一意性
ユーザー ID の一意性
指定されたグループ名の存在
詳細は、useradd(1M)、usermod(1M)、および user_attr(4) のマニュアルページを参照してください。
プロジェクトのデータは、ローカルファイル、ドメインネームシステム (DNS)、ネットワーク情報サービス (NIS) のプロジェクトマップ、または LDAP (Lightweight Directory Access Protocol) ディレクトリサービスに保存できます。/etc/project ファイルまたはネームサービスは、ログイン時、および PAM (プラグイン可能認証モジュール) によるアカウント管理に対する要求があったときに使用され、ユーザーをデフォルトのプロジェクトに結合します。
注 - プロジェクトデータベース内のエントリに対する更新は、/etc/project ファイルまたはネットワークネームサービスのデータベース表現のどちらに対するものであっても、現在アクティブなプロジェクトには適用されません。更新内容は、login コマンドまたは newtask コマンドが使用されたときに、プロジェクトに新たに参加するタスクに適用されます。詳細は、login(1) および newtask(1) のマニュアルページを参照してください。
アカウント情報の変更や設定を行う操作には、システムへのログイン、rcp または rsh コマンドの呼び出し、ftp の使用、su の使用などがあります。アカウント情報の変更や設定が必要な場合は、設定可能なモジュール群を使用して、認証、アカウント管理、資格管理、セッション管理などを行います。
PAM の概要については、『Oracle Solaris 11.1 の管理: セキュリティーサービス』の第 14 章「プラグイン可能認証モジュールの使用」を参照してください。
リソース管理は、ネームサービス project データベースをサポートします。project データベースが格納されている場所は、/etc/nsswitch.conf ファイルで定義されます。デフォルトでは files が最初に指定されていますが、ソースは任意の順序で指定できます。
project: files [nis] [ldap]
プロジェクト情報に対して複数のソースが指定されている場合、nsswitch.conf ファイルによりルーチンは最初に指定されているソースで情報を検索し、次にその後に続くソースを検索します。
/etc/nsswitch.conf ファイルについては、『Oracle Solaris Administration: Naming and Directory Services』の第 2 章「Name Service Switch (Overview)」および nsswitch.conf(4) を参照してください。
nsswitch.conf ファイルで project データベースのソースとして files を選択した場合、ログインプロセスはプロジェクト情報を /etc/project ファイルで検索します。詳細は、projects(1) および project(4) のマニュアルページを参照してください。
project ファイルには、システムによって認識されるプロジェクトごとにエントリが 1 行ずつ、次の形式で記述されています。
projname:projid:comment:user-list:group-list:attributes
フィールドの定義は次のとおりです。
プロジェクト名。英数字、下線 (_)、ハイフン (-)、およびピリオド (.) から成る文字列を指定します。ピリオドは、オペレーティングシステムに対して特殊な意味を持つプロジェクト用に予約されており、ユーザーのデフォルトプロジェクトの名前にだけ使用できます。projname にコロン (: ) や改行文字を使用することはできません。
システムでプロジェクトに割り当てられる一意の数値 ID (PROJID)。projid フィールドの最大値は UID_MAX (2147483647) です。
プロジェクトの説明。
プロジェクトへの参加を許可されたユーザーをコンマで区切ったリスト。
このフィールドではワイルドカードを使用できます。アスタリスク (*) を指定した場合、すべてのユーザーにプロジェクトへの参加を許可します。感嘆符に続けてアスタリスクを指定した場合 (!*)、すべてのユーザーのプロジェクトへの参加を拒否します。感嘆符 (!) に続けてユーザー名を指定した場合、指定されたユーザーのプロジェクトへの参加を拒否します。
プロジェクトへの参加を許可されたユーザーのグループをコンマで区切ったリスト。
このフィールドではワイルドカードを使用できます。アスタリスク (*) を指定した場合、すべてのグループにプロジェクトへの参加を許可します。感嘆符に続けてアスタリスクを指定した場合 (!*)、すべてのグループのプロジェクトへの参加を拒否します。感嘆符 (!) に続けてグループ名を指定した場合、指定されたグループのプロジェクトへの参加を拒否します。
リソース制御など、名前と値の対をセミコロンで区切ったリスト (第 6 章リソース制御 (概要)を参照)。name は、オブジェクトに関連する属性を指定する任意の文字列です。また value はその属性のオプション値です。
name[=value]
名前と値の組で、名前に使用できるのは、文字、数字、下線、ピリオドに制限されます。リソース制御 (rctl) のカテゴリとサブカテゴリの区切り文字にはピリオドを使用します。属性名の最初の文字は英字にする必要があります。名前については大文字と小文字は区別されます。
値を、コンマと括弧を使用して構造化することにより、優先順位を設定できます。
セミコロンは、名前と値の組を区切るために使用されます。セミコロンは値の定義には使用できません。コロンは、プロジェクトフィールドを区切るために使用されます。コロンは値の定義には使用できません。
注 - このファイルを読み取るルーチンは、無効なエントリを検出すると停止します。このため、無効なエントリの後に指定されているプロジェクトの割り当てはどれも実行されません。
次に、デフォルトの /etc/project ファイルの例を示します。
system:0:::: user.root:1:::: noproject:2:::: default:3:::: group.staff:10::::
次に、デフォルトの /etc/project ファイルの最後にプロジェクトエントリを追加した例を示します。
system:0:::: user.root:1:::: noproject:2:::: default:3:::: group.staff:10:::: user.ml:2424:Lyle Personal::: booksite:4113:Book Auction Project:ml,mp,jtd,kjh::
/etc/project ファイルにリソース制御と属性を追加することもできます。
プロジェクトのリソース制御を追加する方法については、「リソース制御の設定」を参照してください。
リソース上限デーモン (rcapd(1M) に記載) を使用して物理メモリーリソースの上限をプロジェクトに対して定義する方法については、「プロジェクトの物理メモリーの使用率を制限する属性」を参照してください。
プロジェクトのエントリに project.pool 属性を追加する方法については、「構成の作成」を参照してください。
NIS を使用している場合は、NIS プロジェクトマップ内でプロジェクトを検索するように、/etc/nsswitch.conf ファイルで指定できます。
project: nis files
NIS マップの project.byname と project.bynumber はどちらも、次に示すように /etc/project ファイルと同じ形式です。
projname:projid:comment:user-list:group-list:attributes
詳細については、『Oracle Solaris Administration: Naming and Directory Services』の第 5 章「Network Information Service (Overview)」を参照してください。
LDAP を使用している場合は、LDAP project データベースでプロジェクトを検索するように、/etc/nsswitch.conf ファイルで指定できます。
project: ldap files
LDAP については、『Oracle Solaris Administration: Naming and Directory Services』の第 9 章「Introduction to LDAP Naming Services (Overview)」を参照してください。LDAP データベースでのプロジェクトエントリのスキーマの詳細は、『Oracle Solaris Administration: Naming and Directory Services』の「Oracle Solaris Schemas」を参照してください。