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

第 16 章 パスワードの管理

この章では、一般ユーザー (NIS+ 主体) の観点から見た passwd コマンドの使用方法と、NIS+ 管理者によるパスワードシステムの管理方法を説明します。


注 –

NIS+ セキュリティタスクには、Solstice AdminSuite ツールが利用可能であればもっと簡単に実行できるものがあります。



注 –

NIS+ は、将来のリリースでサポートされない可能性があります。NIS+ から LDAP への移行支援ツールは、Solaris 9 オペレーティング環境で使用できます (『Solaris のシステム管理 (ネーミングとディレクトリサービス : DNS、NIS、LDAP 編)』を参照)。詳細については、http://www.sun.com/directory/nisplus/transition.html を参照してください。


パスワードの使用

マシンへのログインの際には、ユーザー名 (「ログイン ID」とも呼ばれる)、およびパスワードを入力する必要があります。ログイン ID は公開の情報ですが、パスワードを知っているのは所有者だけです。

ログインの方法

システムへのログインは以下の手順で行います。

  1. Login: プロンプトで、ログイン ID を入力します。

  2. Password: プロンプトで、パスワードを入力します。

    (秘密を守るため、入力してもパスワードは画面に表示されません)

    ログインに成功すると、本日のメッセージ (ない場合もある)、続いてコマンド行プロンプト、ウィンドウシステム、通常のアプリケーションなどが表示されます。

Login incorrect メッセージ

Login incorrect」というメッセージは以下のことを意味します。

will expire メッセージ

Your password will expire in N days」メッセージ (または「Your password will expire within 24 hours」というメッセージ) は、「パスワードが、N あるいは 24 時間以内に有効期限に達する」ということを意味します。

このメッセージが表示されたら、パスワードをすぐに変更する必要があります (パスワードの変更方法を参照)。

Permission denied メッセージ

ログイン ID とパスワードを入力後、 「Permission denied」というメッセージが表示されて login: プロンプトに戻る場合があります。 これは、管理者がパスワードをロックしたか、管理者がユーザーのアカウントを終了したか、パスワード権限の有効期限が切れたために、ログインに失敗したことを意味します。このような場合、管理者がパスワードロックを解除するか、アカウントを復旧するまではログインができません。システム管理者に問い合わせてください。

パスワードの変更方法

セキュリティを確保するため、パスワードは定期的に変更してください (新しいパスワードを作成する場合の必要条件、および基準については、パスワードの選択を参照)。


注 –

現在の passwd コマンドでは、以前 nispasswd で行なっていた操作がすべて行えます。NIS+ の名前空間に特有な操作を行うには、passwd -r nisplus を使用します。


パスワードの変更は以下の手順で行います。

  1. システムプロンプトから passwd コマンドを実行します。

  2. Enter login password (多少異なる場合がある) プロンプトで、従来のパスワードを入力します。

    キー入力の内容は画面には表示されません。

    • Sorry: less than N days since the last change」というメッセージが表示されたら、「現在使用中のパスワードは、作成されてからまだ十分な時間が経過していないため変更できない」ということを意味します。この場合はシステムプロンプトに戻ります。システム管理者に「パスワードは、作成後何日経過すれば変更できるのか」を問い合わせてください。

    • You may not change this password」というメッセージが表示された場合は、変更がネットワーク管理者によって禁止されているということを意味します。

  3. Enter new password プロンプトで、新しいパスワードを入力します

    キー入力の内容は画面には表示されません。

    この時点で、新しいパスワードが必要条件を満たしているかどうかがシステムによって確認されます。

    • 満たしている場合は再入力を求められます。

    • 満たしていない場合は、その旨を知らせるメッセージが表示されます。このときは、必要条件を満たす別のパスワードを入力する必要があります。

    パスワードの必要条件については、パスワードの必要条件を参照してください。

  4. Re-enter new password プロンプトで、新しいパスワードを再入力します。

    キー入力の内容は画面には表示されません。

    1 回目と 2 回目で入力したパスワードが異なっていた場合は、手順 1 から繰り返すようにプロンプトが表示されます。


    注 –

    root のパスワードを変更した場合は、その直後に必ず chkey -p を実行する必要があります (詳細は、ルートからのルート鍵の変更、および、別のマシンからルート鍵を変更する手順を参照してください)。root のパスワードを変更したあと chkey -p を実行しないと、root で正常にログインできなくなります。


