我想允许特定用户或组使用以下命令管理 IP 接口
ip link set dev $DEV_NAME up
ip -4 addr add $DEV_ipv4_ADDR dev $DEV_NAME
没有超级用户权限(sudo)。以下错误的本质是什么?
RTNETLINK answers: Operation not permitted
出于好奇,我想使用用户运行的脚本设置 ip 接口,并且我不希望它们每次遇到带有“sudo”的语句时都被阻止。我也不想用“sudo”运行整个脚本。
我曾想过运行 sudo chmod +s $(which ip) 但这听起来是个糟糕的主意!!
答案1
sudo
我认为仍然是最好的方法。编写脚本,使其只能执行您希望允许用户执行的操作,然后授予访问权限,以visudo
允许特定用户以 root 身份运行这些特定脚本。
您说您不想使用 运行整个脚本sudo
;那么答案就是将必须以 root 身份运行的部分拆分成单独的脚本,然后运行那些sudo
从面向用户的脚本调用。如果您不希望面向用户的脚本显示密码:提示,则可能NOPASSWD
带有选项。sudo
sudo
授予命令的全面 root 访问权限并不是一个好主意,ip
因为有人可能很容易破坏系统的网络,而且很可能其中某处存在任意代码执行方法。