![如何在不成为 Debian 上的 root 权限的情况下执行管理任务?](https://linux22.com/image/1409234/%E5%A6%82%E4%BD%95%E5%9C%A8%E4%B8%8D%E6%88%90%E4%B8%BA%20Debian%20%E4%B8%8A%E7%9A%84%20root%20%E6%9D%83%E9%99%90%E7%9A%84%E6%83%85%E5%86%B5%E4%B8%8B%E6%89%A7%E8%A1%8C%E7%AE%A1%E7%90%86%E4%BB%BB%E5%8A%A1%EF%BC%9F.png)
在 Debian 7 上,如何才能从非 root 帐户执行某些管理任务而不成为 root?例如,我的 iptables 阻止所有用户(包括 root)的所有网络访问,但一个用户除外 - “webuser”。webuser 是管理员帐户,它位于管理员和 adm 组中,它在 sudoers 文件中,可以使用 sudo。当我尝试以“webuser”身份通过 sudo 使用 apt-get 或 synaptic 时,输入 root 密码后,程序显然在 root 帐户下启动,而不是在 webuser 下启动,并且无法访问网络。
是否有一些可以为 synaptic 或 apt-get 设置的配置设置,以便这些程序可以在非 root 帐户下运行?
答案1
在非 root 帐户下运行包管理器是个糟糕的主意。默认情况下这是不可能的,但您可能可以通过某种方式进行热连接,也许使用一些 chroot 魔法。并且可能会破坏您的系统。
想象一下您使用 webuser 安装库的场景,如果由 root 安装,则使用该库的应用程序将无法访问它。
有些应用程序,比如 apache,允许你配置程序以哪个用户和组运行(在 centos 上为 /etc/httpd/conf/httpd.conf),其他应用程序则不提供任何选择。许多应用程序需要以单独的用户身份运行。
我认为您可以通过创建一个名为 webuser 的组来实现您的目标,该组具有网络访问权限,向其中添加具有网络访问权限的程序的用户,并允许该组的成员在 iptables 中访问网络。
请注意,root 需要属于 webuser 组,包管理器才能正常运行