27.5. 他のアプリケーションのコンソールアクセスの有効化
コンソールユーザーが他のアプリケーションにアクセスできるようにするには、より多くの作業が必要になります。
まず、コンソールアクセスは、/sbin/ または
/usr /sbin/ にあるアプリケーションに対して のみ 機能するので、実行するアプリケーションが存在する必要があります。これを確認したら、以下の手順を実施します。
- サンプル
fooプログラムなどのアプリケーションの名前から /usr/bin/consolehelper アプリケーションへのリンクを作成します。cd /usr/binln -s consolehelper foo
/etc/security/console.apps/fooファイルを作成します。touch /etc/security/console.apps/foo/etc/pam.d/にfooサービスの PAM 設定ファイルを作成します。これを簡単に行うには、halt サービスの PAM 設定ファイルのコピーから開始し、動作を変更する場合はファイルを変更します。cp /etc/pam.d/halt /etc/pam.d/foo
/usr/bin/foo を実行すると、consolehelper が呼び出され、/usr/sbin/userhelper を利用してユーザーを認証します。ユーザーを認証するために、
/etc/pam.d/foo が /etc/pam.d/halt のコピー(/etc/pam.d/halt のコピーの場合)が( /etc/pam.d/foo)のコピーであれば、consolehelper はユーザーのパスワードを要求します。その後、root 権限で /usr/sbin/foo を実行します。
PAM 設定ファイルで、アプリケーションが pam_timestamp モジュールを使用して認証に成功したことを記憶(またはキャッシュ)するように設定することができます。アプリケーションが起動し、適切な認証が提供され(root パスワード)、タイムスタンプファイルが作成されます。デフォルトでは、認証の成功は 5 分間キャッシュされます。この間、
pam_timestamp を使用するように設定され、同じセッションから実行されるその他のアプリケーションが自動的に認証されます。ユーザーは root パスワードを再度入力する必要はありません。
このモジュールは
pam パッケージに含まれています。この機能を有効にするには、etc/pam.d/ の PAM 設定ファイルに以下の行が含まれている必要があります。
auth sufficient /lib/security/pam_timestamp.so session optional /lib/security/pam_timestamp.so
auth で始まる最初の行は、他の
auth に 十分な 行の後に指定し、セッションで始まる行は他の セッション オプション の行後である必要があります。
pam_timestamp を使用するように設定されたアプリケーションが(Panel 上の) Main Menu Button から正常に認証されると、GNOME または KDE デスクトップ環境を実行している場合は、
ユーザーは、アイコンをクリックして認証を忘れてしまったオプションを選択して、キャッシュされた認証を忘れることを選択できます。