exec
및 shell_exe
으로 쉘 스크립트를 실행하려고하면 아무 일도 일어나지 않습니다! 명령을 ls
또는 whoami
으로 실행하면 모든 작업이 완료됩니다.PHP에서 쉘 스크립트 실행
무엇이 될 수 있습니까?
exec
및 shell_exe
으로 쉘 스크립트를 실행하려고하면 아무 일도 일어나지 않습니다! 명령을 ls
또는 whoami
으로 실행하면 모든 작업이 완료됩니다.PHP에서 쉘 스크립트 실행
무엇이 될 수 있습니까?
출력을 에코합니까?
echo exec('ls');
safe_mode를 사용하고 있습니까?
phpinfo();
때 예 :
(수동)에서 참고 : 안전 모드가 활성화되면, 당신은 단지 safe_mode_exec_dir 안의 파일을 실행할 수 있습니다. 실용적인 이유 때문에 현재 실행 파일의 경로에 구성 요소가있는 것은 에 허용되지 않습니다. 이
127
경로가 잘못 가능성 키우면 표시되면
봅니다
exec('...pathtoyourbashscript...', $out, $return);
그런
echo $return;
와 간부를 호출합니다.
권한을 확인하십시오. 사용자 'nobody'는 아마도 아파치 사용자 일 것이며 스크립트에 접근하고 실행할 권한이 필요합니다.
당신은이 같은 의미
chmod 755 pathtouyourscript
을 실행하여 권한을 변경할 수 있습니다 '다른 사람이 읽거나이 파일을 실행하면 난 상관 없어를,하지만 나는 그것을 수정할 수 있어야한다'.
Apache를 사용하는 경우 Apache 사용자가 PHP 파일을 실행하는 데 필요한 권한이 있는지 확인하십시오.
Dale Smith, 어떻게 확인할 수 있습니까? 그것은 내가 생각하는 모든 권한을 가지고있다 ... – Oleg
리플렉션을 사용하여 기능이 사용 중지되었는지 알아낼 수 있습니다 (disable_functions
).
$exec = new ReflectionFunction('exec');
print $exec->isDisabled() ? 'Disabled' : 'Enabled';
나는 'ReflectionFunction'을 사용했다 ... 그것은 보여준다. ** Enabled ** – Oleg
프로그램이 웹 기반 (Linux 용) 인 경우 셸 처리를 위해 PHP 파일을 만들어보십시오. 과 PHP를 처리하는 쉘 파일 ..
예를 들어: runAllShell.php 파일은 루프 :
<?php
// Developed by A T.
// Count the files
$directory = '/put/directory/path_here/';
$files = glob($directory . '*.*');
if ($files !== false)
{
$filecounter = count($files);
}
else
{
echo "No Files were found";
}
$fileCount = $filecounter;
// Start the index
$fileNumber = 1;
while($fileNumber <= fileCount){
shell_exec('$fileNumber . ".sh"');
// get some feedback
echo "The ".$fileNumber." file has been excecuted";
// increment file number
$fileNumber++;
}
?>
하면 디렉토리의 모든 .sh로 파일을 numericaly에 대한 정렬되었는지 확인을 포함 할 수 있습니다 이 일을 즉 : 1.sh 2.sh 3.sh 등등.
감사합니다. AT.
어떻게 실행하려고하는지 예를 들어주세요. –
정규화 된 PATH (예 : "/ usr/local/myscript")를 사용해 보셨습니까? – paulsm4
http : // whathaveyoutried.com/ –