Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

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

Red Hat Enterprise Linux における数多くのグラフィカル管理ツールは、pam_timestamp.so モジュールを使用して、最大 5 分間にわたり上昇した権限をユーザーに提供します。このメカニズムの仕組みを理解することが重要です。これは、pam_timestamp.so が有効なときににターミナルから出るユーザーが、コンソールに物理的にアクセスできるユーザーすべてがマシンを変更できる状態のままにするためです。
PAM タイムスタンプスキームでは、グラフィカル管理アプリケーションにより、起動時に root パスワードの入力が求められます。ユーザーが認証されたとき、pam_timestamp.so モジュールはタイムスタンプファイルを作成します。デフォルトでは、これは /var/run/sudo/ ディレクトリーに作成されます。タイムスタンプファイルがすでに存在する場合は、グラフィカル管理プログラムではパスワードの入力が求められません。代わりに、pam_timestamp.so モジュールはタイムスタンプファイルを最新の状態にし、ユーザーの不完全な管理アクセスを 5 分追加で保持します。
/var/run/sudo/ユーザー ディレクトリーのファイルを確認して、タイムスタンプファイルの実際の状態を確認できます。デスクトップでは、関連するファイルは unknown:root です。これが存在し、タイムスタンプが 5 分未満の場合は、認証情報が有効です。
タイムスタンプファイルが存在すると、パネルの通知スペースに認証アイコンが表示されます。
認証アイコン

図2.1 認証アイコン

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

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

図2.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 ページを参照してください。

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

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