Solaris Resource Manager 1.1 のシステム管理

l ノードの変更と削除

新しいユーザーを作成したら、対応する l ノードを作成し、その制限値と特権を設定する必要があります。ユーザーは、l ノードが作成されるまでログインできません。Solaris Resource Manager を使用する場合には、管理者がリミットデータベースと通常の Solaris パスワードマップを並行して保守する必要があります。次のコマンドを実行すると、対応する l ノードがないユーザーのユーザー ID とログイン名が表示されます。

# limreport ¥ !flag.real - uid lname 

l ノードの作成や削除は、アカウントの作成や削除に使うシステムコマンドで自動的には行われません。

これらのアクションを行うかどうかは、管理者次第です。しかし、ユーザーがログインするときに要求すれば、l ノードを自動的に作成できます。詳細は、「PAM サブシステム」を参照してください。

同様に、パスワードマップからユーザーアカウントを削除する場合は、その前に limadm(1MSRM) コマンドを使って、対応する l ノードをリミットデータベースから削除する必要があります。


注 -

サブツリーを削除する場合には、一番下の l ノードから順番に削除する必要があります。削除するサブツリーの一番上から始めると、親を削除された子は「親のない」状態になるため、削除した l ノードの子を制御できなくなります。


ユーザーのユーザー ID を変更する場合は、その l ノードの内容を、新しいユーザー ID に対応する新しい l ノードにコピーし、元の l ノードを削除します。「l ノードのコピーと削除」を参照してください。

子 l ノードがある場合は、新しく作成した l ノードか、他の適切な親 l ノードに接続します。次のコマンドを実行すると、ユーザー ID が X のスケジューリンググループ親を持つすべての l ノードを見つけ、それをユーザー ID が Y の l ノードの子にできます。

# limreport 'sgroup==X' '%u¥tsgroup=Y¥n' uid | limadm set -u -f - 

l ノードのユーザー ID を X から Y に変更するには、次の手順に従います。

  1. ユーザー ID を変更する l ノードの状態を保存します。

    # limreport 'uid==X' - lname preserve > /var/tmp/savelnode.X
    

  2. ユーザーのパスワードマップエントリのユーザー ID を古い値 (X) から新しい値 (Y) に変更します。

  3. 新しいユーザー ID の l ノードを作成し、前に保存した状態を復元します。

    # limadm set -f /var/tmp/savelnode.X
    

  4. 変更する l ノード (ユーザー ID X) のすべての子 l ノードに対し、スケジューリンググループを新しい l ノード (ユーザー ID Y) に変更します。

    # limreport 'sgroup==X' '%u¥tsgroup=Y¥n' uid | limadm set -u -f -  
    

  5. 古い l ノードに接続されているプロセスがないか確認します。

  6. chown(2) コマンドを使って、元のユーザー ID が所有するすべてのファイルの所有者を新しいユーザー ID に変更します。たとえば、次のように入力します。

    # find / -user X -print | xargs chown Y
    

  7. 古い l ノードを削除します。

    # limadm delete X
    

l ノードの保守プログラム

管理者は、ユーザーの l ノードを保守するツールとして主に limadm コマンドを使用します。このコマンドでは、指定する一連のユーザーアカウントに対し Solaris Resource Manager の属性値を変更します。これらのユーザーの l ノードが存在しない場合は、デフォルト値が設定されているブランクの l ノードが最初に作成されます。新しい l ノードのプロパティは次のように設定されます。

新しい l ノードのスケジューリンググループは、そのユーザーアカウントの l ノードが存在していればユーザー other (srmother) に、存在しなければ root l ノードにそれぞれ設定されます。

limadm を呼び出すには、変更を行うための管理特権が必要です。つまり、スーパーユーザーであるか、uselimadm フラグが設定されているか、自分のスケジューリンググループのメンバーの属性だけを変更できる副管理者である必要があります。副管理者が limadm を使用する場合には、次の制約があります。

管理者は、limadm コマンドを使って l ノードを削除できます。このとき、対応するユーザーアカントはパスワードマップから削除されません。limadm を使用するには、スーパーユーザーであるか、uselimadm フラグまたは admin フラグが設定されている必要があります。admin フラグだけが設定されている場合には、自らがグループヘッダーであるグループのユーザーの l ノードしか変更できません。