以普通用户的身份发送新贵事件


1

我想创建一种情况,即非特权用户(通过SSH)触发事件导致新手工作执行某些操作。这些活动依赖于文件系统的变化,所以我欢迎其他方法。

基本上我想要有类似的东西:

description "Foo job"
exec foo
start on foo

然后让用户像foo一样触发事件。当我说“user”时,我实际上是指当git通过SSH推送到主机上的存储库时自动运行的git hook脚本。

我试过简单的跑步 initctl emit foo,但只有当我以root身份执行时才有效。

我也不能在这种特殊情况下使用用户作业,因为我希望有问题的工作重新启动服务器并创建目录结构,其中发出事件的用户无权访问。

关于如何在不给予用户不必要的特权的情况下实现这一目标

编辑:只是添加一个我忘了提及的要求。这必须是可编写脚本的,因此输入密码不是一种选择。

Answers:


2

要回答我自己的问题,可以修改sudoers文件以允许用户运行带参数的特定命令。因此,对于所讨论的情况,这样的事情将起到作用:

Cmnd_Alias EMIT_CMD = /sbin/initctl emit foo
user ALL=(ALL) NOPASSWD: EMIT_CMD

如果你的opreating系统是这样配置的,可以将它放在/ etc / sudoers中,或放在/etc/sudoers.d中的文件中。

一旦配置了sudo,非特权用户就可以进行呼叫 initctl 命令没有密码,但只有指定的参数,并且任何其他参数集将失败,因为用户(希望)不在任何其他容量的sudoers列表中。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.