为什么 sudo 不可接受?

为什么 sudo 不可接受?

我需要在 sh 脚本中使用“brctl addbr br-lan”命令创建一个网桥,而不使用 sudo。

我有一个像这样的脚本;

brctl addbr br-lan
ifconfig lo up

我尝试为我的脚本设置功能

sudo ./setcap cap_net_raw,cap_net_admin,cap_dac_override+eip 
./myscript.sh

但这并没有改变任何事情。

调用“./myscript.sh”会返回以下输出;

add bridge failed: Operation not permitted
SIOCSIFFLAGS: Operation not permitted

我应该怎么做才能在没有 root 权限的情况下运行我的脚本,或者我应该为我的脚本定义哪些功能?

德克萨斯州。

答案1

您无法将功能分配给脚本,因为需要这些功能的是解释器,而不是脚本。如果您无法使用,sudo则需要找到其他方式以 root 权限运行脚本。

也许如果您更新您的问题以包含一些上下文(例如,提到为什么您不能使用sudo,或者为什么脚本不会在 root 帐户下自然运行),这里的某人可能能够提供一些额外的建议。

答案2

  • 您是否知道 sudo 具有细粒度的权限。例如,您可以授予一个用户做一件事的权限(带或不带密码)。这是不是全有或全无

  • 考虑使用golang 或其他高级编译语言进行编写。它将允许能力。

  • 考虑使用docker并授予一些sudo权限来管理此容器。请注意容器/映像重命名,可能会允许权限升级(并非所有具有此名称的容器/映像都相同),因此请注意您允许的内容。

相关内容