Instalé lighttpd en Debian Jessie para servir archivos estáticos, tengo una unidad USB montada en /media/storage, con /media/storage/www como raíz de mi documento y mi lighttpd.conf se ve así:
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"
Quiero poder editar el sitio web con mi usuario normal "jurre". Entonces hice "sudo chown jurre:www-data /media/storage/www" y "sudo chmod 740 /media/storage/www" (para poder leer, escribir y ejecutar archivos, pero el servidor web solo puede leer). Por supuesto, cerré la sesión y volví a iniciarla y luego reinicié lighttpd después de esto. Agregué un index.html simple con "¡Hola mundo!" para probar la configuración, pero sigo recibiendo un error 403 prohibido cuando navego a
ls -l en /media/almacenamiento/www :
total 8
-rw-r--r-- 1 jurre www-data 58 May 16 16:43 index.html
También revisé el registro de errores de lighttpd, pero solo muestra cuando el servidor web se apagó y se inició nuevamente, no hay ningún error en el registro.
Respuesta1
No puede acceder a su www
carpeta porque www-data
el usuario solo tiene 4 derechos (usuario: grupo jurre:www-data
y derechos 740), lo que significa que no tiene derecho de ejecución en www
la carpeta, solo lectura (leer el nombre y los atributos de la carpeta).
Necesita ejecutar directamente en la carpeta, porque ejecutar una carpeta significa abrirla (para enumerar archivos o ingresar a ella). Puedes hacer esto con tu propio usuario jurre
(derecha 7) pero www-data
no tienes el bit de ejecución configurado.
Cambie su derecho en esta carpeta por 750 y vuelva a intentarlo.
Respuesta2
Otro problema frecuente es un SELinux activo en la máquina.
Incluso con los permisos correctos en el árbol de directorios, obtendrá un 403 si el directorio no se registró en SELinux.
chcon -R -h -t httpd_sys_content_t /absolute/path
solucionará esto.
Respuesta3
superpelícano,
Además del comentario anterior. tal vez quiera probar "sudo chown -R www-datos:www-datos * " o"sudo chown -R www-data:www-data /media/storage/www/* " En esa carpeta o subcarpetas desde dentro/media/almacenamiento/www De esta manera, el servidor web no es propietario de las carpetas y archivos que contiene usted como usuario.
En cuanto a chmod... Pruébalo también con algo como"sudo chmod -R 755 /media/almacenamiento/www/* " Peor caso "chmod -R 775"Existen diferentes niveles de seguridad de archivos entre el servidor web y el sistema operativo físico en sí. El chown/chmod está más en el nivel del sistema operativo. También afectará la obtención de archivos y páginas web en el servidor.
Espero que esto ayude un poco... Saludos...