このメッセージは、「パスワードが有効期限を過ぎている」ということを意味します。つまり、パスワードを作成してから時間が経ちすぎているので、すぐに作成し直す必要があるということです (新しいパスワードを作成する場合の必要条件については、パスワードの選択を参照してください)。

この場合、新しいパスワードの作成は以下の手順で行います。

  1. Enter login password (多少異なる場合がある) プロンプトで、従来のパスワードを入力します。

    キー入力の内容は画面には表示されません。

  2. Enter new password プロンプトで、新しいパスワードを入力します。

    キー入力の内容は画面には表示されません。

  3. Re-enter new password プロンプトで、新しいパスワードを再入力します。

    キー入力の内容は画面には表示されません。

パスワード変更の失敗

システムの中には、パスワード変更の試行回数、所要時間に制限を設けているものもあります (他の人が試行錯誤によって勝手にパスワードを変更してしまうのを防ぐため)。

パスワード変更、ログインの試行回数、または所要時間が指定の範囲を超えた場合は、「Too many failures - try later」、または「Too many tries: try again later」といったメッセージが表示されます。この種のメッセージが表示されると、一定の時間 (システム管理者が指定) が経過するまでログイン、パスワードの変更は行えなくなります。

パスワードの選択

コンピュータのセキュリティの侵害の例としては、「他のユーザーのパスワードを推測によって盗む」というものが多くみられます。passwd コマンドには、パスワードを推測しにくいものにするための基準がいくつか設けられていますが、ユーザーに関していくつかの情報を得るだけでパスワードがわかってしまう人もいるのです。したがって、「自分にとって覚えやすく他人にとって推測しにくい」というのが良いパスワードです。逆に悪いパスワードとは、「自分にとって覚えにくく (メモしないと覚えられない)、自分を知る他人にとっては推測しやすい」というものです。

パスワードの必要条件

パスワードの必要条件は以下のとおりです。

悪いパスワードの例

悪いパスワードの例としては以下のようなものが考えられます。

良いパスワードの例

良いパスワードの例としては以下のようなものが考えられます。

パスワードの管理

この節では、NIS+ 名前空間でパスワードを管理する方法について説明します。この節では、NIS+ セキュリティシステムと、そのログインパスワードについて十分に理解していることを想定しています (NIS+ セキュリティシステムについては、第 11 章「NIS+ のセキュリティの概要」を参照してください)。


注 –

現在の passwd コマンドでは、以前 nispasswd で行なっていた操作がすべて行えます。NIS+ の名前空間に特有な操作を行うには、passwd -r nisplus を使用します。


nsswitch.conf ファイルの必要条件

passwd コマンドの使用や、パスワードの使用期間に関する設定を正しく行うには、nsswitch.conf ファイル中の passwd エントリがすべてのマシンにおいて正しくなければなりません。passwd コマンドが「パスワード情報をどこに要求するか」および「パスワード情報をどこで更新するか」は、このエントリによって決定されます。

passwd エントリの設定として考えられるのは、以下の 5 種類だけです。


注意 – 注意 –

使用しているネットワークのすべてのマシン上に存在する nsswitch.conf ファイルは、必ず上記の passwd 構成のうちの 1 つを使用していなければなりません。別の方法で、passwd エントリを構成した場合、ユーザーがログインできない可能性があります。


nispasswd コマンド

現在の passwd コマンドでは、以前 nispasswd で行なっていた操作がすべて行えます。コマンド行で実行するときは、nispasswd ではなく passwd を使用します。

旧バージョンとの互換性を確保するため、nispasswd も完全な形で残っている点に注意してください。

yppasswd コマンド

現在の passwd コマンドでは、以前 yppasswd で行なっていた操作がすべて行えます。コマンド行で実行するときは、yppasswd ではなく passwd を使用します。

旧バージョンとの互換性を確保するため、yppasswd も完全な形で残っている点に注意してください。

passwd コマンド

passwd コマンドでは、パスワードに関する様々な操作が行えます。現在の passwd コマンドは、nispasswd コマンドの代わりとして使用できます。従来 nispasswd で行なっていた操作にも、passwd コマンドを使用するようにしてください。passwd コマンドのフラグ、オプション、引数の詳細は、マニュアルページを参照してください。

一般ユーザーが passwd コマンドで行える操作には以下のものがあります。

管理者が passwd コマンドで行える操作には以下のものがあります。

