我试图创build一个ruby脚本,由非特权用户运行时使用root权限执行。 基本上我正在编写一个包装脚本,在运行时将用户添加到一个组中,运行一个命令,然后从该组中删除该用户。 这一切都在CentOS下,而不是使用sudo。
我已经玩弄了由root拥有的脚本,然后chmod + s,据我所知,应该以root权限运行脚本。 但是,当我在脚本中运行ruby命令system "gpasswd -a #{user} #{group}" ,我得到了一个权限被拒绝的消息。
我有点卡住了,现在没有如何得到这个工作。
谢谢
设置脚本setuid不起作用,除非解释器有看到setuid脚本时调用的setuid版本。 您将需要一个编译的setuid包装来运行脚本。
此外,请注意,用户重新login之前,组成员资格更改不会生效。 也许你应该看看configurationusermode或PolicyKit。
Sudo是正确的工具,你应该考虑安装它。