2023-09-20 701 View 공개 |
아래 PHP 코드로 웹 루트폴더의 sh 쉘파일을 실행할 수 있습니다.
<?php // 웹 루트폴더의 copy.sh 쉘파일을 실행합니다. $output = shell_exec("./copy.sh"); // 쉘파일의 출력을 표시합니다. echo $output; ?>
이 코드는 shell_exec() 함수를 사용하여 쉘파일을 실행합니다. shell_exec() 함수는 쉘 명령어를 실행하고 그 결과를 문자열로 반환합니다. 위 코드를 실행하면 "파일 복사 완료" 메세지가 출력이 나타납니다. 만약 쉘파일에 인수를 전달하려면 다음과 같이 코드를 수정하면 됩니다.
<?php // 웹 루트폴더의 copy.sh 쉘파일을 실행합니다. $output = shell_exec("./copy.sh /src/dir /dst/dir"); // 쉘파일의 출력을 표시합니다. echo $output; ?>
이 코드는 copy.sh 쉘파일에 /src/dir 디렉토리에서 /dst/dir 디렉토리로 파일을 복사하는 명령을 전달합니다. 쉘파일을 실행할 때는 다음과 같은 주의 사항을 확인해야 합니다. ◼︎ 웹 서버에서 쉘파일을 실행할 수 있는 권한이 있어야 합니다. ◼︎ 쉘파일에 악성 코드가 포함되지 않았는지 확인해야 합니다.
다음은 쉘파일을 실행할 때 발생할 수 있는 에러입니다. ◼︎ Permission denied 에러: 웹 서버에서 쉘파일을 실행할 수 있는 권한이 없습니다. ◼︎ Command not found 에러: 쉘파일이 존재하지 않거나 실행할 수 없습니다. ◼︎ Syntax error 에러: 쉘파일의 구문이 올바르지 않습니다.
PHP