passwd コマンドと nsswitch.conf ファイル

passwd などのコマンドがパスワード情報をどこから得て、どこに保存するのかということは、nsswitch.conf ファイルで設定します。nsswitch.conf ファイルの passwd エントリの設定に使用する文字列はそれぞれ以下のことを意味します。

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 テーブル以外の場所に指定されているため、この設定による影響はまったく現れません。

passwd コマンドと NIS+ 環境

この章で「NIS+ 環境」とは、「nsswitch.confファイルでパスワード情報のソースが nisplus に設定されている」、「passwd コマンドが -r nisplus という引数をつけて実行されている」という状況を指します。

passwd コマンドと資格

passwd コマンドは NIS+ 環境 (前節参照) で実行された場合、ユーザーに資格があってもなくても機能するよう設計されています。ただし資格のないユーザーが passwd コマンドで行えるのは、自らのパスワードの変更だけです。他のパスワード操作は、資格のある (認証された)、必要なアクセス権を持った (承認された) ユーザーだけが行えます。

passwd コマンドとアクセス権

承認およびアクセス権については、ユーザーがすべて適切な資格を持っているという前提で説明をします。

通常の NIS+ 環境では、passwd テーブルの所有者はいつでも制約なしにパスワード情報の変更ができます (デフォルトの場合)。つまり passwd テーブルの所有者は、読み取り、作成、変更、削除に関して完全に承認されている (アクセス権を与えられている) ということになります。また所有者は以下のことも行えます。


注 –

与えられているアクセス権には関わりなく、その他クラス、未認証クラスのユーザーはすべてパスワードの使用期間の制約に従います。つまり、自分のパスワードであろうと他のユーザーのパスワードであろうと、作成されてから一定の時間が経過するまでは変更ができないということです。また有効期間の過ぎたパスワードを変更しなければならないという点も、グループ、その他、未認証といったクラスのメンバーすべてに共通です。しかしパスワード使用期間に関する上記のような制約は、passwd テーブルの所有者には適用されません。


NIS+ 環境で passwd コマンドを使用する場合、行おうとする操作に関する承認 (アクセス権) が必要です。

表 16–1 passwd コマンドに関するアクセス権

操作の種類 

必要な権利 

アクセス対象となるオブジェクト 

情報を表示する 

読み取り権 

passwd テーブルのエントリ

情報を更新する 

変更権 

passwd テーブルのエントリ

情報を追加する 

変更権 

passwd テーブル

passwd コマンドと鍵

NIS+ 環境で passwd コマンドを使用して主体のパスワードを変更しようとすると、主体の非公開鍵が cred テーブル中で更新されます。

passwd コマンドと他のドメイン

他のドメインの passwd テーブルに対して操作をするには、passwd コマンドを以下のように使用します。


passwd [options] -D domainname

nistbladm コマンド

nistbladm は、passwd テーブルをはじめとする NIS+ テーブルに関する情報を作成、変更、表示するのに使用するコマンドです。


注意 – 注意 –

nistbladm コマンドを使用してパスワード操作をするには、nistbladmpasswd テーブルのシャドウ列に適用する必要があります。nistbladm をシャドウ列に適用するのは複雑で微妙な作業になります。passwd コマンド、admintool、または Solstice AdminSuite ツールで容易に行える操作には、nistbladm コマンドを使用しない方が良いでしょう。


つまり以下のような操作には、nistbladm ではなく passwd コマンドや Solstice AdminSuite ツールを使用してください。

nistbladm コマンドには以下の機能があります。

nistbladm と シャドウ列のフィールド

nistbladm コマンドでは、シャドウ列の様々なフィールドの値を指定することによってパスワードパラメータの設定を行います。シャドウ列のフィールドの値は、以下のような形式で設定します。

この図は、シャドウ列のフィールドの形式を示します。

引数の意味は、それぞれ以下のとおりです。


注意 – 注意 –

nistbladm を使用して passwd テーブルのシャドウ列を設定する場合、すべてのフィールドに適切な値を指定する必要があります。空白のまま残したり、0 を入力したりしても「変更なし」という意味にはなりません。


ユーザー amy が、パスワードの最終変更日が 1995 年 5 月 1 日 (1970 年 1 月 1 日から数えて 9246 日目)、パスワード作成後の変更禁止期間が 7 日、パスワードの有効期間が 30 日、「パスワードが間もなく無効になる」という警告が表示されるのがパスワード作成から 26 日目以降、ログインとログインの間隔の最大値が 15 日、アカウントの有効期限が (1970 年 1 月 1 日から) 9255 日目という設定にするには、以下のように入力します。

nistbladm と日数

パスワードの使用期間に関するパラメータは、日数で表されるものがほとんどです。日数を指定する際には以下の規則を守る必要があります。

最終変更日、期限のどちらのフィールドも、入力するのは 1970 年 1 月 1 日から数えた日数です。たとえば、下記のようになります。

表 16–2 1970 年 1 月 1 日からの日数

日付 

日数 

1970 年 1 月 1 日 

1970 年 1 月 2 日 

1971 年 1 月 2 日 

365 

1997 年 1 月 1 日 

9863 

関連コマンド

passwd および nistbladm コマンドと類似の機能を持つコマンドは他にもあります。それぞれについて表 16–3 にまとめてあります。

表 16–3 関連コマンド

コマンド名 

説明 

yppasswd

現在は passwd コマンドにリンク。yppasswd を起動すると passwd コマンドが起動される

nispasswd

現在は passwd コマンドにリンク。nispasswd を起動すると passwd コマンドが起動される

niscat

テーブルの内容を表示するのに使用 

パスワード情報の表示

ドメイン中のユーザーのパスワード情報を表示するには、passwd コマンドを使用します。情報は、全ユーザーについて同時に表示することも、ユーザーごとに表示することもできます。

自分のパスワード情報


passwd -s

ドメインの全ユーザーの情報


passwd -s -a

個々のユーザー


passwd -s username

表示できるのは、エントリおよび列のうち読み取り権を持っているものだけです。エントリの表示形式は以下のとおりです。

表 16–4 NIS+ パスワード情報表示の形式

フィールド 

説明 

参照箇所 

username

ユーザーのログイン名 

 

status

パスワードの状態。PS は、そのアカウントにパスワードがあることを示す。LK は、そのパスワードがロックされていることを示す。NP は、そのアカウントにパスワードがないことを示す 

パスワードのロック

mm/dd/yy

パスワードが最後に変更された日付 (GMT で表す) 

 

min

パスワード作成後の変更禁止期間 (日数) 

パスワードの変更禁止期間の設定

max

パスワードの有効期間 (日数) 

パスワードの有効期間の設定参照

warn

「パスワードが間もなく無効になる」という警告が表示されるまでの日数 

警告期間の設定参照

expire

パスワードの有効期限 (日付) 

パスワード使用権の有効期限参照

inactive

ログインとログインの間隔の最大値 (日数)。ログインとログインの間隔がここで指定した日数を超えると、ログインができなくなる 

ログインの間隔の最大値の指定参照

別のドメインの passwd テーブルのエントリを表示するには、-D オプションを使用します。

ドメイン中の全ユーザー


passwd -s -a -D domainname

個々のユーザー


passwd -s -D domainname username

パスワードの変更

新しいパスワードを作成するときは、パスワードの必要条件に示された必要条件を満たすようにします。

自分のパスワードの変更

自分のパスワードを変更するには、以下のように入力します。


station1% passwd

「古いパスワードの入力」、「新しいパスワードの入力」、「新しいパスワードの再入力 (確認のため)」という順にプロンプトが表示されるので、それに従って作業します。

他人のパスワードの変更

他人のパスワードを変更するには、以下のように入力します。

同じドメイン内の他のユーザー


passwd username

他のドメインのユーザー


passwd -D domainname username 

NIS+ 環境 (passwd コマンドと NIS+ 環境参照) で passwd コマンドを使用して他人のパスワードを変更する場合、passwd テーブルにおける該当ユーザーエントリへの変更権が必要になります。つまり、該当する passwd テーブルに対して変更権を持つグループのメンバーになる必要があります。このとき、該当ユーザーの古いパスワードや自分のパスワードを入力する必要はありません。確認のため新しいパスワードの入力を求めるプロンプトが 2 回表示されます。一致しない場合は、さらに 2 回入力する必要があります。

root のパスワードの変更

passwd コマンドで root のパスワードを変更した場合は、その直後に chkey -p を実行する必要があります。chkey -p を実行しないと、root で正しくログインできなくなります。

