允许用户仅运行具有root权限/特权的特定二进制文件

iTayb

我想允许特定的用户只能使用sudo /sbin/iptables

我有一个配置iptables的bash脚本。问题在于,仅配置/sbin/iptables为sudoable-脚本本身也必须是sudoable。

问题在于该文件可以由用户编辑(他可以在那里更改配置),从而使他能够以root用户身份运行任何命令。

解决此问题的正确方法是什么?

斯蒂芬·吉梅内斯(Stephane Gimenez)

我可以看到两种方法:

  1. 允许用户使用/sbin/iptables通过sudo没有任何限制(这是危险的东西,这意味着你信任的用户以某种方式),并与用户的权限运行该脚本。该脚本将在sudo每次/sbin/iptables需要时调用假设脚本执行很快,因为最终将需要定期输入一些密码¹。

    • 优点:您不需要对脚本有任何信任。
    • 缺点:如前所述,允许用户/sbin/iptables不受限制地使用是危险的事情。
  2. 允许用户仅通过调用脚本sudo

    • 优点:的使用/sbin/iptables受脚本限制。
    • 缺点:脚本必须完美无缺。

关于您提到的问题:如果脚本是所有者拥有的root并且具有通常的权限:rwxr-xr-x,其他用户则不能修改它,他们只能执行它(最终通过sudo以获得更多特权)。

对于解决方案2,对于外壳程序脚本(与更健壮的二进制文件/程序相比),请当心环境变量和一些可以修改脚本执行的外部因素。检查您的sudo配置是否正确重置了每个潜在有害变量的定义。


1.实际上,sudo可以根据NOPASSWD需要进行配置

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

尽管具有“ rwx”特权和root用户,但执行二进制文件时权限被拒绝

尽管有“ rwx”特权,但在启动二进制文件时仍“拒绝权限”

允许容器的非 root 用户执行需要功能的二进制文件

以root身份运行的二进制文件对exec()的权限被拒绝

在没有sudo的情况下运行root拥有的二进制文件

想要通过使用Go程序运行具有标志和参数的二进制文件

如何创建具有特定值的二进制文件?

二进制搜索具有不同字长的文件

具有强命名二进制文件的CefSharp

在没有提升特权的情况下调用二进制文件

如果用户不是root用户,那么在使用hidepid = 2时,为什么只有执行权限的二进制进程仍隐藏在“ ps”中?

在64位系统上具有32位二进制文件的ldd-运行但不会报告

Hyperledger Fabric设置下载特定平台二进制文件权限错误OSX

将二进制字符串打印到具有特定行长的文本文件

将setuid二进制文件调试为非root用户

仅具有2个参数的递归二进制搜索方法

以其他用户身份运行外部二进制文件

Bash:具有二进制范围的循环,保持控制值二进制

创建具有最小运行长度的二进制值序列

使用具有多个变量的控制文件在Python中读取二进制文件

从具有多个二进制文件的源文件创建 debian 包

从FTP仅下载二进制文件的头

使用特定的QT版本运行二进制文件-无法混合不兼容的Qt库

运行脚本时如何强制使用特定的二进制文件

有没有办法在macOS上运行Linux二进制文件?

如何对向量进行二进制搜索以找到具有特定ID的元素?

具有特定比例的二进制随机数组?

在Julia中解压缩具有特定格式的二进制数据

表示具有特定长度的二进制值