简体   繁体   中英

can not run sudo in a rails resque worker

I have a resque worker which will run some shell command.

for example

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

but when worker run, will raise below error

sudo: no tty present and no askpass program specified

I have add 'whoami' debug code to find which user run this sudo command, and also set this user's group "test" when execute command will don't need password. I'm also run same command in shell console, it works right, don't need input password.

sudo visudo

%test ALL=NOPASSWD:ALL

but when the worker run sudo, will says above error, require input password.

Who can tell me why? Thanks.

I am really hesitant to offer this as a "fix" because @AJcodez asks correctly, "why do you need sudo?" However, you can probably get around the tty requirement by adding the following:

Defaults requiretty
Defaults: %test !requiretty

to the /etc/sudoers file, but please use the visudo command. Also, is test here a user or a group? I also suspect that your sudoers line is malformed. The syntax is:

jane ALL=(LIST_OF_COMMANDS) NOPASSWD: ALL

Where you seem to have it set to run the NOPASSWD setting for all zero commands the %test group can run. Or I could be misunderstanding your paste here.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM