728x90
반응형
문제점 및 증상
PHP로 개발중인 API에 쉘 스크립트를 실행하여 특정 작업을 처리하는 상황에서, API 호출에는 이상이 없었으나, 실제 스크립트가 동작한 로그를 확인해 보니, 다음과 같이 "Permission denied" 오류가 발생하며 API 내부에서 스크립트 호출이 계속 실패하였습니다.
개발 환경은 다음과 같았습니다.
- OS : CentOS 7.4
- Web Server : Apache 2.4.41 + PHP 7.3.12
- MVC Framework : CodeIgniter-3.1.10
- DB : MariaDB-10.3.x
원인 분석
audit2why 명령으로 "/var/log/audit/audit.log" 파일의 내용을 확인한 결과 다음과 같은 내용이 확인 되었습니다.
API에서 실행되는 스크립트의 권한이 달라서 발생한 문제였습니다.
PHP 단에서는 위 스크립트를 다음과 같은 형태로 실행합니다.
조치 내용
API에서 실행되는 스크립트의 권한을 다음과 같이 "httpd_sys_script_exec_t"를 지정하여 PHP API 단에서 해당 스크립트가 정상적으로 실행될 수 있도록 다음과 같이 권한을 수정하였습니다.
위와 같이 권한 수정 후, API에서 쉘 스크립트가 정상적으로 잘 수행되었습니다.
'Linux,Unix,BSD' 카테고리의 다른 글
ubuntu 16.04에 nvidia driver 및 cuda 10.x 설치하기 (0) | 2020.08.16 |
---|---|
[Linux] 메모리 스왑(SWAP) 추가하기 (0) | 2020.04.24 |
[PHP] CentOS SELinux 활성화 서버에서 PHP로 MariaDB 접속시, "Permission denied" 발생 문제 (0) | 2020.01.15 |
[Linux] Nginx + PHP7 설치 on CentOS 7 (0) | 2019.12.28 |
vsftpd 설치하기 on CentOS7 (3) | 2019.10.12 |