내 홈 디렉터리에서 내 개발 서버에 대한 문서를 제공하고 싶습니다. 이것은 개인용 노트북이므로 대부분의 서버/웹 호스팅 상황에서 보안에 대해서는 별로 신경 쓰지 않습니다.
다음과 같습니다 httpd.conf
.
DocumentRoot "/home/myuser/www"
#
# Relax access to content within /var/www.
#
<Directory "/home/myuser/www">
AllowOverride all
# Allow open access:
Require all granted
</Directory>
# Further relax access to the default document root:
<Directory "/home/myuser/www">
#
# Possible values for the Options directive are "None", "All",
# or any combination of:
# Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
#
# Note that "MultiViews" must be named *explicitly* --- "Options All"
# doesn't give it to you.
#
# The Options directive is both complicated and important. Please see
# http://httpd.apache.org/docs/2.4/mod/core.html#options
# for more information.
#
Options Indexes FollowSymLinks
#
# AllowOverride controls what directives may be placed in .htaccess files.
# It can be "All", "None", or any combination of the keywords:
# Options FileInfo AuthConfig Limit
#
AllowOverride None
#
# Controls who can get stuff from this server.
#
Require all granted
</Directory>
지금까지는 매우 좋았으므로 이제 myuser/www
디렉토리에 있는 문서를 볼 수 있습니다 http://localhost/
.
그러나 Apache는 디렉토리에 쓸 수 없으며 selinux 보안 경고가 표시됩니다.
apache
내 사용자를 그룹에 추가하고 디렉터리에 대한 권한을 myuser/www
설정하려고 시도했지만 작동하지 않았습니다.755
아파치가 이 디렉토리에 쓰도록 허용하려면 어떻게 해야 합니까?
편집하다:
디렉토리의 그룹 및 권한을 변경한 후 /home/myuser/www/
파일이 표시되지만 애플리케이션은 Apache가 tmp 디렉토리에 쓸 수 없다고 불평하고 selinux 오류를 발생시킵니다. 보안 메시지에 제안된 수정 사항은 다음 명령을 실행하는 것인데, 저는 아무런 변경 없이 수행했습니다.
# semanage fcontext -a -t httpd_sys_rw_content_t 'tmp'
# restorecon -v 'tmp'
답변1
chgrp apache
홈 디렉터리(및 Apache가 쓸 수 있도록 하려는 모든 파일 및 하위 디렉터리)에서 작업을 수행한 다음 chmod g+w
해당 디렉터리에서 작업을 수행합니다. 그러면 디렉토리가 7로 설정됩니다.75 모드, 파일 크기는 664입니다.
답변2
httpd_selinux
패키지에 제공된 매뉴얼 페이지에서 이를 확인하십시오 selinux-policy-doc
.
httpd가 홈 디렉토리를 읽을 수 있도록 하려면 httpd_enable_homedirs 부울을 활성화해야 합니다. 기본적으로 비활성화되어 있습니다.
setsebool -P httpd_enable_homedirs 1
귀하의 질문은 /tmp
귀하가 정확히 무엇을 원하는지에 따라 달라질 수 있습니다. 기본적으로 httpd
Fedora는 개인 네임스페이스를 사용하므로 /tmp
이는 소프트웨어에서 원하는 것이 아닐 수도 있습니다. 귀하의 애플리케이션은 이를 어떤 용도로 사용합니까?