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

passwd -r オプション

passwd コマンドの -r nisplus-r nis-r files といった引数は、nsswitch.conf ファイルの設定よりも優先されます。これらの引数をつけて passwd コマンドを実行すると、「nsswitch.conf ファイルより優先される」ということを知らせる警告メッセージが表示されます。警告メッセージ表示後も操作を続行すると、nsswitch.conf ファイルのシーケンスは無視され、-r によって指定された場所でパスワード情報の更新が行われます。

たとえば、nsswitch.conf ファイルにおいて passwd エントリが以下のように指定されている場合を考えてみましょう。


passwd: files nisplus

この場合、passwd コマンドを -r を使用しないで実行すると、パスワード情報のソース (情報の獲得、変更、保存が行われる場所) は /etc/passwd ファイルになります。しかし -r nisplus オプションを使用して passwd コマンドを実行すると、パスワード情報のソースは /etc/passwd ファイルから NIS+ の passwd テーブルに変更されます。

-r オプションは、「検索シーケンスが誤っていて nsswitch.conf ファイルが使用できない」という場合にのみ使用するようにします。たとえば、2 カ所に格納されているパスワード情報を更新する必要がある場合、1 つ目については nsswitch.conf ファイルで指定されているソースを使用できますが、2 つ目については別のソースを使用する必要があります。

変更しようとすると、次のメッセージが表示されます。


Your specified repository is not defined in the nsswitch file!

このメッセージは、「パスワード情報の更新は、-r オプションで指定された場所で行なわれるが、nsswitch.conf ファイルでその場所がソースとして使用されるまでは更新の影響がまったく現れない」ということを意味します。たとえば、nsswitch.conf ファイルにおいて passwd: files nis という指定が行われているときに、-r nisplus オプションでパスワード使用期間の設定を行なったとします (つまり設定は NIS+ の passwd テーブルにおいて行われることになる)。パスワード情報のソースが nsswitch.conf ファイルにおいて NIS+ passwd テーブル以外の場所に指定されているため、この設定による影響はまったく現れません。