我已经在 Linux PC 上制作了一个简单的路由器,目的是使用 qdisc(netem 和 tbf)模拟恶劣的网络条件。
现在,我想允许任何用户激活我准备的特定预设(正常网络、高延迟、高数据包丢失),并让其更改在重启后保持不变。就我自己而言,目前,我已经使用一些需要 root 权限的简单脚本实现了这一点。
我读过类似的问题,常见的答案是不在脚本中寻找解决方案,而是描述我的问题。顺便说一句,我对 Linux 也有点陌生,但我有专业 C 编程经验(嵌入式)。
允许任何非 root 用户轻松加载特定预设(针对 qdisc)的最佳方法是什么?
答案1
最好的办法可能是允许这些用户使用 sudo 执行特定命令。您可以使用 visudo 修改 sudoers 文件,并允许特定组中的所有用户执行命令。
#Cmnd Alias
Cmnd_Alias QDISK_COMMANDS=<your commands>
<mygroup> ALL=(ALL) NOPASSWD: QDISK_COMMANDS
这样应该允许组中的每个用户使用 sudo 运行并根据需要执行脚本。您可以找到更多 sudoers 文档这里。