Answers:
您可以修改PolicyKit权限,以允许用户访问Software Center使用的aptdaemon后端。
dpkg --listfiles aptdaemon
显示/usr/share/polkit-1/actions/org.debian.apt.policy
该文件指定了在aptdaemon后端上可能执行的操作。
在该文件中,< action id="">
标记指定了可能的操作。您可能希望org.debian.apt.install-packages
允许用户从存档中安装新软件包,并org.debian.apt.update-cache
允许用户更新软件包列表。
查看man pklocalauthority
哪些文档如何设置PolicyKit操作的本地权限。放入以下内容/etc/polkit-1/localauthority/50-local.d/10-allow-users-to-install.pkla
将允许任何登录到本地计算机的用户在键入自己的密码后安装软件包(即使他们不在admin组中),并且无需输入任何密码即可更新软件包缓存。
[Untrusted Install]
Action=org.debian.apt.install-or-remove-packages
ResultyAny=no
ResultInactive=no
ResultActive=auth_self
[Untrusted Update]
Action=org.debian.apt.update-cache
ResultAny=no
ResultInactive=no
ResultActive=yes
/usr/share/polkit-1/actions/org.kubuntu.qaptworker.policy
Identity=*
才能使它生效,改编自askubuntu.com/a/123260。另外,是否有任何方法可以在例如/var/log/auth.log
(或任何其他日志文件)中获得更多策略工具包日志输出?我只收到authentication fails
消息,但没有理由失败...
我认为目前无法通过GUI进行操作,但是以下操作应该可以工作,尽管有点麻烦。YMMV。
将以下行添加到/ etc / sudoers(用于sudo visudo
编辑文件):
%packageinstallers ALL = NOPASSWD: /usr/bin/software-center /usr/bin/apt-get
然后,您只需要创建特定用户并将其添加到packageinstallers
组中:
$ sudo addgroup packageinstallers
$ sudo adduser jdoe packageinstallers
现在jdoe
可以执行以下操作:
$ sudo apt-get install <some-package>
并且您可以编辑软件中心的桌面菜单项,以便它software-center
在命令前添加gksudo
。
PolicyKit可能允许您在没有sudo的情况下执行此操作,但目前我还不了解。
RAOF的答案仅适用于Ubuntu。Kubuntu使用QAptWorker作为后端(在Natty和Oneiric中观察到)。要允许非root用户安装,请创建/etc/polkit-1/localauthority/50-local.d/10-allow-non-root-install-packages.pkla
包含:
[Update Software Sources]
Action=org.kubuntu.qaptworker.updateCache
ResultAny=no
ResultInactive=no
ResultActive=yes
[Install Software]
Action=org.kubuntu.qaptworker.commitChanges
ResultAny=no
ResultInactive=no
ResultActive=auth_self
我想允许一些非管理员用户安装软件,而不直接授予sudo访问权限。这是通过在两个配置组中插入下一行来完成的:
Identity=unix-user:some-non-admin-user
如果必须授予组权限,请使用unix-group
代替unix-user
。
sudo -i
我什至没有访问权限/etc/polkit-1/localauthority
(Ubuntu 17.10):“也不会尝试处理目录/ etc / polkit-1 / localauthority”
如果您只需要通用许可来允许/禁止安装软件包,请使用PolicyKit。
不幸的是,PolicyKit无法很好地控制要安装的软件包。如果您要授予用户仅安装受限应用程序集的权限,则应使用sudo
和安装诸如软件通道之类的东西。
我也正在寻找类似的东西,但是由于没有找到任何东西,我编写了这个简单的解决方案“ softwarechannels”,可在GitHub上找到
这是一个非常简单的系统,允许普通(非管理员)用户从受限制的目录中安装软件包。
只需在一个简单的文本文件中定义“通道”(软件包组),并向您的用户授予启动软件通道的权限。
他们将仅在与其unix组匹配的频道中看到软件包。