我们向客户发送一个运行 Web 服务的虚拟机。客户需要使用虚拟机管理程序在其其中一台主机上安装此虚拟机,只需修改网络配置即可访问 Web 服务。
我们不想让客户端仅修改网络配置就拥有完全的 root 访问权限。我们考虑在 /etc 文件夹上添加一个具有 sudo 权限的新用户,但这可能会产生其他后果。最好的处理方式是什么?
PS:安装虚拟机的机器没有USB接口。
答案1
你可以对 sudo 进行严格限制,将用户限制在一组特定的命令上
从长远来看,如果你真的编写一个脚本来收集相关信息并根据用户需要修改/生成文件并重新启动网络,可能会更容易。然后你将有一个更简单的 sudo 设置
user (ALL)=(root) /path/to/setup-script
确保只有 root 可以编辑脚本。这样做的一个附带好处是您不必教人们如何使用所选的 $EDITOR,并且您的文件可以以一致的方式生成。
答案2
您也可以考虑使用群组成员身份。为此目的创建一个群组
sudo groupadd netedit
使用您选择的工具,在 /etc/groups 中为维护用户授予该组的次要成员资格,然后授予您想要的文件的编辑权限:
sudo chgrp netedit /etc/sysconfig/network-scripts/ifcfg-eth0
sudo chmod g+w /etc/sysconfig/network-scripts/ifcfg-eth0