2013-12-18 3 views
1

일부 쉘 명령을 실행할 resque worker가 있습니다.레일 재 작업자에서 sudo를 실행할 수 없습니다.

예를

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

에 대한

하지만 노동자의 실행이 오류

sudo: no tty present and no askpass program specified

아래에 올릴 때 어떤 사용자가이 sudo는 명령을 실행 찾아 'whoami를'디버그 코드를 추가해야, 또한 실행 명령에 암호가 필요하지 않을 때이 사용자 그룹 "test"를 설정하십시오. 쉘 콘솔에서 같은 명령을 실행해도 입력 암호가 필요하지 않습니다.

sudo는 visudo를

%test ALL=NOPASSWD:ALL

하지만 노동자 실행 sudo는이, 의지가 오류 이상 말할 때, 패스워드를 입력해야합니다.

누가 그 이유를 알 수 있습니까? 감사합니다. .

+3

왜 sudo가 필요합니까? – AJcodez

답변

0

@AJcodez가 올바르게 묻기 때문에 나는 "fix"로 이것을 제공하는 것을 주저합니다. "왜 sudo가 필요합니까?" /etc/sudoers 파일에

Defaults requiretty 
Defaults: %test !requiretty 

을하지만, visudo 명령을 사용하십시오 : 그러나, 당신은 아마 다음을 추가하여 청각 장애 요구 주위에 얻을 수 있습니다. 또한 test은 (는) 사용자 또는 그룹입니까? 나는 또한 귀하의 sudoers 라인이 잘못된 것으로 의심합니다. 구문은 다음과 같습니다 당신이 모두 0의 NOPASSWD 설정을 실행하도록 설정 한 것 같다

jane ALL=(LIST_OF_COMMANDS) NOPASSWD: ALL 

%test 그룹이 실행할 수있는 명령. 아니면 여기에 붙여 넣기를 오해 할 수도 있습니다.