root のパスワードの変更手順は以下のとおりです。

  1. root でログインします。

  2. passwd コマンドで root のパスワードを変更します。

    nispasswd は使用しないでください。

  3. chkey -p を実行します。

    必ず -p オプションを使用します。

パスワードのロック

NIS+ 環境 (passwd コマンドと NIS+ 環境を参照) で passwd コマンドを使用してパスワードのロックができるのは、該当ユーザーの passwd テーブル中のエントリに対する変更権を持っている管理者 (グループのメンバー) です。パスワードがロックされると、そのアカウントは使用できなくなります。また、パスワードがロックされているユーザー名を使ってログインをしようとすると、「Login incorrect」というメッセージが表示されます。

該当ユーザーがすでにログインしている場合、パスワードをロックすることによる影響は現れないという点に注意してください。ただ、パスワードの入力が必要になる loginrloginftptelnet などの機能は使用できなくなります。

すでにログインしているユーザーのパスワードをロックしても、そのユーザーが passwd コマンドでパスワードを変更するとロックは解除されます。

以下のようなことが有効です。

パスワードのロックは以下のように行います。


passwd -l username

パスワードロックの解除

パスワードのロックは、パスワードを変更すれば解除されます。この場合、「変更」とは必ずしもパスワードを新しいものに変えるという意味ではなく、パスワード変更の手順を踏むということです (元とまったく同じパスワードに「変更する」ということも可能です)。ただし、新しいパスワードに変更することも可能です。

たとえば、jody というユーザーのパスワードのロックを解除するには、以下のように入力します。


station1% passwd jody

パスワードの使用期間に関する設定

設定により、パスワードの定期的な変更をユーザーに強制できます。

たとえば、以下のような設定が可能です。

さまざまな最大日数や期間に到達していても、それまでにすでにログインしているユーザーは、上記の機能には影響されないことを覚えておいてください。そのまま普通に動作し続けます。

影響が現れるのは、次回のログイン時か、ログインを必要とする機能 (以下に例を示す) を使用した時です。

パスワードの使用期間に関する設定は、ユーザーごとに行います。パスワードの使用期間に関する必要条件はユーザーによって違っている可能性があります。ユーザーは、一般のデフォルト設定を適用することもできます。パラメータについての詳細については、パスワードの使用期間に関する設定を参照してください。

パスワードの強制的な変更

次回ログイン時のパスワード変更をユーザーに強制するには、以下の 2 種類の方法があります。

使用期間に関する設定を引き続き有効にする場合


passwd -f username

使用期間に関する設定を解除する場合


passwd -x 0 username

パスワードの有効期間の設定

パスワードの有効期間を設定するには、passwd コマンドの引数 max を使用します。有効期間は日数で指定します。有効期間が終了した後は、新しいパスワードをユーザーが作成しなければなりません。有効期間終了後に同じパスワードでログインしようとしても、「Your password has been expired for too long」というメッセージが表示され、新しいパスワードを作成しない限りログインを完了できません。

引数 max は以下の形式で使用します。


passwd -x max username 

引数の意味は、それぞれ以下のとおりです。

たとえば、schweik というユーザーに 45 日ごとのパスワード変更を強制するには、以下のように入力します。


station1% passwd -x 45 schweik

パスワードの変更禁止期間の設定

パスワード作成後の変更禁止期間を設定するには、引数 min を使用します。変更禁止期間が終了しないうちにパスワードを変更しようとすると、「Sorry less than N days since the last change」というメッセージが表示されます。

引数 min は以下の形式で使用します。


passwd -x max  -n min username

引数の意味は、それぞれ以下のとおりです。

たとえば、ユーザー eponine のパスワードの有効期間を 45 日間、変更禁止期間を 7 日間に設定する場合は、以下のように入力します。


station1% passwd -x 45 -n 7 eponine

min 引数には以下の規則があります。

警告期間の設定

パスワードの有効期限以前の一定期間、ログイン時に「Your password will expire in N days」(N は日数) というメッセージが表示されるようにするには、引数 warn を使用します。

たとえば、パスワードの有効期限が 30 日間 (引数 -max で指定する) で、warn が 7 に設定されている場合、パスワード作成後 24 日目のログイン時に「Your password will expire in 7 days」という警告メッセージが表示されます。また翌日 (パスワード作成後 25 日目) には、警告メッセージは「Your password will expire in 6 days」となります。

