Cómo hago para leer/escribir como usuario autenticado con Apache/WebDAV?
-
02-07-2019 - |
Pregunta
He configurado DAV en apache2, que funciona muy bien.La cosa es que, todas las operaciones de lectura/escritura se realiza con el apache credenciales del usuario.En lugar de ello quiero usar el HTTP autentica las credenciales del usuario.Si me autenticar como "john", todas las operaciones de lectura y escritura debe utilizar el usuario del sistema de john credenciales (de /etc/passwd). suEXEC parece una exageración, ya que no soy la ejecución de cualquier cosa, pero yo podría estar equivocado...
Aquí está la configuración actual:
<VirtualHost *:80>
DocumentRoot /var/www/webdav
ServerName webdav.mydomain.com
ServerAdmin webmaster@mydomain.com
<Location "/">
DAV On
AuthType Basic
AuthName "WebDAV Restricted"
AuthUserFile /etc/apache2/extra/webdav-passwords
require valid-user
Options +Indexes
</Location>
DAVLockDB /var/lib/dav/lockdb
ErrorLog /var/log/apache2/webdav-error.log
TransferLog /var/log/apache2/webdav-access.log
</VirtualHost>
Solución
Hemos estado utilizando davenport (http://davenport.sourceforge.net/) durante años para proporcionar acceso a Windows/samba recursos compartidos a través de webdav.Samba/Windows da un gran control sobre este tipo de cosas, y el Davenport solo lo hace utilizable a través de la web a través de SSL sin necesidad de una VPN
Otros consejos
Disparo de respuesta, y por lo que yo sé:no.
Respuesta larga:es posible implementar esta característica, con un adecuado mpm, y hubo varios los intentos de para hacerlo, pero ellos no parecen ser muy apoyado activamente, y son, al menos, no en la línea principal de Apache codebase.
peruser:
P.Es peruser listo para su uso en producción?
A.En general, no.
perchild:
Este módulo no es funcional.El desarrollo de este módulo no es completa y no está actualmente activo.No utilice perchild a menos que usted es un programador dispuesto a ayudar a solucionarlo.
Eso es muy malo, realmente;la mayoría de los usos de WebDav he visto la tienda de la propiedad de la información en la capa de aplicación, en la base de datos, de todos modos.El consenso para hacer el intercambio de archivos es usar Samba en su lugar;y eso no es realmente una solución, lo admito.