我是靠谱客的博主 独特身影,最近开发中收集的这篇文章主要介绍非root安装linux软件,如何设置软件中心以安装非root用户的软件?,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

问题描述

如何设置软件中心以允许non-root用户从Ubuntu repos安装内容而无需输入密码?

我完全了解安全隐患,我愿意承担风险。 Fedora 12附带了这样的东西。 (通过修改PolicyKit配置,我相信)

最佳解决方法

您可以修改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将允许登录到本地计算机的任何用户在键入自己的密码后安装软件包(即使他们不在管理组中)并更新软件包缓存而不键入任何密码。

[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

次佳解决方法

我不认为现在可以通过GUI这样做,但以下应该可以工作,虽然有点kludgy。因人而异。

将以下行添加到/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

您可以编辑软件中心的桌面菜单项,以便在software-center上调用gksudo之前的命令。

PolicyKit可以允许你在没有sudo的情况下这样做,但是在这一点上我已经超出了我的理解。

第三种解决方法

RAOF’s answer仅适用于Ubuntu。 Kubuntu使用QAptWorker作为后端(观察Natty和Oneiric)。要允许non-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

我想允许一些non-admin用户安装软件,而不直接授予sudo访问权限。这是通过在两个配置组中插入下一行来完成的:

Identity=unix-user:some-non-admin-user

如果存在必须授予权限的组,请使用unix-group而不是unix-user。

第四种方法

如果您只需要允许/禁止软件包安装的通用权限,请转到PolicyKit。

不幸的是,PolicyKit无法很好地控制要安装的软件包。如果您希望授予用户仅安装一组受限应用程序的权限,则应使用sudo并安装类似softwarechannels的内容……

我也找了类似的东西,但由于我没有找到任何东西,我编写了这个简单的解决方案”softwarechannels”,available here on GitHub

这是一个非常简单的系统,允许通用(non-admin)用户从受限制的目录中安装包。

只需在简单的文本文件中定义’channels'(包组),并授予用户启动软件通道的权限。

他们只会看到与其unix组匹配的频道中的包。

参考资料

最后

以上就是独特身影为你收集整理的非root安装linux软件,如何设置软件中心以安装非root用户的软件?的全部内容,希望文章能够帮你解决非root安装linux软件,如何设置软件中心以安装非root用户的软件?所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(42)

评论列表共有 0 条评论

立即
投稿
返回
顶部