2012-09-28 11 views
9

Sono consapevole che questa domanda è stata posta molte volte. Credo di aver capito le risposte, ma non ho ancora avuto fortuna.Ubuntu + SVN: impossibile aprire il filesystem SVN richiesto

Ho provato entrambe le configurazioni one repo e multiple repos, avendo lo stesso problema per entrambi.

Così, con la configurazione che mi interessa:

<Location /svn> 
    DAV svn 
    #SVNPath /media/ssd/svn/test 
    SVNParentPath /media/ssd/svn 
    SVNListParentPath On 
    AuthType Basic 
    AuthName "Subversion Repository" 
    AuthUserFile /etc/apache2/dav_svn.passwd 
    Require valid-user 
</Location> 

mio repository

[email protected]:/media/ssd/svn$ ls -lart 
total 16 
drwx------ 7 luso  luso 4096 2012-09-15 16:20 .. 
drwxr-sr-x 6 www-data svn 4096 2012-09-24 22:13 test 
drwxrwsr-x 4 www-data svn 4096 2012-09-24 22:31 . 
drwxr-sr-x 6 www-data svn 4096 2012-09-24 22:31 test2 

All'interno di un progetto di

[email protected]:/media/ssd/svn/test$ ls -lart 
total 32 
-rw-r--r-- 1 www-data svn 229 2012-09-24 22:13 README.txt 
drwxr-sr-x 2 www-data svn 4096 2012-09-24 22:13 locks 
drwxr-sr-x 2 www-data svn 4096 2012-09-24 22:13 hooks 
drwxr-sr-x 2 www-data svn 4096 2012-09-24 22:13 conf 
-r--r--r-- 1 www-data svn 2 2012-09-24 22:13 format 
drwxr-sr-x 6 www-data svn 4096 2012-09-24 22:13 . 
drwxrwsr-x 4 www-data svn 4096 2012-09-24 22:31 .. 
drwxr-sr-x 6 www-data svn 4096 2012-09-24 22:40 db 

l'utente luso e www- i dati sono in entrambi i gruppi di dati svn e www. Tuttavia, quando/sistema/amministrazione/utenti e gruppi, se seleziono l'utente www-data, c'è un avviso: questo account è disabilitato ¿¿?? Se provo ad abilitarlo, mi chiede di impostare una password. Non sono stato io ...

/media/SSD è il mio/dev/sdc unità (un drive SSD)

posso collaborare con protocollo file: //

[email protected]:~$ svn co file:///media/ssd/svn/test test 
A test/.classpath 
A test/.project 
A test/target 
A test/target/test-my-app-0.0.1-SNAPSHOT.jar 
... 
... 

Tuttavia ,

[email protected]:~$ svn co http://localhost/svn/test test and 
[email protected]:~$ svn co http://localhost/svn/test/trunk test 

mi portano a:

Authentication realm: <http://localhost:80> Subversion Repository 
Password for 'luso': 
svn: Could not open the requested SVN filesystem 

più precisamente

<D:error xmlns:D="DAV:" xmlns:m="http://apache.org/dav/xmlns" xmlns:C="svn:"> 
<C:error/> 
<m:human-readable errcode="13">Could not open the requested SVN filesystem</m:human-readable> 
</D:error> 

Naturalmente, lo stesso accade se provo ad accedere tramite browser web ...

E lo stesso accade se cambio

#SVNPath /media/ssd/svn/test 
SVNParentPath /media/ssd/svn 
SVNListParentPath On 

con:

SVNPath /media/ssd/svn/test 
#SVNParentPath /media/ssd/svn 
#SVNListParentPath On 

e ricarica/riavvio apache2

Inoltre, lo stesso accade quando si tenta di accedere tramite https: // che funziona bene.

Ho letto qualcosa che indica che SELinux aveva qualcosa da fare, ma non oso cambiare questo. Non so davvero come ...

Potrebbe essere una sorta di conflitto con le autorizzazioni? L'unità/media/ssd è di proprietà di luso ... (nessuna idea, solo indovinando)

Quindi qualche altro indizio?

Io corro Ubuntu 10.04, Apache2, e StackOverflow: D

Grazie a tutti voi.

EDIT: Come suggerito da p_strand, ho aggiunto una linea

AuthzSVNAccessFile /etc/apache2/svn-policy-file 

in dav_svn.conf config

Ora, se provo http://localhost/svn/test rimane lo stesso, e se provo http://localhost/svn ho un 403 Forbidden

risposta

11
[email protected]:/media/ssd/svn$ ls -lart 
total 16 
drwx------ 7 luso  luso 4096 2012-09-15 16:20 .. 

Questo è probabilmente il tuo problema - mentre le directory del repository sono accessibili all'utente www-data, la loro directory genitore /media/ssd non lo è. Sia esso che tutte le sue directory madri sull'albero necessitano almeno dell'autorizzazione di esecuzione mondiale (rwx--x--x o 711). L'utente www-data non ha bisogno di essere autorizzato a leggere queste directory, ma deve essere in grado di discenderle (che è ciò che il bit execute significa per una directory).

+3

Ottimo, ha funzionato! Immagino che abbia qualcosa a che fare con quello. – luso

0

Nel caso in cui qualcuno arrivi qui con problemi simili, ecco la mia risoluzione: Ho avuto il file "/ var/svn/format" di proprietà di root, e nonostante tutte le autorizzazioni impostate (777), apache non voleva leggere il file di proprietà di root. Un semplice comando chown risolve il problema.

Problemi correlati