允许普通用户通过 GUI 和更新通知程序更新软件

允许普通用户通过 GUI 和更新通知程序更新软件

我想要降级A具有管理员权限的用户普通用户

但我想让她继续通过 GUI 像以前一样进行更新。明确地,当通过更新通知对话框要求进行更新时,允许进行更新。

我不知道这是否可能,如果可以,我应该使用什么 sudo 规则以便该用户可以进行更新。

我只熟悉apt命令。使用什么命令/软件来获取有关更新的通知,然后运行更新过程?

它是否太复杂并且最终需要管理权限?

答案1

GUI 使用 Polkit 进行身份验证和授权。对于 apt,相关的 Polkit 操作似乎是:

org.debian.apt.cancel-foreign
org.debian.apt.change-config
org.debian.apt.change-repository
org.debian.apt.clean
org.debian.apt.get-trusted-vendor-keys
org.debian.apt.install-file
org.debian.apt.install-or-remove-packages
org.debian.apt.install-packages-from-new-repo
org.debian.apt.install-packages.high-trust-repo
org.debian.apt.install-purchased-packages
org.debian.apt.set-proxy
org.debian.apt.update-cache
org.debian.apt.upgrade-packages

对于快照,您可能还需要以下内容:

io.snapcraft.login
io.snapcraft.snapd.login
io.snapcraft.snapd.manage
io.snapcraft.snapd.manage-interfaces

此外,Ubuntu 软件通过 PackageKit 执行各种操作,因此这些操作如下:

org.freedesktop.packagekit.cancel-foreign
org.freedesktop.packagekit.clear-offline-update
org.freedesktop.packagekit.device-rebind
org.freedesktop.packagekit.package-downgrade
org.freedesktop.packagekit.package-eula-accept
org.freedesktop.packagekit.package-install
org.freedesktop.packagekit.package-install-untrusted
org.freedesktop.packagekit.package-reinstall
org.freedesktop.packagekit.package-remove
org.freedesktop.packagekit.repair-system
org.freedesktop.packagekit.system-network-proxy-configure
org.freedesktop.packagekit.system-sources-configure
org.freedesktop.packagekit.system-sources-refresh
org.freedesktop.packagekit.system-trust-signing-key
org.freedesktop.packagekit.system-update
org.freedesktop.packagekit.trigger-offline-update
org.freedesktop.packagekit.trigger-offline-upgrade
org.freedesktop.packagekit.upgrade-system

对于更新管理器:

com.ubuntu.update-notifier.pkexec.cddistupgrader
com.ubuntu.update-notifier.pkexec.package-system-locked

对于突触:

com.ubuntu.pkexec.synaptic

要配置 Polkit 权限,请.pkla在 / 中创建一个etc/polkit-1/localauthority/50-local.d名为的文件,例如,allow-pkg-mgmt.pkla包含:

[Allow Package Management to user foo]
Identity=unix-user:foo
Action=org.debian.apt.*;io.snapcraft.*;org.freedesktop.packagekit.*;com.ubuntu.update-notifier.*
ResultActive=auth_self

man 8 pklocalauthoritypkaction有关配置 Polkit 权限的更多信息,以及更多操作的输出。出于某种原因,我不得不使用ResultActive而不是 ,然后ResultAny它才会要求输入非特权用户的密码。

答案2

polkit 对我来说看起来有点复杂。

我将在 /etc/sudoers 中添加一个条目,例如:

her-login ALL=(root) NOPASSWD: apt update
her-login ALL=(root) NOPASSWD: apt upgrade
# ( check syntax! )

然后创建一个启动“sudo apt update && sudo apt upgrade”的图标

这允许“her-login”以 root 身份运行仅 2 个命令...如果需要更多“GUI”方法,也可以做同样的事情,比如 sudo mintupdate。

相关内容