Solaris のシステム管理 (ネーミングとディレクトリサービス : DNS、NIS、LDAP 編)

NIS ユーザーの管理

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

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

  1. NIS マスターサーバーでスーパーユーザーになります。

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


    # useradd userID
    

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

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

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


    # passwd userID
    

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

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

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

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

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


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

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


    brown:W12345GkHic:6445::::::
  5. パスワード入力ファイルが格納されているディレクトリが Makefile で正しく指定されていることを確認します。

  6. 必要に応じて、/etc/passwd ファイルと /etc/shadow ファイルから新しいユーザーのエントリを削除します。

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

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


    # userdel brown
    

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

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

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


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

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

ユーザーパスワードの設定

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

% passwd username

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

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


注 –

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


NIS ネットグループ

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 ID IDID となります。 netgroup 入力ファイルエントリのメンバーID のフォーマットは次のようになります。


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

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

netgroup 入力ファイルの 2 つのサンプルエントリを次に示します。これらの各サンプルエントリでは、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 (ruserok インタフェースを使用するプログラムならどれでも) は、/etc/hosts.equiv または .rhosts ファイル内でネットグループ名を見つけた場合に、ネットグループマップでマシン分類とユーザー分類の両方を調べます。

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