Come faccio a leggere / scrivere come utente autenticato con Apache / WebDAV?
-
02-07-2019 - |
Domanda
Ho installato DAV in apache2, che funziona alla grande. Il fatto è che tutte le operazioni di lettura / scrittura vengono eseguite con le credenziali dell'utente apache. Invece voglio usare le credenziali dell'utente autenticato HTTP. Se eseguo l'autenticazione come "john", tutte le operazioni di lettura e scrittura dovrebbero utilizzare le credenziali di john dell'utente di sistema (da / etc / passwd). suEXEC sembra eccessivo dal momento che non eseguo nulla, ma potrei sbagliarmi ...
Ecco la configurazione attuale:
<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>
Soluzione
Usiamo davenport ( http://davenport.sourceforge.net/ ) da anni a fornire accesso alle condivisioni Windows / samba tramite webdav. Samba / Windows offre molto controllo su questo genere di cose e Davenport lo rende utilizzabile sul Web tramite SSL senza VPN
Altri suggerimenti
Risposta al colpo, e per quanto ne so: tu no.
Risposta lunga: è possibile implementare una tale funzione con un mpm appropriato e c'erano vari tenta di farlo, ma non sembrano per essere supportato molto attivamente e almeno non nella base di codice principale di Apache.
peruser:
Q. Peruser è pronto per l'uso in produzione?
A. In generale, no.
perchild:
Questo modulo non è funzionale. Lo sviluppo di questo modulo non è completo e non è attualmente attivo. Non usare perchild se non sei un programmatore disposto ad aiutarti a risolverlo.
È davvero un peccato; la maggior parte degli usi di WebDav ho visto comunque le informazioni sulla proprietà del negozio a livello dell'applicazione, nel database. Il consenso per fare la condivisione di file è usare Samba invece; e non è proprio una soluzione, lo ammetto.