設定 OS X 應用程式首選項以停止提示輸入管理員密碼

設定 OS X 應用程式首選項以停止提示輸入管理員密碼

我正在嘗試編寫一個蘋果腳本,將一些操作發送到應用程式(特別是水屋頂)。問題是,當我打開我感興趣的設定面板時,應用程式會定期詢問我管理員密碼。因為我不能依賴被詢問,所以我不能考慮在腳本中暫停並輸入密碼。

有沒有辦法告訴應用程式/作業系統我想以管理員權限保持登入應用程序,並且它不應該詢問我?在我嘗試在程式碼中檢查它是否存在等之前,我想先排除這種可能性。

答案1

據我所知,OS X 中的授權超時(如果正確完成)是在政策資料庫位於etc/authorization,通常以編程方式。它看起來像一個 plist 文件,如果一個項目沒有“timeout”鍵,那麼它就沒有超時。

我確實知道首選項通常是使用 Apple 的 API 在程式碼中設定的(如 Apple 的授權服務程式設計指南功能參考)。

這是一個受保護的文件。使用類似的東西sudo pico /private/etc/authorization來編輯它。

該文件中的條目將具有使用一種描述符“com.company.application.right”或類似內容的標題(例如 com.apple.itunes.copy、com.stackexchange.superuser.deleteuser) - 這是特定於每個應用程序,所以尋找它。 (我相信,按字母順序排列是為了讓事情變得更容易)。

在此輸入影像描述

如果沒有這樣的條目,那麼該應用程式可能會以我不知道的另一種方式取得授權。我剛剛嘗試向我編寫的應用程式添加超時 - 它有效。然後我再次刪除它 - 超時消失了。我猜它應該適用於你的情況。

您確實提到了一個設置面板 - 如果涉及系統偏好設置,那麼我也不知道它是如何工作的。沒有辦法透過 applescript 來做到這一點。

編輯:如果沒有這樣的條目

應用程式授權的另一種方法是使用現已棄用且不安全的方法AuthorizationExecuteWithPrivileges。我猜測,如果應用程式在策略資料庫中沒有自己的條目,它會使用AuthorizationExecuteWithPrivileges.您嘗試使用的應用程式可能會使用它。

策略資料庫中有一個名為 的特定方法的條目system.privilege.admin,但請注意,修改此條目並刪除超時可能會更改所有使用 的應用程式的超時AuthorizationExecuteWithPrivileges,而不僅僅是您要更改的應用程式的逾時。也許值得一試。

在此輸入影像描述

相關內容