SELinux를 처음 사용합니다. 데비안에서 왔습니다. httpd
디렉토리에 대한 액세스 권한 을 부여하고 싶습니다 .
SELinux Alert Browser 는 다음을 제안합니다.
# grep httpd /var/log/audit/audit.log | audit2allow -M mypol
# semodule -i mypol.pp
이 명령이 어떻게 작동하는지 이해할 수 없었습니다. 디렉토리 경로를 어디에도 지정하지 않습니다. httpd를 허용 할 디렉토리를 어떻게 알 수 있습니까?
이전에는 grep을 사용하여 출력 또는 파일에서 텍스트를 추출했습니다. 그러나 여기서 grep은 프로세스에서 사용되고 있습니다. 나는 얻지 못했다.
또한 실제 솔루션은 무엇입니까? 디렉토리에 httpd 쓰기 권한을 부여하려면?
답변
디렉토리의 컨텍스트를 영구적으로 변경하는 방법은 다음과 같습니다.
# install semanage if you don't already have it:
yum install policycoreutils-python
# give the directory a new default context. The part at the end is a regex.
semanage fcontext -a -t httpd_sys_rw_content_t "/path/to/directory(/.*)?"
# apply the default context to the directory
restorecon -R /path/to/directory
httpd에 대한 다양한 컨텍스트에 대한 추가 문서가 있습니다.
답변
SELinux는 디스크의 디렉토리 구조에 추가 할 수있는 확장 된 속성을 사용합니다. 이것이 메타 데이터인지 생각하십시오. ACL (액세스 제어 목록)이 다른 것입니다.
디렉토리에 추가해야하는 확장 된 속성을 컨텍스트라고하며 SELinux는 트래픽 경찰과 같은 역할을하며 특정 컨텍스트가있는 실행 파일이 이러한 컨텍스트를 기반으로 파일 시스템에 액세스 할 수 있도록합니다. 로 -Z
전환 하여 디렉토리에서 사용 가능한 항목을 확인할 수 있습니다 ls
.
$ sudo ls -Z /var/www
drwxr-xr-x. root root system_u:object_r:httpd_sys_script_exec_t:s0 cgi-bin
drwxr-xr-x. root root system_u:object_r:httpd_sys_content_t:s0 html
여기에서이 디렉토리는 상황이 있음을 알 수 httpd_sys_script_exec_t:s0
온 cgi-bin
일세. 그리고 html
dir. 있다 httpd_sys_content_t:s0
.
다음 chcon
명령을 사용하여 다음을 추가 할 수 있습니다 .
$ sudo chcon -t httpd_sys_content_t public_html
당신이 요구하는 명령은 단순히 mypoll.pp
어떤 권한도 부여 할 것이라고 생각하지 않는 모듈을로드 audit.log
합니다. 명령에 누락 된 메시지가 더 많을 것입니다. 액세스를 허용합니다.
시간을내어 SELinux에 익숙해 지시기 바랍니다. 처음에는 혼란 스럽지만 약간의 시간을 보낸 후에는 일반적으로 간단합니다. 시작하려면 아래 리소스를 참조하십시오.