10.3. PAM と管理認証情報のキャッシング

GNOME の control-center など、Red Hat Enterprise Linux 内の多くのグラフィカル管理ツールは、システム特権を持つユーザーに最大 5 分間の pam_timestamp.so モジュール使用を提供します。pam_timestamp.so が実行中の端末をユーザーが離れると、このコンソールに物理的にアクセス可能な人物がマシンを操作できるようになってしまうため、このメカニズムの作動方法を理解することは重要になります。
PAM タイムスタンプスキームでは、グラフィカルの管理アプリケーションは起動時に root パスワードをユーザーに求めます。ユーザーが認証されると、pam_timestamp.so モジュールはタイムスタンプファイルを作成します。デフォルトでは、これは /var/run/sudo/ ディレクトリーに作成されます。すでにタイムスタンプファイルがある場合は、グラフィカル管理プログラムはパスワードを要求しません。代わりに pam_timestamp.so モジュールはタイムスタンプファイルをリフレッシュして、ユーザーに無条件の管理者アクセスをさらに 5 分間確保します。
タイムスタンプファイルの実際の状態は、/var/run/sudo/user ディレクトリーで確認できます。デスクトップの場合は、関連ファイルは unknown:root になります。これが存在してそのタイムスタンプが 5 分未満の場合、認証情報は有効です。
タイムスタンプファイルが存在すると、パネルの通知スペースに認証アイコンが表示されます。
認証アイコン

図10.1 認証アイコン

10.3.1. タイムスタンプファイルの削除

PAM タイムスタンプがアクティブな状態のコンソールは、放置する前にタイムスタンプファイルを破棄することが推奨されます。グラフィカル環境でこれを実行するには、パネルの認証アイコンをクリックします。これでダイアログボックスが開きます。Forget Authorization ボタンをクリックしてアクティブなタイムスタンプファイルを破棄します。
認証ダイアログを閉じる

図10.2 認証ダイアログを閉じる

PAM タイムスタンプファイルには、以下の重要な特徴があります。
  • ssh を使用してシステムにリモートでログインしている場合は、/sbin/pam_timestamp_check -k root コマンドを使用してタイムスタンプファイルを破棄します。
  • 権限のあるアプリケーションが起動されたものと同じ端末ウィンドウから /sbin/pam_timestamp_check -k root コマンドを実行します。
  • pam_timestamp.so モジュールを最初に起動したログイン済みユーザーは、/sbin/pam_timestamp_check -k コマンドを実行するユーザーである必要があります。root でこのコマンドを実行しないでください。
  • デスクトップでアイコン上の Forget Authorization アクションを使用せずに認証情報を破棄するには、/sbin/pam_timestamp_chec コマンドを使用します。
    /sbin/pam_timestamp_check -k root </dev/null >/dev/null 2>/dev/null
    他の方法は、コマンドが実行される PTY から認証情報を削除するだけです。
pam_timestamp_check を使用してタイムスタンプファイルを破棄する詳細情報については、pam_timestamp_check の man ページを参照してください。

10.3.2. 一般的な pam_timestamp ディレクティブ

pam_timestamp.so モジュールはいくつかのディレクティブを受け付けます。最も一般的なものは以下の 2 つです。
  • timestamp_timeout — タイムスタンプの有効期間を秒単位で指定します。デフォルト値は 300 (5 分間) です。
  • timestampdir — タイムスタンプファイルの保存先となるディレクトリーを指定します。デフォルト値は /var/run/sudo/ です。