Solaris ネーミングの管理

NIS ユーザーの管理

この節では、ユーザーパスワードの設定、NIS ドメインへの新しいユーザーの追加、ネットグループへのユーザーの割り当てについて説明します。

NIS ドメインに新しいユーザーを追加する

NIS ドメインに新しいユーザーを追加するには、以下の手順に従ってください。

  1. NIS マスターサーバーのルートとしてログインします。

  2. useradd コマンドで新しいユーザーのログイン ID を作成します。

    Solarisリリース 2 のシステムの場合は、次のように入力します。


    # useradd userID
    

    userID は新しいユーザーのログイン ID です。このコマンドは、NIS マスターサーバー上の /etc/passwd ファイルと /etc/shadow ファイルにエントリを作成します。

  3. 新しいユーザーの初期パスワードを作成します。

    新しいユーザーがログインするために使用できる初期パスワードを作成するには、passwd コマンドを以下の形式で実行します。


    # passwd  userID
    

    userID は新しいユーザーのログイン ID です。このユーザーに割り当てるパスワードを入力するよう指示が出ます。

    このステップが必要になるのは、useradd コマンドで作成されたパスワードエントリがロックされ、新しいユーザーがログインできないからです。初期パスワードを指定することで、このパスワードエントリのロックが解除されます。

  4. 必要であれば、新しいエントリをマスターサーバーの passwd マップ入力ファイルにコピーします。

    マスターサーバー上のマップソースファイルが /etc 以外のディレクトリに存在する場合は、新しい行を /etc/passwd ファイルと /etc/shadow ファイルからマスターサーバー上の passwd マップ入力ファイルにコピー&ペーストする必要があります。詳細は、「パスワードファイルと名前空間のセキュリティ」を参照してください。

    たとえば、新しいユーザー baruch を追加すると、/etc/passwd ファイルから passwd 入力ファイルにコピーされる行は次のようになります。


    baruch:x:123:10:User baruch:/home/baruch:/bin/csh:

    /etc/shadow からコピーされる baruch 行は次のようになります。


    baruch:W12345GkHic:6445::::::

    注 -

    NIS マップの入力として Solaris リリース 1 の passwd ファイルフォーマットを使用している場合は、passwd ファイルへの新しいユーザーの追加は、テキストエディタを使用して手作業で行わなければなりません。


  5. パスワード入力ファイルが存在するディレクトリを、Makefile で正しく指定していることを確認します。

  6. 必要であれば、/etc/passwd ファイルと /etc/shadow 入力ファイルから新しいユーザーのエントリを削除します。

    セキュリティの関係上、NIS マスターサーバーの /etc/passwd ファイルと /etc/shadow 入力ファイルでユーザーエントリを保持することは望ましくありません。新しいユーザーのエントリを他のディレクトリに存在する NIS マップソースファイルにコピーした後、マスターサーバー上の userdel コマンドで新しいユーザーを削除します。

    たとえば、マスターサーバーの /etc ファイルから新しいユーザー baruch を削除するには、次のように入力します。


    # userdel baruch

    userdel の詳細は、userdel(1M) のマニュアルページを参照してください。

  7. NIS の passwd マップを更新します。

    マスターサーバー上の passwd 入力ファイルを更新した後、ソースファイルが存在するディレクトリで make を実行して passwd マップを更新します。


    # userdel baruch
    # cd /var/yp
    # /usr/ccs/bin/make passwd 
    
  8. 新しいユーザーのログイン ID に割り当てられた初期パスワードを新しいユーザーに通知します。

    ログイン後、新しいユーザーはいつでも passwd を実行して別のパスワードに変更できます。

ユーザーパスワード

ユーザーは passwd を実行してパスワードを変更します。


% passwd username

(ユーザーの立場から見たパスワードの詳細は、「パスワードの使用」を参照してください。)

ユーザーがパスワードを変更する前に、NIS 管理者はマスターサーバー上の rpc.yppasswdd デーモンを起動してパスワードファイルを更新しなければなりません。rpc.yppasswd デーモンを起動するコマンドは、/usr/lib/netsvc/yp/ypstart ファイルにすでに存在しています。

rpc.yppasswdd デーモンは、自動的にマスターサーバー上の ypstart で起動されます。rpc.yppasswd-m オプションが指定された場合は、ファイルが更新された直後に /var/ypmake が実行されます。passwd ファイルが更新されるたびにこの make が実行されることを回避したい場合は、ypstart スクリプトの rpc.yppasswd コマンドから -m オプションを削除して、crontab ファイルで passwd マップの転送を制御してください。