警告メッセージは、電子メールで送信されるものでも、ユーザーのコンソールウィンドウに表示されるものでもないという点に注意してください。表示されるのは、ユーザーのログイン時のみです。つまり指定の期間ユーザーがログインしなければ警告メッセージは表示されません。

warn の値は、max の値との「関連によって機能する」ものであるという点に注意してください。つまり、「max によって設定される有効期限から逆算されるもの」ということです。warn の値が 14 であれば、「Your password will expire in N days」というメッセージの表示が開始されるのは、有効期限の 2 週間前です。

warn の値は max の値との関連によって機能します。max 値の指定がある場合のみ有効です。そのため、max 値の指定がない場合は、warn 値は意味がなくなります。

引数 warn は以下の形式で使用します。


passwd -x max  -w   warn username

引数の意味は、それぞれ以下のとおりです。

たとえば、nilovna というユーザーの、パスワードの有効期間を 45 日間とし、警告メッセージの表示を有効期限の 5 日前から開始する場合、以下のように入力します。


station1% passwd -x 45 -w 5 nilovna

warn 引数には以下の規則があります。


注 –

Solstice AdminSuite を使用して、warm 値をユーザーのパスワード用に設定することもできます。


パスワードの使用期間に関する設定の解除

ユーザーのパスワードの有効期間を解除するには、以下の 2 つの方法があります。

有効期間を取り消す。パスワードはそのまま使用できる


passwd -x -1 username 

次回ログイン時にパスワードを強制的に変更させた後、有効期間を取り消す


passwd -x 0 username

上記の方法では、max の値を 0 か -1 に設定する (詳細については、パスワードの有効期間の設定を参照)

たとえば、ユーザー mendez のパスワードを次回ログイン時に強制的に変更させ、その後パスワードの有効期間を解除するには、以下のように入力します。


station% passwd -x 0 mendez

注 –

Solstice AdminSuite を使用して、このパラメータをユーザーのパスワード用に設定できます。


この値を設定するには、nistbladm コマンドを使用できます。たとえば、ユーザー otsu のパスワードの有効期間を取り消し、変更の必要がないようにするには、以下のように入力します。


station1% nistbladm -m `shadow=0:0:-1:0:0:0:0' [name=otsu],passwd.org_dir

nistbladm コマンドの使用方法の詳細については、nistbladm コマンドを参照してください。

パスワード使用権の有効期限

引数 expire には「ユーザーのパスワード使用権がいつ無効になるか」を日付で指定します。ユーザーのパスワード使用権が無効になると、そのユーザーは有効なパスワードを所有できなくなります。該当ユーザーのログインをこの日以降禁止し、システムから締め出します。

たとえば、ユーザー pete の有効期限を 1997 年 12 月 31 日に設定すると、どんなパスワードを使用しても 1998 年 1 月 1 日以降 pete という ID ではログインができなくなります。ログインをしようとしても、「Login incorrect」というメッセージが表示されます。

「有効期間」と「有効期限」の違い

パスワード使用権の有効期限は、パスワードの有効期間とは異なっています。

有効期限の設定

パスワード使用権が無効になっても、その影響が現れるのは、該当ユーザーがログインをしようとするときだけです。該当ユーザーがすでにログインしていた場合には、パスワード使用権が無効になったことによる影響は現れません。ただし、rlogintelnet などログインを必要とする機能は使用できなくなり、いったんログアウトするとログインできなくなります。以上のことから、パスワード使用権に有効期限を設ける場合、毎日のワークセッション終了時には必ずログアウトするようユーザー全員に指示してください。


注 –

Solstice AdminSuite ツールを使用して有効期限の設定ができるときは、nistbladm を使用しないでください。Solstice AdminSuite ツールの方が使いやすく、設定を誤る可能性が低くなります。


nistbladm コマンドでパスワード使用権の有効期限を指定するには、以下のように入力します。


nistbladm -m `shadow=n:n:n:n:n:n6:n' [name=login],passwd.org_dir

引数の意味は、それぞれ以下のとおりです。

たとえば、ユーザー pete の有効期限を 1995 年 12 月 31 日に設定する場合は、以下のように入力します。


station1% nistbladm -m `shadow   =n:n:n:n:n:9493:n' \ 
[name=pete],passwd.org_dir 

注意 – 注意 –

空白のフィールドや、値の正しくないフィールドがあると機能しません。


パスワード使用権の有効期限の解除

有効期限を過ぎたパスワード使用権を再び使用できる状態にするには、nistbladm コマンドを使用して該当フィールド (n6) に -1 を指定します。例を以下に示します。


station1% nistbladm -m `shadow=   n:n:n:n:n:-1:n' \ 
[name=huck],passwd.org_dir

