Linux

管理系統服務或單元需要身份驗證。

  • February 25, 2022

每當嘗試以普通使用者身份停止/啟動守護程序時,我都會遇到一個奇怪的問題,它要求使用另一個普通使用者的憑據進行身份驗證 - 例如:

[bob@server ~]$ systemctl stop some-daemon.service
==== AUTHENTICATING FOR org.freedesktop.systemd1.manage-units ===
Authentication is required to manage system services or units.
Authenticating as: alice
Password: 

為什麼在bob登錄時要求alice進行身份驗證,我該如何解決這個問題?

您的系統正在使用polkit授權管理器並且消息來自文件/usr/share/polkit-1/actions/org.freedesktop.systemd1.policypolkit可以在/etc/polkit-1and/usr/share/polkit-1目錄中配置,更具體地說是在rules.dandactions子目錄中。有關更多資訊,請參閱Polkit 手冊頁

簡而言之,正在進行的呼叫正在接收以管理員身份進行身份驗證的響應(手冊頁中的 auth_admin, auth_admin_keep

在 CentOS 7 中,該/etc/polkit-1/rules.d/50-default.rules文件指定了一個addAdminRule定義,該定義返回 wheel 組中的使用者以進行身份驗證。輪組中的所有使用者都將顯示為使用者,以便在需要身份驗證時進行選擇。如果 Alice 是 wheel 組中的唯一使用者,這將根據規則自動顯示 Alice。

假設 Alice 不在 wheel 組中,這表明規則文件路徑中會有一些 addAdminRule 的其他定義,允許 Alice 以管理員身份出現,以在請求返回 AUTH_ADMIN/AUTH_ADMIN_KEEP 響應時進行身份驗證。

引用自:https://serverfault.com/questions/841306