2014-04-24 2 views
1

AWS에서 실행중인 Amazon (AMI) Linux EC2 인스턴스가 있습니다. 웹 URL (CGI 스크립트)을 통해 호출 될 때 디렉토리를 생성하는 펄 스크립트를 작성합니다.EC2에서 Apache가 CGI 스크립트를 통해 sudo 명령을 실행하도록 허용

그러나 브라우저가 스크립트를 실행 중이므로 사용자 아파치는 perl 스크립트를 실행하고 있습니다. 아파치는 sudo를 사용하지 않고 mkdir 명령을 수행 할 수 없기 때문에 어떤 디렉토리도 생성되지 않습니다.

브라우저를 통해 실행 (755)하는 스크립트 권한을 수정했지만 mkdir 명령은 작동하지 않습니다.

나는 심지어 펄 스크립트 내에서 sudo 명령을 사용해 보았지만 운이 없다. 그러나 모든 비 sudo 명령은 'cd'등과 같이 작동합니다.

누구든지이 문제를 해결하는 방법을 알고 있으면 감사하겠습니다.

+0

: 죄송합니다, 당신은 실행하는 청각 장애를 가지고 있어야합니다 sudo –

답변

1

검색을 통해 답변을 찾았습니다.

가장 먼저해야 할 일은 현재 사용자의 tty를 사용 중지하는 것입니다. 내 웹 브라우저는 서버의 사용자 'apache'로 아무것도 실행하지 않습니다.

그래서 내/등에 /의 sudoers 내가

을 추가 파일

기본값 :! 아파치 requiretty

또한

내가 sudo는 암호를

Cmnd_Alias없이 나는 아파치 사용하려는 명령의 목록을 생성 APACHE =/빈 /에서 mkdir/빈/RMDIR 아파치 ALL = (ALL) NOPASSWD : APACHE

이 허용은 특정 sudo는 암호를 requring하지 않고 내 웹 서버에 실행 명령.

참고 : visudo 명령을 사용하여/etc/sudoers 파일을 열면 ... 일반 vim이나 nano 만 사용하여 열지 마십시오. 저장하면 에러가 발생합니다. sudo 명령이 실행되지 않으므로 완전히 새로운 서버를 만들어야 할 수도 있습니다.

유 사용하여 편집기를 지정할 수 있습니다 visudo를 .. 예를 들어

EDITOR = 나노 visudo를 또한 내가 그것은 sudo를 말한다 .. 내 오류 로그를 확인