4 votes

Serveur de fichiers statiques Lighttpd : erreur 403 interdite

J'ai installé lighttpd sur Debian Jessie pour servir des fichiers statiques, j'ai une clé USB montée sur /media/storage, avec /media/storage/www comme racine de mon document et mon lighttpd.conf ressemble à ceci :

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"

Je veux pouvoir éditer le site web avec mon utilisateur normal "jurre". J'ai donc fait "sudo chown jurre:www-data /media/storage/www" et "sudo chmod 740 /media/storage/www" (je peux donc lire, écrire et exécuter des fichiers, mais le serveur web ne peut que lire). Bien entendu, je me suis déconnecté et reconnecté, puis j'ai redémarré lighttpd après cela. J'ai ajouté un simple index.html avec "Hello World !" pour tester la configuration, mais je continue à obtenir une erreur 403 forbidden lorsque je navigue vers

ls -l in /media/storage/www :

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

J'ai également vérifié le journal des erreurs de lighttpd, mais il n'indique que l'arrêt et le redémarrage du serveur web, sans aucune erreur dans le journal.

3voto

Un autre problème fréquent est la présence d'un SELinux actif sur la machine.

Même si les autorisations sur l'arborescence du répertoire sont correctes, vous obtiendrez toujours un message 403 si le répertoire n'a pas été enregistré dans SELinux.

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

corrigera ce problème.

2voto

Dave Points 41

Vous ne pouvez pas accéder à votre www dossier parce que www-data l'utilisateur ne dispose que de 4 droits (user:group jurre:www-data et droits 740), ce qui signifie qu'il n'y a pas de droit d'exécution sur www mais seulement en lecture (lecture du nom et des attributs du dossier).

Vous avez besoin d'un droit d'exécution sur le dossier, car exécuter un dossier signifie l'ouvrir (pour lister les fichiers ou pour y entrer). Vous pouvez le faire avec votre propre utilisateur jurre (droite 7) mais www-data n'a pas le bit d'exécution activé.

Changez votre droit sur ce dossier pour 750 et réessayez.

0voto

David Thomson Points 167

Superpelican,

Suite au commentaire ci-dessus. Vous pouvez essayer "sudo chown -R www-data:www-data * " oder "sudo chown -R www-data:www-data /media/storage/www/* " Sur ce dossier ou ces sous-dossiers à partir de /media/storage/www De cette manière, le serveur web est propriétaire des dossiers et des fichiers qui s'y trouvent, et non pas vous en tant qu'utilisateur.

En ce qui concerne le chmod. Essayez aussi avec quelque chose comme "sudo chmod -R 755 /media/storage/www/* " Le pire des cas " chmod -R 775 " Il existe différents niveaux de sécurité des fichiers entre le serveur web et le système d'exploitation physique lui-même. Le chown/chmod se situe davantage au niveau du système d'exploitation. Cela aura un effet sur l'obtention de fichiers et de pages web sur le serveur également

J'espère que cela vous aidera un peu. Santé

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X