この節では、ログインの制御と監視について説明します。
logins コマンドを使用してユーザーのログイン状態を表示します。
# logins -x -l username |
-x |
ログイン状態情報の拡張セットを表示する |
-l username |
指定するユーザーのログイン状態を表示する。username はユーザーのログイン名。複数のログイン名は、コンマで区切って指定する |
logins コマンドは、適切なパスワードファイルを使ってユーザーのログイン状態を表示します。このファイルは、ローカルの /etc/passwd ファイルか、ネームサービスのパスワードデータベースです。詳細は、logins(1M) のマニュアルページを参照してください。
次の例では、ユーザー rimmer のログイン状態が表示されます。
# logins -x -l rimmer rimmer 500 staff 10 Annalee J. Rimmer /export/home/rimmer /bin/sh PS 010170 10 7 -1 |
スーパーユーザーになるか、同等の役割を引き受けます。
logins コマンドを使用して、パスワードを持っていないユーザーをすべて表示します。
# logins -p |
-p オプションを指定すると、パスワードを持たないユーザーが表示されます。logins コマンドでは、ローカルマシン上およびネットワーク上のパスワードデータベースを使用できます。このコマンドでは、ローカルの /etc/passwd ファイルを使用できます。このコマンドではまた、ネームサービスのパスワードデータベースを使ってユーザーのログイン状態を表示できます。
次の例では、パスワードを持っていないユーザー pmorph が表示されます。
# logins -p pmorph 501 other 1 Polly Morph # |
スーパーユーザーになるか、同等の役割を引き受けます。
エディタを使用して、/etc/nologin ファイルを作成します。
# vi /etc/nologin |
システムの利用に関するメッセージを入力します。
ファイルを閉じて、保存します。
このファイルを作成することによって、システムシャットダウンや定常的な保守の際にユーザーログインを禁止できます。nologin ファイルが存在するシステムにユーザーがログインしようとすると、このファイルの内容が表示されます。そのあとユーザーのログインは中断されます。
スーパーユーザーのログインは影響を受けません。詳細については、nologin(4) のマニュアルページを参照してください。
この例は、システムが利用できないことをユーザーに通知する方法を示しています。
# vi /etc/nologin (ここでシステムメッセージを追加する) # cat /etc/nologin ***ログインは許可されません。*** ***システムは AM12:00 まで利用できません。*** |
システムを実行レベル 0、すなわちシングルユーザーモードにすることもできます。シングルユーザーモードに変更する方法の詳細については、『Solaris のシステム管理 (基本編)』の「システムのシャットダウン (手順)」を参照してください。
/var/adm ディレクトリに loginlog ファイルを作成します。
# touch /var/adm/loginlog |
loginlog ファイルに root の読み取り権と書き込み権を設定します。
# chmod 600 /var/adm/loginlog |
loginlog ファイルのグループのメンバーシップを sys に変更します。
# chgrp sys /var/adm/loginlog |
間違ったパスワードを使用してシステムに 5 回ログインしようとしたログが記録されていることを確認します。次に、/var/adm/loginlog ファイルを表示します。
# more /var/adm/loginlog rimmer:/dev/pts/1:Wed Jan 16 09:22:31 2002 rimmer:/dev/pts/1:Wed Jan 16 09:22:39 2002 rimmer:/dev/pts/1:Wed Jan 16 09:22:45 2002 rimmer:/dev/pts/1:Wed Jan 16 09:22:53 2002 rimmer:/dev/pts/1:Wed Jan 16 09:23:01 2002 # |
loginlog ファイルには、失敗操作ごとに 1 つずつエントリが入っています。各エントリには、ユーザーのログイン名、tty デバイス、操作の失敗回数が入っています。4 回以下の失敗であれば、ログに記録されません。
loginlog ファイルは急激に大きくなることがあります。このファイルを適切に使用できるように保つためには、その内容をときどき確認して消去する必要があります。loginlog ファイルに多数の操作が記録されている場合は、コンピュータシステムにだれかが侵入しようとした可能性があります。詳細は、loginlog(4) のマニュアルページを参照してください。
最初にダイヤルアップパスワードを設定するときには、少なくとも 1 つのポートにログインしたまま別のポートでパスワードをテストしてください。ログアウトして新しいパスワードをテストすると、元どおりログインできなくなることがあります。まだ別のポートにログインしていれば、元に戻ってミスを訂正できます。
スーパーユーザーになるか、または同等の役割を引き受けます。
シリアルデバイスのリストが入った /etc/dialups ファイルを作成します。このファイルには、ダイヤルアップパスワードで保護されているすべてのポートを含めてください。
/etc/dialups ファイルは次のようになります。
/dev/term/a /dev/term/b /dev/term/c |
ダイヤルアップパスワードを要求するログインプログラムが入った /etc/d_passwd ファイルを作成します。
uucico、sh、ksh、csh など、ユーザーがログイン時に実行できるシェルプログラムを含めます。/etc/d_passwd ファイルは次のようになります。
/usr/lib/uucp/uucico:encrypted-password: /usr/bin/csh:encrypted-password: /usr/bin/ksh:encrypted-password: /usr/bin/sh:encrypted-password: |
この手順のあとの方で、各ログインプログラムに暗号化されたパスワードを追加することになります。
2 つのファイルの所有権を root に設定します。
# chown root /etc/dialups /etc/d_passwd |
2 つのファイルのグループの所有権を root に設定します。
# chgrp root /etc/dialups /etc/d_passwd |
2 つのファイルの root の読み取り権と書き込み権を設定します。
# chmod 600 /etc/dialups /etc/d_passwd |
暗号化パスワードを作成します。
一時的なユーザーを作成します。
# useradd username |
一時的なユーザーのパスワードを作成します。
# passwd username |
# grep username /etc/shadow> username.temp |
username.temp ファイルを編集します。
暗号化パスワードを除くすべてのフィールドを削除します。2 つ目のフィールドに、暗号化パスワードが入っています。
たとえば、次の行では、暗号化パスワードは U9gp9SyA/JlSk です。
temp:U9gp9SyA/JlSk:7967:::::7988: |
一時的なユーザーを削除します。
# userdel username |
username.temp ファイルから /etc/d_passwd ファイルに暗号化パスワードをコピーします。
ログインシェルごとに別のパスワードを作成するか、共通のパスワードを使用できます。
パスワードをダイヤルアップユーザーに知らせます。
盗聴のおそれがない方法でパスワードを知らせる必要があります。