Faça chgrp apache
no seu diretório pessoal
(e quaisquer arquivos e subdiretórios que você deseja que o Apache possa gravar),
e faça chmod g+w
neles.
Isso definirá os diretórios para o modo 7 7 5 e os arquivos para 664.
Eu quero servir documentos no meu servidor de desenvolvimento do meu diretório pessoal. Este é um laptop privado, por isso não estou realmente preocupado com a segurança, tanto quanto você está com a maioria dos servidores / situações de hospedagem na web.
O httpd.conf
tem esta aparência:
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>
Até agora tudo bem e agora posso ver os documentos no diretório myuser/www
em http://localhost/
.
No entanto, o apache não pode gravar no diretório e estou recebendo avisos de segurança do selinux.
Eu tentei adicionar meu usuário ao grupo apache
e definir o diretório myuser/www
como 755
permissões, mas isso não funcionou.
Como eu permito que o apache escreva para este diretório?
EDITAR:
Depois de alterar o grupo e as permissões no diretório /home/myuser/www/
, os arquivos são exibidos, mas o aplicativo está reclamando que o apache não pode gravar no diretório tmp e gera um erro de selinux. A correção recomendada na mensagem de segurança é executar os seguintes comandos, o que fiz sem nenhuma alteração:
# semanage fcontext -a -t httpd_sys_rw_content_t 'tmp'
# restorecon -v 'tmp'
Faça chgrp apache
no seu diretório pessoal
(e quaisquer arquivos e subdiretórios que você deseja que o Apache possa gravar),
e faça chmod g+w
neles.
Isso definirá os diretórios para o modo 7 7 5 e os arquivos para 664.
Verifique isso na página httpd_selinux
man, disponível no pacote selinux-policy-doc
:
If you want to allow httpd to read home directories, you must turn on the httpd_enable_homedirs boolean. Disabled by default.
setsebool -P httpd_enable_homedirs 1
Seus problemas com /tmp
podem depender do que você está tentando fazer exatamente. Note que por padrão, httpd
no Fedora usa um namespace privado para /tmp
- isso pode não ser o que seu software quer. Qual é o seu aplicativo usando isso para?