PHP 웹 프로그램이 쉘 스크립트를 실행합니까?

PHP 웹 프로그램이 쉘 스크립트를 실행합니까?

사용자에게 일부 매개변수를 입력하라는 메시지를 표시한 다음 이러한 매개변수를 사용하여 배치 쉘 스크립트를 실행해야 하는 PHP 프로그램이 있습니다. 다음 함수를 사용하여 이를 구현했습니다.

$cmd =  "echo \"podcast -c $TCname\" | at $_stimehr:$_stimemn $_sdate";

exec("$cmd", $_RetVal);

이것은 대기열에 추가되고 심지어 실행될 것입니다. 하지만 극복할 수 없을 것 같은 권한 문제가 있다고 생각합니다.

내 apache2는 www-data 사용자로 실행 중이고 모든 사람이 쉘 스크립트를 실행할 수 있는지 확인했으며 내 작업 디렉토리 트리는 현재 777로 설정되어 있습니다(이것을 알아낼 때까지 일시적으로 777로 설정됨). 여전히 시작되고 오류 메시지 없이 실패하며 wazoo에 로그인됩니다! 오류가 없습니다. 디렉터리를 변경하려고 하면 중지되는 것 같습니다.

답변1

이런 문제가 발생할 때마다 에 넣어두었습니다 www-data. 테스트를 마친 후 원래 상태 /etc/passwd로 되돌릴 수 있습니다 .nologin

그런 다음 su - www-data수동으로 스크립트를 실행해 보았습니다. 권한과 관련된 문제가 있는 경우 범위를 좁히는 데 도움이 됩니다. PHP에서 쉘 스크립트를 실행하면 때때로 예상치 못한 결과가 발생할 수 있습니다.

관련 정보