また、nistbladm で「n6」フィールドを将来の日付に設定し直すという方法も使用できます。

ログインの間隔の最大値の指定

引数 inactive には、「ログインからログインまでの間隔を最大何日あけることができるか」を指定します。この引数に指定された日数を超えてログインが行われなかった場合、該当ユーザーはマシンにログインできなくなります。ログインしようとすると、「Login incorrect」というメッセージが表示されます。

この設定はネットワーク全体ではなく、個々のマシンに対して行われます。したがって、NIS+ 環境においてログイン間隔の最大値を設定するには、該当ユーザーのエントリをホームドメインの passwd テーブルに指定します。この設定はネットワーク上のすべてのマシンで該当ユーザーに対して適用されます。

たとえば、ユーザー sam の最大ログイン間隔を 10 日間に設定した場合を考えてみましょう。sam は 1 月 1 日にマシン A とマシン B にログインをした後、ログアウトしました。続いて 3 日後の 1 月 4 日、sam はマシン B にログインした後ログアウトしました。さらに 9 日後の 1 月13日になると、sam はマシン B にはログインできますがマシン A にはログインできません。マシン B においては最終ログインから 9 日間しか経過していませんが、マシン A においては 13 日間が経過しているからです。

最大ログイン間隔の設定は、まだ一度もログインをしていないマシンには適用されないという点に注意してください。一度もログインをしていないマシンには、引数 inactive の設定および他のマシンへのログイン実績がどのようになっていようとログインが可能です。


注意 – 注意 –

「毎日の作業終了時には必ずログアウトをせよ」という指示がユーザーに対して行われていない場合、最大ログイン間隔の設定はしないでください。この設定はログインにだけ関係しており、他の形でシステムを使用する場合のことは考慮されていません。仮にユーザーが作業終了後もログインしたままの状態でシステムを放置しておくと、ログインが発生しないため指定のログイン間隔をすぐ超えてしまいます。指定のログイン間隔を超えた状態でリブートやログアウトをすると、再びログインできなくなります。



注 –

Solstice AdminSuite ツールを使用して最大ログイン間隔の設定ができるときは、nistbladm を使用しないでください。Solstice AdminSuite ツールの方が使いやすく、設定を誤る可能性が低くなります。


最大ログイン間隔の設定を nistbladm コマンドで行う場合は、以下の形式を使用します。


nistbladm -m `shadow= n:n:n:n:n5:n:n' [name=login], passwd.org_dir

引数の意味は、それぞれ以下のとおりです。

たとえば、ユーザー sam の最大ログイン間隔を 7 日間に指定する場合は、以下のように入力します。


station1% nistbladm -m `shadow= n:n:n:n:n:7:n:n' [name=sam],passwd.org_dir 

最大ログイン間隔の設定を解除する (ログインできなくなったユーザーを再びログインできるようにする) には、nistbladminactive を -1 に指定します。

パスワードの使用規則の設定 (およびそのデフォルト)

パスワードの使用規則に関する設定およびそのデフォルトについて説明します。

/etc/defaults/passwd ファイル

パスワード情報の獲得先が nsswitch.conf ファイルで files に指定されているすべてのユーザーのパスワードについて、4 つのデフォルト設定を行うためのファイルです。/etc/defaults/passwd ファイルで行われたデフォルト設定は、/etc ディレクトリのファイルからパスワード情報を獲得しているユーザーにだけ適用されます。パスワード情報の獲得先が NIS マップあるいは NIS+ テーブルであるようなユーザーには適用されません。NIS+ サーバー上の /etc/defaults/passwd ファイルは、パスワード情報をローカルファイルから獲得しているローカルユーザーにだけ影響を与えます。NIS+ 環境または、nsswitch.conf ファイルでパスワード情報の獲得先が nisnisplus に設定されているユーザーには影響を与えません。

/etc/defaults/passwd ファイルで行われる「パスワードに関する 4 つのデフォルト設定」とは、具体的には以下のものを指します。

/etc/defaults/passwd ファイルのデフォルト設定には、以下の規則があります。

/etc/defaults/passwd ファイルには、デフォルトでは以下のエントリがすでに含まれています。


