【问题标题】:can not run sudo in a rails resque worker无法在 rails resque worker 中运行 sudo
【发布时间】:2014-01-06 06:15:55
【问题描述】:

我有一个 resque worker 会运行一些 shell 命令。

例如

ruby `sudo echo "XXX" >> xx.log`

但是当工人运行时,会引发以下错误

sudo: no tty present and no askpass program specified

我添加了“whoami”调试代码来查找运行此 sudo 命令的用户, 并在执行命令不需要密码时设置该用户的组“test”。 我也在 shell 控制台中运行相同的命令,它工作正常,不需要输入密码。

sudo visudo

%test ALL=NOPASSWD:ALL

但是当worker运行sudo时,会出现上述错误,需要输入密码。

谁能告诉我为什么? 谢谢。

【问题讨论】:

  • 为什么需要 sudo?

标签: ruby-on-rails linux shell resque sudo


【解决方案1】:

我真的很犹豫是否将其作为“修复”提供,因为@AJcodez 正确地询问,“为什么需要 sudo?” 但是,您可以通过添加以下内容来绕过 tty 要求:

Defaults requiretty
Defaults: %test !requiretty

/etc/sudoers 文件,但请使用visudo 命令。另外,test 这里是用户还是组?我还怀疑您的 sudoers 行格式错误。语法是:

jane ALL=(LIST_OF_COMMANDS) NOPASSWD: ALL

您似乎已将其设置为运行%test 组可以运行的所有零命令的 NOPASSWD 设置。或者我可能误解了你的粘贴。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-05
    • 1970-01-01
    • 2012-09-12
    • 1970-01-01
    相关资源
    最近更新 更多