비즈니스 배경: yourcmd는 내 Linux 프로그램입니다. PHP를 사용하여 yourcmd 프로그램을 실행할 때 매우 엄격한 권한 요구 사항이 있습니다.
시스템: CentOS 6.3
apache는 php의 실행 사용자입니다
exec 함수를 사용하여 Linux 시스템에서 /usr/local/yourcmd/sbin/yourcmd 프로그램을 실행합니다
php 코드는 다음과 같습니다.
$conf_file = "/var/www/html/webroot/test.tmp";
$command = "sudo /usr/local/yourcmd/sbin/yourcmd -t -f {$conf_file}";
exec($command,$out);
print_r($out);
테스트 결과는 무허가
배열([0] => sudo: tty가 없고 Askpass 프로그램이 지정되지 않음)
해결 단계:
$비주도
1) 다음 줄을 주석으로 처리하세요
#기본값 필수
2) 파일 끝에 다음
을 추가합니다.
아파치 ALL=(ALL) NOPASSWD: ALL
Cmnd_Alias yourcmd = /usr/local/yourcmd/sbin/yourcmd
최종 테스트 결과
배열( [0] => 경고: 메모리가 너무 작습니다: 1044725760 [1] => 테스트 구성이 괜찮습니다 )