假如您想要讓主控台的使用者存取其他應用程式,您必須要做一些較複雜的動作。
首先,主控台存取 僅 適用於位於 /sbin 或 /usr/sbin 中的應用程式,所以您想要執行的應用程式必須在那裡。 在確認過後,請遵照以下步驟:
建立一個應用程式名稱的連結(例如我們的範例程式 foo)到 /usr/bin/consolehelper 應用程式:
cd /usr/bin ln -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 的輔助來認證使用者。 如要認證使用者,consolehelper 假如 /etc/pam.d/foo 檔案是 /etc/pam.d/halt 的複本,consolehelper 將會詢問使用者的密碼(否則它將會確實執行 /etc/pam.d/foo 檔案中所指定的事項),然後再以 root 的權限執行 /usr/sbin/foo。
在 PAM 的設定檔案中,可以設定一個應用程式以使用 pam_timestamp 模組來記憶(快取)一個成功的認證過程。 當您啟動一個應用程式並且提供適當的認證資訊(root 密碼),將會建立一個時間戳檔案。 預設情況下,一次成功的認證將會快取五分鐘,在這個期間中,任何其他設定來使用 pam_timestamp 的應用程式,如在同一個作業階段執行將會自動地認證為這個使用者 — 這個使用不需要再次輸入 root 密碼。
這個模組收錄在 pam 套件中,如要啟用這個特色,在 etc/pam.d/ 目錄中的 PAM 設定檔案必須包含以下這兩行:
auth sufficient /lib/security/pam_timestamp.so session optional /lib/security/pam_timestamp.so |
以 auth 為開頭的第一行應該在任何其他的 auth sufficient 行列之後,而以 session 為開頭的行列必須在任何其他的 session optional 行列之後。
假如一個設定使用 pam_timestamp 的應用程式從面板上的 『主選單按鈕』 認證成功,如果您是執行 GNOME 桌面環境的話, 圖示將會出現在面板上的提示區域。 在認證失效後(預設為 5 分鐘),該圖示便會消失。
使用者可以選擇要忘記快取的認證資訊,只要點選該圖示然後選擇要忘記認證資訊的選項。