この章では、Solaris スマートカードに関する問題を解決する方法について説明します。この章では、次の内容について説明します。
ユーザーがシステムにログインできない場合は、Solaris スマートカードを無効にするか、設定に関する問題を解決する必要が生じることもあります。
次の場合に、システムでスマートカードを無効にする必要が生じることもあります。
次の手順を実行して、Solaris スマートカードを無効にします。
ocfserv デーモンが有効になっていることを確認します。
次のコマンドを入力すると、サービスの状態がわかります。
% svcs network/rpc/ocfserv |
スマートカードを変更する前に、ocfserv デーモンが有効になっていることを確認する必要があります。
(省略可能) 必要に応じて、スーパーユーザーでログインし、ocfserv デーモンを有効にします。
# svcadm enable network/rpc/ocfserv |
# smartcard -c disable |
スマートカードを有効にしたあとで、システムからログアウトすると、CDE ログイン画面には次のようなメッセージが表示されます。
Please insert Smart Card |
スマートカードの設定に関する問題のために、スマートカードを使用したシステムへログインできない場合は、次の手順を実行してください。
rlogin または telnet コマンドを使って、リモートからログインします。
ocfserv デーモンが有効になっていることを確認します。
次のコマンドを入力すると、サービスの状態がわかります。
% svcs network/rpc/ocfserv |
スマートカードを変更する前に、ocfserv デーモンが有効になっていることを確認する必要があります。
(省略可能) 必要に応じて、スーパーユーザーでログインし、ocfserv デーモンを有効にします。
# svcadm enable network/rpc/ocfserv |
次のように入力して、スマートカードを無効にします。
# smartcard -c disable |
スマートカードを無効にすると、CDE 画面には次のようなプロンプトが表示されます。
Enter User Name |
こうしておいて、スマートカードの設定に関する問題を修正します。
スマートカードへのアプレットのダウンロード、新しいタイプのカードに対するサービスの追加、または Solaris スマートカードの構成ファイルでの不当なエントリで問題の生じることがあります。
アプレットをカードにダウンロードしようとして、次のメッセージが表示されることがあります。
SmartcardInvalidCardException |
このメッセージは、カードリーダーに挿入されているスマートカードの ATR が、システムが受け付けることができる有効な ATR のリストに追加されていない可能性があることを示しています。「新しいカードタイプのサポートを追加するには (SmartCard Console)」の手順に従って、スマートカードの ATR を更新してください。
SmartCard Console でスマートカードを追加すると、カードリーダーに挿入されているスマートカードの ATR が表示されます。表示された ATR が有効な ATR のリストに存在しない場合は、その ATR を card-name.ATR 属性に追加します。
関連情報については、「新しいカードタイプのサポートを追加するには (SmartCard Console)」を参照してください。SmartCard Console の手順とコマンド行の例が示されています。
ocfserv デーモンが有効になっていることを確認します。
次のコマンドを入力すると、サービスの状態がわかります。
% svcs network/rpc/ocfserv |
スマートカードを変更する前に、ocfserv デーモンが有効になっていることを確認する必要があります。
(省略可能) 必要に応じて、スーパーユーザーでログインし、ocfserv デーモンを有効にします。
# svcadm enable network/rpc/ocfserv |
ocfserv 属性を表示して、card_name.ATR 属性が存在するかどうかを調べます。
# smartcard -c admin |
たとえば、ocfserv は MySCM.0.ATR 属性を示します。MySCM はユーザーにわかりやすくしたカードリーダーの名前です。この属性は、カードリーダーに挿入されているスマートカードの ATR を反映しています。この属性は一時的なもので、スマートカードがカードリーダーに挿入されている間だけ、ocfserv によって追加されます。また、スマートカードをカードリーダーから取り外すと削除されます。
この属性により表示された ATR が有効な ATR のリストに存在しない場合は、その ATR を card_name.ATR 属性に追加します。
スマートカードの重要な構成情報は /etc/smartcard/opencard.properties ファイルに格納されています。このファイルの管理が必要になることはありません。このファイルは手動で編集しないでください。ただし、スマートカードを構成するときに問題が発生した場合は、/etc/smartcard/opencard.properties の前のバージョンに戻すことができます。
ocfserv デーモンが有効になっていることを確認します。
次のコマンドを入力すると、サービスの状態がわかります。
% svcs network/rpc/ocfserv |
スマートカードを変更する前に、ocfserv デーモンが有効になっていることを確認する必要があります。
(省略可能) 必要に応じて、スーパーユーザーでログインし、ocfserv デーモンを有効にします。
# svcadm enable network/rpc/ocfserv |
/etc/smartcard ディレクトリに移動します。
最初に現在のバージョンを保存します。
# cp opencard.properties opencard.properties.bad |
前のバージョンを現在のバージョンにコピーします。
# cp opencard.properties.bak opencard.properties |
スマートカードの動作をシステム上でデバッグするには、デバッグ属性を設定します。Solaris スマートカードは標準的なデバッグ機能を提供します。指定しておけば、ユーザーの動作を詳細に追跡できます。有効にすると、デバッグ情報がファイルに記録されます。デバッグ情報のレベルおよび量は、0 - 9 段階で制御することができます。デフォルトでは、デバッグは無効になっています。
デフォルトでは、次のデバッグ属性が ocfserv 用に定義されています。
debugging.filename = /var/run/ocf.log debugging = 0 |
Solaris 8 以前のリリースでは、デバッグのログファイルは、/tmp/ocf_debugfile と呼ばれることがあります。
デバッグの手順については、次の内容を参照してください。
ocfserv デーモンが有効になっていることを確認します。
次のコマンドを入力すると、サービスの状態がわかります。
% svcs network/rpc/ocfserv |
スマートカードを変更する前に、ocfserv デーモンが有効になっていることを確認する必要があります。
(省略可能) 必要に応じて、スーパーユーザーでログインし、ocfserv デーモンを有効にします。
# svcadm enable network/rpc/ocfserv |
ナビゲーション区画で「OCF サーバー (OCF Server)」を選択します。
ローカルシステムを表すアイコンをダブルクリックします。
「Open Card トレースレベル (Open Card Trace Level)」スライダのインジケータを動かして、トレースレベルを示します。
(省略可能) デバッグファイルの代わりの名前を指定します。
「適用 (Apply)」ボタンまたは「了解 (OK)」ボタンをクリックします。
スマートカードのデバッグを有効にするには、次の手順を使用します。
ocfserv デーモンが有効になっていることを確認します。
次のコマンドを入力すると、サービスの状態がわかります。
% svcs network/rpc/ocfserv |
スマートカードを変更する前に、ocfserv デーモンが有効になっていることを確認する必要があります。
(省略可能) 必要に応じて、スーパーユーザーでログインし、ocfserv デーモンを有効にします。
# svcadm enable network/rpc/ocfserv |
debugging=1 を設定して、スマートカードのデバッグを有効にします。
# smartcard -c admin -x modify debugging=1 |
次の例では、ocfserv デバッグファイルの位置を変更しています。 場所は、-x modify debugging.filename オプションを使用するか、デバッグファイルの絶対パスによるファイル名を指定することによって、変更します。
# smartcard -c admin -x modify debugging.filename=/var/tmp/sc.debug |