是否允许非管理员用户通过apt或rpm安装软件包?


13

是否可以允许非root用户使用apt或rpm在系统范围内安装软件包?

我现在工作的地方在linux机器上安装了过时的设置,管理员厌倦了必须根据用户要求进行所有安装的操作,因此他们正在考虑将全部sudo权限授予所有用户。这具有明显的安全缺点。因此,我想知道是否存在允许普通用户安装软件以及升级和删除软件的方法?


4
如果您授予安装软件包的特权,那么您实际上就具有完全的管理员权限,因为用户可以只使用setuid-root shell安装软件包。
卡姆(Camh)2012年

@camh hrm ..您可能拥有经过审查的存储库,并且不让用户添加新的存储库,不是吗?还是apt允许您从.deb文件安装软件包?我意识到经过审查的回购从长远来看可能会更多,这更多是一个概念性的问题:)
naught101

1
apt-secure(8)说:“ apt-get当前仅警告未签名的档案,将来的发行版可能会强制所有源进行验证,然后再从中下载软件包”。根据攻击的复杂程度,有可能劫持与存储库源的连接并注入不受信任的程序包。但是,请阅读该手册页以获取更多详细信息。您可能有一个足够安全的线程模型解决方案。
卡姆(Camh)2012年


Answers:


23

您可以使用sudo指定允许的命令,而不必允许无限制的访问,例如

username ALL = NOPASSWD : /usr/bin/apt-get , /usr/bin/aptitude

这将允许用户名运行sudo apt-get并且sudo aptitude没有任何密码,但不允许任何其他命令。

您还可以将packagekitPolicyKit结合使用,以实现比sudo更好的控制级别。

允许用户安装/删除软件包可能会有风险。他们只需卸载必要的软件(例如libc6,dpkg,rpm等)就可以很容易地使系统无法正常工作。从定义的档案中安装任意软件,攻击者可能会安装过时或可利用的软件并获得root访问权限。我认为主要的问题是您对员工有多信任?

当然,您的管理团队也可以开始使用诸如木偶,厨师之类的配置管理系统,或者研究Spacewalk来管理您的系统。这将允许他们从中央系统配置和管理系统。


我将其排除在问题之外,但是您对允许这样做隐含的降低安全性有何评论?我的意思是,您无法更改软件包存储库,因此您可能不会获得完整的sudo访问权限,但可以使用aptitude来写入任何文件(选项>首选项>“将操作记录到的文件”),这可以造成一些严重的损害。我对PolicyKit不太确定...
naught101

1
@ naught101好的,我添加了一些有关安全性的评论。JFTR作为策略工具包将不提供root访问权限,因此使用sudo不会带来太大的问题
Ulrich Dangel 2012年

您可以通过多种方式从dpkg或rpm运行Shell。例如:dpkg将在配置文件更改发生冲突时提示,其中一个选项是启动shell来检查情况。如果通过sudo运行,它将以root身份启动Shell。同样,如果您可以从该工具运行编辑器,则大多数编辑器都允许您从其中运行任意的Shell命令(例如,vi中的!command)。
David Gardner

@ naught101我将通过此博客描述的包含SUID shell的RPM测试特权升级:nasindookie.blogspot.com/2011/07/…但是,在shell注入情况下,如果sudoer帐户受到威胁,则可以缓解通过要求输入密码而不是NOPASSWD,通过sudo进行特权升级。
马特

7

aptdcon

从手册页:

aptdcon:允许使用aptdaemon执行程序包管理任务,例如安装或删除软件。无需root用户即可运行该程序。


1
尽管您不需要root / sudo特权即可运行aptdcon,但它会立即为非特权用户启动身份验证对话框-我刚刚在Ubuntu上进行了测试。如果您不是特权/授权用户,则不会添加/删除软件包。
圣人

1
无法进行操作ERROR: You are not allowed to perform this action. ('system-bus-name', {'name': ':1.716'}): org.debian.apt.install-or-remove-packages
-JacopKane


1

我也正在寻找类似的东西,但是什么都没有出现,所以我将这个简单的解决方案编码为“ softwarechannels”:

https://github.com/alfem/softwarechannels

这是一个非常简单的系统,允许普通用户(无管理员)从受限制的目录中安装软件包。

只需在一个简单的文本文件中定义“通道”(软件包组),并向您的用户授予启动软件通道的权限。

他们将仅在与其unix组匹配的频道中看到软件包。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.