注 -

rpc.yppasswd -m コマンドの後に引数を指定しないでください。別の動作を行わせるために ypstart スクリプトファイルを編集することは可能ですが、-m オプションを任意に削除すること以外の変更をこのファイルに加えることは望ましくありません。すべてのコマンドおよびデーモンは、一群の適切なコマンド行パラメータが存在するこのファイルで起動されます。このファイルを編集する場合は、rpc.yppasswdd コマンドの編集では特に注意してください。passwd.adjunct ファイルに明示的コールを追加する場合は、パスを $PWDIR/security/passwd.adjunct と正確に指定しなければなりません。$PWDIR/security/passwd.adjunct というパスを指定しない場合は、不適切な処理が行われます。


ネットグループ

NIS ネットグループは、NIS 管理者が管理目的のために定義する、ユーザーまたはマシンのグループ (集合) です。たとえば、次のようなネットグループを作成できます。

各ネットグループには、1 つのネットグループ名が与えられます。ネットグループは、アクセス権を直接設定しません。代わりに、ユーザー名またはマシン名が一般に使用される場所では、ネットグループ名が他の NIS マップで使用されます。たとえば、netadmins というネットワーク管理者ネットグループを作成したと仮定します。netadmins ネットグループのすべてのメンバーに特定マシンへのアクセス権を与えるには、そのマシンの /etc/passwd ファイルに netadmin エントリを追加するだけで、ネットグループ名を /etc/netgroup ファイルに追加して、NIS グループマップに追加することもできます。ネットグループの使用の詳細は、netgroup(4) のマニュアルページを参照してください。

NIS が使用されているネットワーク上では、NIS マスターサーバー上の netgroup 入力ファイルを使用して、netgroupnetgroup.byusernetgroup.byhost という 3 つのファイルが生成されます。netgroup マップには、netgroup 入力ファイルの基本情報が入っています。他の 2 つの NIS マップには、マシンまたはユーザーが指定されるとネットグループ情報の検索が迅速に行われるフォーマットで情報が入っています。

netgroup 入力ファイルのエントリのフォーマットは、name ID です。name はネットグループ名であり、ID は、ネットグループに属しているマシンまたはユーザー、あるいはその両方を示します。ネットグループの ID (メンバー) は、コンマで区切っていくつでも指定できます。たとえば、3 つのメンバーが存在するネットグループを作成する場合、netgroup 入力ファイルエントリのフォーマットは、name IDIDIDとなります。netgroup 入力ファイルエントリのメンバー ID のフォーマットは、次のようになります。


([-|machine], [-|   user], [domain])

machine はマシン名、user はユーザー ID、domain はマシンまたはユーザーの NIS ドメインで、それぞれコンマで区切られます。ドメインエレメントはオプションですが、他の NIS ドメインのマシンまたはユーザーを示す場合には必ず指定します。各エントリではマシンエレメントとユーザーエレメントは必須ですが、ダッシュ (-) は空であることを示すために使用されます。エントリでは、マシンエレメントとユーザーエレメントの関係を示す必要はありません。

netgroup 入力ファイルの 2 つのサンプルエントリを以下に示します。これらの各サンプルエントリでは、admins という名前のネットグループが作成されます。これらの各 admins は、リモートドメイン sales に存在するユーザー haurijuanita、およびマシン altairsirius で構成されます。


admins (altair, hauri), (sirius,juanita,sales)
admins (altair,-), (sirius,-), (-,hauri), (-,juanita,sales)

さまざまなプログラムでは、ログイン、リモートマウント、リモートログイン、リモートシェル作成時に NIS ネットグループマップを使用してアクセス権チェックを行います。さまざまなプログラムとは、mountdloginrloginrsh などです。login コマンドは、passwd データベース内でネットグループ名を見つけた場合は、ネットグループマップでユーザー分類を調べます。mountd デーモンは、/etc/dfs/dfstab ファイル内でネットグループ名を見つけた場合は、ネットグループマップでマシン分類を調べます。rloginrsh (インタフェースを使用するプログラムならどれでも) は、/etc/hosts.equiv または .rhosts ファイル内でネットグループ名を見つけた場合は、ネットグループマップでマシン分類とユーザー分類の両方を調べます。

ネットワークに新しい NIS ユーザーまたはマシンを追加する場合は、netgroup 入力ファイルの該当ネットグループに追加してください。次に、make でネットグループマップを作成し、これを yppush コマンドですべての NIS サーバーに転送してください。ネットグループおよびネットグループ入力ファイル構文の詳細は、netgroup(4) のマニュアルページを参照してください。