如何防止 PolicyKit 要求輸入密碼?

如何防止 PolicyKit 要求輸入密碼?

多年來,我的sudoers檔案中一直有以下內容:

scott   ALL=NOPASSWD: ALL

對於那些不知道的人來說,這可以防止sudo朋友(gksudo等)詢問密碼。然而,這些年來,越來越多曾經使用的東西sudo已經轉向使用PolicyKit。

我正在尋找 PolicyKit 的等效配置,這樣它就永遠不會詢問我的密碼。

對於那些不喜歡我的要求的人,讓我這樣說:我理解預設配置的原因,而且它們是合理的。我也了解我想要進行的配置所固有的風險。儘管如此,這就是我想要設定係統的方式。那些不完全理解上述內容的人不應該嘗試我正在嘗試的事情。

答案1

你可以使用與 Ubuntu Live CD 相同的技術透過欺騙 PolicyKit 並透過用通配符替換操作來抑制所有密碼提示。

免責聲明:以下內容將為屬於管理員群組的每個人全域禁止所有密碼提示,登入畫面除外。這是極其危險的,永遠不應該實施,因為你最終可能會破壞你的系統!

別說你沒有被警告過!

注意:如果您運行的是 12.04 或更高版本,請將“admin”替換為“sudo”!

將“用戶名”替換為您的實際用戶名:

usermod -aG admin username

切換到根目錄:

sudo -i

建立新策略:

gedit /var/lib/polkit-1/localauthority/50-local.d/disable-passwords.pkla

添加以下內容:

[Do anything you want]
Identity=unix-group:admin
Action=*
ResultActive=yes

儲存並退出。然後去嘗試一些通常需要密碼的東西。 :)

注意:使用什麼作為 .pkla 檔名並不重要。您可以將其命名為任何您想要的名稱。

最後,這是您在抑制密碼提示時需要的唯一策略,因為它是全域性的。

答案2

您可以創建一個 .pkla,無論是一個整體還是基於操作組的一對,這並不重要。

如需參考,請查看 /usr/share/polkit-1/actions,在文字編輯器中開啟感興趣的內容以取得操作 ID。

就 .pkla 或 2 而言,我發現放置它們的最佳位置是這裡,它將受到保護,免受任何更新的影響

/var/lib/polkit-1/localauthority/50-local.d

例如,這是我的主要一個,名為 package-manager.pkla,儘管它比套件管理策略的擴展更遠一些

[Install package file]
Identity=unix-group:admin
Action=org.debian.apt.install-file;org.debian.apt.update-cache;org.debian.apt.install-or-remove-packages;org.debian.apt.upgrade-packages
ResultActive=yes

[Install package synaptic]
Identity=unix-group:admin
Action=com.ubuntu.pkexec.synaptic
ResultActive=yes

[Change add repo]
Identity=unix-group:admin
Action=com.ubuntu.softwareproperties.applychanges;org.debian.apt.change-repository
ResultActive=yes

[usbcreator format]
Identity=unix-group:admin
Action=com.ubuntu.usbcreator.format
ResultActive=yes

[Install bootloader]
Identity=unix-group:admin
Action=com.ubuntu.usbcreator.bootloader
ResultActive=yes

[Add users]
Identity=unix-group:admin
Action=org.freedesktop.accounts.user-administration
ResultActive=yes

請注意,開始於12.04用於「admin」使用者的群組應更改為 sudo,即

Identity=unix-group:sudo

另請注意,每個部分的操作可以串在一起,沒有空格,使用 ;在 id 之間

相關內容