我需要用户能够更改 IP 地址,而不授予他完全的超级用户访问权限。我怎样才能做到这一点?
我在这里尝试了解决方案https://serverfault.com/a/480823 这很好用,但只有一次,然后我必须再次重做这些步骤。
我如何授予用户随时更改 IP 地址的权限?
编辑:我没有rm
该文件,如上面的链接所述。但是当我再次尝试时,我收到类似的错误
SIOCSIFADDR: Permission denied
SIOCSIFFLAGS: Permission denied
SIOCSIFNETMASK: Permission denied
SIOCSIFBROADCAST: Permission denied
就像我ifconfig
直接使用一样。
答案1
更改 IP 地址的简单方法是在命令行上使用ifconfig
# ifconfig <interface> <ipaddress> netmask <netmask>
sudo /sbin/ifconfig 192.168.0.1 netmask 255.255.255.0
# for changing gateway if desired
sudo /sbin/route add default gw 192.168.0.253 eth0
您使用编辑 sudoers 文件visudo
选项1:创建一个新组,名为ipchangers例如。然后在 visudo 中追加到文件底部
%ipchangers ALL = NOPASSWD: /sbin/ifconfig
%ipchangers ALL = NOPASSWD: /sbin/route {if desired}
请务必指示您的ipchangers用户必须输入sudo /sbin/ifconfig
。然后您将所有用户添加到ipchangers您希望有能力运行的组ifconfig
选项2:仅为特定用户执行此操作乔和杰克例如,您在没有 % 的情况下执行此操作
john ALL=NOPASSWD: /sbin/ifconfig
jack ALL=NOPASSWD: /sbin/ifconfig
退出时visudo
应该干净地退出。如果没有,它会给出类似的东西
>>> /etc/sudoers: syntax error near line 57 <<<
What now?
那么你的语法是错误的。按照后续说明并更正语法,不要保存错误的 sudoers 文件。
请注意,无论您授予谁运行能力,ifconfig
都可以ifconfig
最大程度地使用它,并且可以做的不仅仅是更改 IP 地址。
答案2
如果您跳过命令rm ifconfig
(您链接的解决方案中的最后一行),您应该可以继续。但是让非系统管理员这样的命令ifconfig
在无人监督的情况下一直使用是一场安全噩梦。他可能没有恶意,但如果发生了什么事,其他人掌握了这个帐户,那么,你可以猜到他们会造成什么后果。只是警告一下。