Erro proibido do servidor de arquivos estáticos Lighttpd 403

Erro proibido do servidor de arquivos estáticos Lighttpd 403

Instalei o lighttpd no Debian Jessie para servir arquivos estáticos, tenho uma unidade USB montada em/media/storage, com/media/storage/www como minha raiz de documento e meu lighttpd.conf se parece com isto:

server.modules = (
    "mod_access",
    "mod_alias",
    "mod_compress",
    "mod_redirect",
#       "mod_rewrite",
)

server.document-root        = "/media/storage/www/"
server.upload-dirs          = ( "/var/cache/lighttpd/uploads" )
server.errorlog             = "/var/log/lighttpd/error.log"
server.pid-file             = "/var/run/lighttpd.pid"
server.username             = "www-data"
server.groupname            = "www-data"
server.port                 = 80


index-file.names            = ( "index.php", "index.html", "index.lighttpd.html" )
url.access-deny             = ( "~", ".inc" )
static-file.exclude-extensions = ( ".php", ".pl", ".fcgi" )

compress.cache-dir          = "/var/cache/lighttpd/compress/"
compress.filetype           = ( "application/javascript", "text/css", "text/html", "text/plain" )

# default listening port for IPv6 falls back to the IPv4 port
include_shell "/usr/share/lighttpd/use-ipv6.pl " + server.port
include_shell "/usr/share/lighttpd/create-mime.assign.pl"
include_shell "/usr/share/lighttpd/include-conf-enabled.pl"

Quero poder editar o site com meu usuário normal "jurre". Então eu fiz "sudo chown jurre:www-data /media/storage/www" e "sudo chmod 740 /media/storage/www" (para que eu possa ler, escrever e executar arquivos, mas o servidor web só pode ler). É claro que eu saí e entrei novamente e reiniciei o lighttpd depois disso. Adicionei um index.html simples com "Hello World!" para testar a configuração, mas continuo recebendo um erro 403 proibido ao navegar para

ls -l em /media/storage/www :

total 8
-rw-r--r-- 1 jurre www-data 58 May 16 16:43 index.html

Também verifiquei o log de erros do lighttpd, mas ele só mostra quando o servidor web foi desligado e reiniciado, sem nenhum erro no log.

Responder1

Você não pode acessar sua wwwpasta porque www-datao usuário tem apenas 4 direitos (usuário: grupo jurre:www-datae direitos 740), o que significa que não há direito de execução na wwwpasta, apenas leitura (lê o nome e os atributos da pasta).

Você precisa de execução diretamente na pasta, porque executar uma pasta significa abri-la (para listar arquivos ou acessá-la). Você pode fazer isso com seu próprio usuário jurre(direita 7), mas www-datanão possui o bit de execução definido.

Mude o seu direito nesta pasta para 750 e tente novamente.

Responder2

Outro problema frequente é um SELinux ativo na máquina.

Mesmo com as permissões corretas na árvore de diretórios, você ainda receberá um 403 se o diretório não tiver sido registrado no SELinux.

chcon -R -h -t httpd_sys_content_t /absolute/path

vai consertar isso.

Responder3

Superpelicano,

Seguindo o comentário acima. Pode querer tentar "sudo chown -R www-data:www-data *" ou"sudo chown -R www-data:www-data /media/storage/www/*" Nessa pasta ou subpastas de dentro/mídia/armazenamento/www Dessa forma, o servidor web possui as pastas e arquivos dentro de você, não como usuário.

No que diz respeito ao chmod. Tente também com algo como"sudo chmod -R 755 /media/storage/www/*" Pior caso "chmod -R 775"Existem diferentes níveis de segurança de arquivos entre o servidor web e o próprio sistema operacional físico. O chown/chmod mais no nível do sistema operacional. Também afetará a obtenção de arquivos e páginas da web no servidor.

Espero que isso ajude um pouco .. Felicidades ..

informação relacionada