多年來,我的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 之間