MAXWEEKS= 
MINWEEKS= 
PASSLENGTH=  

設定に必要な作業は、= の後に適切な数字を入力することだけです。= の後に数字が入っていないエントリは無効です。たとえば、MAXWEEKS に 4 を指定するには、以下のように入力します。


MAXWEEKS=4 
MINWEEKS= 
PASSLENGTH=  

有効期限 (週単位)

/etc/defaults/passwd ファイルの MAXWEEKS により、ユーザーのパスワードが有効な有効期限を週単位で設定できます。ユーザーのパスワードの有効期限を週単位で指定するためのエントリです。以下に示すとおり、"=" の後に適切な数字を入力するだけで指定ができます。


MAXWEEKS=N

N は週の数です。たとえば、MAXWEEKS=9 というようにします。

変更禁止期間 (週単位)

/etc/defaults/passwd ファイルの MINWEEKS デフォルト値には、ユーザーのパスワードの変更禁止期間を週単位で設定できます。パスワードの変更禁止期間を週単位で指定するためのエントリです。以下に示すとおり、"=" の後に適切な数字を入力するだけで指定ができます。


MINWEEKS=N

N は週の数です。たとえば、MINWEEKS=2 というようにします。

警告期間 (週単位)

/etc/defaults/passwd ファイルに WARNINWEEKS デフォルト値を追加し、パスワードの有効期間が切れて無効になる前に警告を表示する期間を、週単位で設定できます。たとえば、MAXWEEKS デフォルト値に 9 を設定したときに、パスワードが無効になる前の 2 週間に警告する場合は、MAXWEEKS7 を設定します。

MAXWEEKS のデフォルトを設定しない限り、WARNWEEKS のデフォルトを設定することはありません。

WARNWEEKS は、 MAXWEEKS に指定された有効期限ではなく、パスワードの最終変更日を起点と考えて設定することに注意してください。したがって WARNWEEKS に、MAXWEEKS 以上の値を設定することはできません。

WARNWEEKS のデフォルトは、MAXWEEKS のデフォルトも一緒に設定されていない限り無効です。

WARNWEEKS は、以下に示すとおり "=" の後に適切な数字を入力するだけで指定ができます。


WARNWEEKS=N

N は週の数です。たとえば、WARNWEEKS=1 というようにします。

最低文字数

passwd コマンドには、デフォルトで「パスワードの長さは 6 文字以上にする」という規則があります。しかし、/etc/defaults/passwd ファイルの PASSLENGTH を使用することによってこの規則を変更することが可能です。

パスワードの最低文字数を 6 以外の値にするには、以下に示すとおり PASSLENGTH= の後に適切な値を入力します。


PASSLENGTH=N

N は文字数です。たとえば、PASSLENGTH=7 というようにします。

パスワード変更時の制限

パスワード変更の際の入力試行回数と所要時間には、制限を設定できます。設定は rpc.nispasswdd デーモン起動時の引数で行います。

入力試行回数を制限したり、タイムウィンドウを設定したりすることにより、「権利のない人が、パスワードを試行錯誤で知ることのできるものに変えてしまう」という危険をある程度 (完璧ではない) 回避できます。

試行回数の制限

パスワード変更時の誤入力試行回数を制限するには、rpc.nispasswdd-a number という引数 (number は試行回数) を指定します。rpc.nispasswdd を起動するには、NIS+ マスターサーバー上にスーパーユーザー特権が必要です。

誤入力試行回数を 4 に制限する (デフォルトは 3) 場合、以下のように入力します。


station1# rpc.nispasswdd -a 4

この場合、4 回目のパスワード入力が失敗すると、「Too many failures - try later」というメッセージが表示され、一定の時間が経過するまで該当ユーザーのパスワード変更はできなくなります。

所要時間の制限

パスワード変更時の所要時間 (ログインの所要時間) を制限するには、rpc.nispasswdd-c minutes という引数 (minutes には時間を分単位で指定する) を指定します。rpc.nispasswdd を起動するには、NIS+ マスターサーバー上にスーパーユーザー特権が必要です。

たとえば、ユーザーが 2 分以内にログインしなければならないように設定するには、以下のように入力します。


station1# rpc.nispasswdd -c 2

この場合、2 分以内にパスワードの変更に成功しないとエラーメッセージが表示され、一定の時間が経過するまで該当ユーザーのパスワード変更はできなくなります。