WebDAV en CentOS: aparece el error 403 al intentar cargar

WebDAV en CentOS: aparece el error 403 al intentar cargar

Configuré Apache2 para permitir WebDav en un directorio (CentOS 5/Plesk 8.6):

  • WebDav está habilitado en httpd.conf
  • Apache puede escribir en /var/lib/dav/lockdb
  • Mi directorio de destino es chmod 777
  • Mi directorio de destino es chown apache:psacln
  • usando autenticación básica (configurada mediante la interfaz Plesk)

en mi vhost.conf tengo:

<Directorio /var/www/vhosts/domain.com/httpdocs/target_dir>
        David On
    Permitir anulación ninguno
        Orden permitida, denegada
        Permitir de todos
</Directorio>

Puedo conectarme al directorio mediante autenticación fina y descargar archivos desde él. Pero no puedo escribir en el directorio. Recibo un error 403 cuando intento cargar o crear un directorio.

¿Alguien tiene algún consejo?

Gracias de antemano -

Actualización - 6/5Usando los comentarios a continuación, he aislado el problema como algún tipo de conflicto con los directorios protegidos .htpasswd. Puedo crear un directorio desprotegido y habilitar bien las cargas WebDAV. Pero una vez que habilito la autenticación básica en el directorio, todo va mal. Puedo leer pero ya no subir.

Este es mi vhost.conf:

<Directorio /var/www/vhosts/domain.com/subdomains/subdomain/httpdocs/>
        AuthUserFile /var/www/.htpasswd
        Nombre de autenticación "Iniciar sesión"
        Tipo de autenticación básico
        Requerir usuario válido

        DAV activado
    Permitir anulación ninguno
        <Limitar PONER POST BORRAR PROPFIND PROPPATCH MKCOL COPIAR MOVER BLOQUEO DESBLOQUEAR>
                Requerir usuario válido
        </límite>
</Directorio>

Actualización 6/6

Pude hacer que WebDAV funcionara en un dominio diferente con un mínimo esfuerzo. La única diferencia entre los dos dominios es que en el que se niega a permitir el acceso de escritura tengo una directiva DocumentRoot:

    DocumentRoot /var/www/vhosts/domain.com/httpdocs/app/webroot

¿Podría esto estar causando algunos problemas?

Respuesta1

Recientemente tuve el mismo problema en mi sistema Fedora 10. En mi caso, el culpable fue una extraña redirección que estaba haciendo en Apache. Específicamente, uso un sistema de gestión de contenidos (Drupal, para ser exactos) que dentro de su .htaccess incluye la siguiente lógica de redirección para redirigir archivos faltantes a un script PHP:

# Rewrite URLs of the form 'x' to the form 'index.php?q=x'.
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !=/favicon.ico
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]

Tiene sentido que lo anterior solo afecte al método PUT ya que en ese caso REQUEST_FILENAME no existe.

No tener el área WebDAV dentro del área de Drupal, lo que parece una restricción razonable, soluciona el problema.

Además, creo que es probable que SELinux produzca un error diferente, pero no se menciona en la discusión anterior. ¿Intentaste deshabilitar SELinux?

Respuesta2

El mismo problema. Resuelto por:

<Location /xyz>
    DAV On
    AuthType Digest
    AuthName "webdav-xmarks"
    AuthDigestProvider file
    AuthUserFile "/home/xy/xba/digest-password"
    Require valid-user
    RewriteEngine off <-- this part solved it!
</Location>

Respuesta3

El mismo problema.

Resuelto creando un archivo .htaccess en el directorio webdav con:

RewriteEngine off

Encontrado aquí:http://annoyingtechnicaldetails.wordpress.com/2007/07/20/webdav-vs-drupal-htaccess-redirect-rules/

Respuesta4

¿Intentaste usar límite: (por ejemplo)

  <Limit PUT POST DELETE PROPFIND PROPPATCH MKCOL COPY MOVE LOCK UNLOCK>
    Require valid-user
  </Limit>

información relacionada