以 root 身份执行命令

Jam*_*ieD 1 linux

我正在尝试创建一个由非特权用户运行时以 root 权限执行的 ruby​​ 脚本。基本上我正在编写一个包装脚本,当运行时将用户添加到组中,运行命令,然后从组中删除用户。这都是在 CentOS 下,而不是使用 sudo。

我已经尝试过让脚本由 root 拥有,然后 chmod +s 据我所知应该以 root 权限运行脚本。但是,当我system "gpasswd -a #{user} #{group}"在脚本中运行 ruby​​ 命令时,我收到一条权限被拒绝的消息。

我现在有点不知道如何让它工作。

谢谢

Ign*_*ams 5

设置脚本 setuid 不起作用,除非解释器有一个 setuid 版本,它在看到 setuid 脚本时调用。您将需要一个已编译的 setuid 包装器来运行该脚本。

另请注意,组成员身份更改在用户重新登录之前不会生效。也许您应该考虑配置 usermode 或 PolicyKit。