NIS の管理 (手順)
この章では、NIS の管理方法について説明します。内容は次のとおりです。
パスワードファイルと名前空間のセキュリティ
セキュリティの関係上、次の点に注意してください。
マスターサーバーの NIS マップへのアクセスは制限します。
未許可アクセスを防止するためには、NIS パスワードマップの作成に使用されたファイルに root エントリを含めないでください。したがって、root エントリをこのパスワードファイルから削除して、このパスワードファイルをマスターサーバーの /etc ディレクトリ以外のディレクトリにおく必要があります。このディレクトリへの未許可アクセスは、防止しなければなりません。
たとえば、マスターサーバーのパスワード入力ファイルは、別のファイルへのリンクではなく Makefile に指定されている限り、/var/yp/ などのディレクトリに存在するか選択されたディレクトリに存在します。/usr/lib/netsvc/yp/ypstart スクリプトは、Makefile に指定された構成に従って自動的に適切なディレクトリオプションを設定します。
注 - この NIS 実装では、NIS パスワードマップを作成するための入力として、Solaris 1 バージョンの passwd ファイルのフォーマットに加え、Solaris 2 の passwd ファイルと shadow ファイルのフォーマットも使用できます。
NIS ユーザーの管理
この節では、ユーザーパスワードの設定、NIS ドメインへの新しいユーザーの追加、ネットグループ (netgroups) へのユーザーの割り当てについて説明します。
NIS ドメインに新しいユーザーを追加する
NIS ユーザーを追加する方法
NIS マスターサーバーでスーパーユーザーになります。
useradd コマンドで新しいユーザーのログイン ID を作成します。
# useradd userID
userID は新しいユーザーのログイン ID です。このコマンドは、NIS マスターサーバー上の /etc/passwd ファイルと /etc/shadow ファイルにエントリを作成します。
新しいユーザーの初期パスワードを作成します。
新しいユーザーがログインするための初期パスワードを作成するには、passwd コマンドを実行します。
# passwd userID
userID は新しいユーザーのログイン ID です。このユーザーに割り当てるパスワードを入力するようにプロンプトが表示されます。
この手順が必要になるのは、useradd コマンドで作成されたパスワードエントリがロックされ、新しいユーザーがログインできないからです。初期パスワードを指定することで、このパスワードエントリのロックが解除されます。
必要に応じて、マスターサーバーの 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::::::
パスワード入力ファイルが格納されているディレクトリが Makefile で正しく指定されていることを確認します。
必要に応じて、/etc/passwd ファイルと /etc/shadow ファイルから新しいユーザーのエントリを削除します。
セキュリティの関係上、NIS マスターサーバーの /etc/passwd ファイルと /etc/shadow ファイルでユーザーエントリを保持することは望ましくありません。他のディレクトリに存在する NIS マップソースファイルに新しいユーザーのエントリをコピーした後、マスターサーバー上で userdel コマンドを使用して新しいユーザーを削除します。
たとえば、マスターサーバーの /etc ファイルから新しいユーザー brown を削 除するには次のように入力します。
# userdel brown
マスターサーバー上の passwd 入力ファイルを更新した後、ソースファイルが存在するディレクトリで make を実行して passwd マップを更新します。
# userdel brown # cd /var/yp # /usr/ccs/bin/make passwd
新しいユーザーのログイン ID に割り当てられた初期パスワードを新しいユーザーに通知します。
ログイン後、新しいユーザーはいつでも passwd を実行して別のパスワードに変更できます。
ユーザーパスワードの設定
ユーザーは passwd を実行してパスワードを変更します。
% passwd username
username はユーザー名です。ユーザーがパスワードを変更する前に、NIS 管理者はマスターサーバー上で rpc.yppasswdd デーモンを起動してパスワードファイルを更新しなければなりません。rpc.yppasswdd デーモンを起動するコマンドは、/usr/lib/netsvc/yp/ypstart ファイルにすでに存在しています。
rpc.yppasswdd デーモンは、マスターサーバー上の ypstart で自動的に起動されます。rpc.yppasswdd に -m オプションが指定された場合は、ファイルが更新されるとすぐ /var/yp の make が実行されます。passwd ファイルが更新されるたびにこの make が実行されることを回避したい場合は、ypstart スクリプトの rpc.yppasswdd コマンドから -m オプションを削除して、crontab ファイルで passwd マップの転送を制御してください。
注 - rpc.yppasswdd -m コマンドの後に引数を指定しないでください。別の動作のために ypstart スクリプトファイルを編集することは可能ですが、-m オプションを任意に削除すること以外の変更をこのファイルに加えることは望ましくありません。すべてのコマンドおよびデーモンは、適切なコマンド行パラメータのセットが存在するこのファイルで起動されます。このファイルを編集する場合は、rpc.yppasswdd コマンドの編集では特に注意してください。passwd.adjunct ファイルに明示的コールを追加する場合は、パスを $PWDIR/security/passwd.adjunct と正確に指定しなければなりません。正確に指定しない場合は、不適切な処理が行われます。