我想编辑 /etc/sudoers 文件,以便非管理员用户可以通过 Linux Mint 10 中的软件中心安装软件。这样做的原因是我希望用户能够安装程序,但不能对系统进行任何其他配置更改。
到目前为止,我有以下内容(其中一些可能没有意义,我只是尝试了我所想到的一切)
username ALL= /usr/bin/aptitude
username ALL= /usr/bin/dpkg
username ALL= /usr/local/bin/apt-get
username ALL= /usr/lib/linuxmint/mintUpdate/mintUpdate.py
username ALL= /usr/bin/software-center
username ALL= /usr/bin/synaptic
到目前为止,它允许我在不要求输入密码的情况下进行更新,但如果不输入管理员密码则不允许我安装软件。
我知道这个问题,如何设置软件中心为非root用户安装软件?,但这是修改 PolicyKit 的路线,而我对 sudo 解决方案感兴趣,因为它似乎是一种更简单的方法。
答案1
请注意,授予用户对dpkg
(或任何其他包管理器的访问权限,但范围较小)的访问权限实际上会授予他们完全的 root 访问权限。没有什么可以阻止此类用户使用 setuid shell 创建全新的包并通过 安装它dpkg
,然后运行该 shell 以获得完全的 root 权限。
答案2
Sudo 可能更简单的方法,但 PolicyKit 更安全的解决方案,据我所知。您应该采用您链接的问题中概述的方法。
答案3
如果所有人都只希望他们能够安装程序,那么您应该只使用一个程序即可。我可能会授予他们运行的权限/usr/bin/apt-get install
。如果您没有运行自动更新,则可能需要添加/usr/bin/apt-get update
。为了纠正损坏的安装,他们可能需要/user/bin/dpkg -C -a
。
或者,您可以启用 synaptic、software-center 或 aptitude。然后,您就可以向用户指出适当的模块。
允许用户卸载软件包可能会导致您考虑删除的功能。