문제를 상술하자면, SELinux 가 켜져 있는 상황에서 cgi 파일 안에서 외부 프로그램을 실행시키려 할 때 해야 하는 일이다. 관건은 file 의 SELinux security context를 변경시켜야 한다는 것이다.
SELinux가 켜져 있는 상황에서, 일반적이라면 cgi-bin 인 곳에 apache 가 실행시킬 수 있는 실행 파일이 위치하게 된다. 만약 그 스크립트 파일 안에서 다른 프로그램을 실행시켜야 한다면, 그렇게 실행을 당해야 하는 파일은 httpd_sys_script_exec_t context를 갖고 있어야 한다. 다음과 같이 한다.
[centos@ABCDEFGH KKK]$ sudo chcon -t httpd_sys_script_exec_t [executible-file-name]
그것의 확인은 다음과 같이 -Z 지시자의 ls 명령어로 확인할 수 있다.
[centos@ABCDEFGH KKK]$ ls -Z
-rwxrwxr-x. centos centos unconfined_u:object_r:httpd_sys_script_exec_t:s0 find_words
보다 자세한 내용은 SELinux 설명 페이지에 있으니 참고한다.
SELinux가 켜져 있는 상황이라면 httpd 가 읽을 수 있는 파일, 쓸 수 있는 경로, 실행시킬 수 있는 파일 등이 모두 조절되어야 한다. 보통 권한 문제일 경우 chmod 명령어로 해결할 수 있었는데, 이 경우 이뿐만이 아니라 chcon 을 통한 security context까지 조절해 주어야 한다.
'컴퓨터 > 리눅스' 카테고리의 다른 글
rsync : 데이터 백업 프로그램 (0) | 2016.05.05 |
---|---|
리눅스에서 새 HDD를 달고 mount 하기 (0) | 2015.11.12 |
삼바 접속이 안될 때 확인할 점들 (0) | 2013.05.09 |
vi 초기 환경 설정 파일 (0) | 2013.01.15 |
ar : object file 을 하나로 묶기 (0) | 2011.06.24 |