使用非 root 用户执行“/etc/init.d/networking restart”

使用非 root 用户执行“/etc/init.d/networking restart”

我有一个带有 112mb RAM 的瘦客户端,它使用 openbox 从 USB 驱动器启动 ubuntu 服务器 12.04.1,学生将使用它与 cisco 设备通信。因此,学生需要能够重新配置网络接口,然后使用唯一的用户 cisco 重新启动它而无需重新启动。

这是我目前所拥有的:

adduser cisco
usermod -a -G dialout cisco
chown root:cisco /etc/network/interfaces
chmod 664 /etc/network/interfaces
chmod u+s /sbin/shutdown
chmod u+s /sbin/reboot
chmod u+s /sbin/poweroff
chmod u+s /run/network/if*
chmod u+s /sbin/ifdown
chmod u+s /sbin/ifup

当我/etc/init.d/networking restart以 cisco 身份运行时,我得到:

*Reconfiguring network interfaces...
rm: cannot remove `eth0.dhclient': Permission denied
Failed to send flush request: Operation not permitted
RTNETLINK answers: Operation not permitted

关于如何实现这个功能你有什么想法吗?

谢谢!

答案1

您需要为 cisco 用户添加适当的 sudo 权限。以 root 身份在 /etc/sudoers.d/ 中创建一个名为 cisco 的文件,内容如下:

cisco ALL=NOPASSWD: /etc/init.d/networking

还将访问权限更改为只读:

sudo chmod 440 /etc/sudoers.d/cisco

更多的 Ubuntu 方式是使用逻辑sudo service networking restart,但我不知道如何将其添加到 sudoers 文件中。

相关内容