2011-12-10 15 views
22

Ho appena installato svn sul mio server ubuntu. Ho un mio utente a cui posso accedere. Il problema è che ogni volta che provo a modificare la struttura dei file ottengo un errore di autorizzazione negato.Autorizzazione SVN negata - txn-current-lock

 
Can't open file '/var/www-svn/db/txn-current-lock': 
Permission denied 

mio pronti contro termine è in /var/www-svn e le autorizzazioni per quella cartella è drwxr-xr-x per l'utente e di gruppo svn (io sono cattivo con i permessi in modo da non so se questo è corretto) . Il mio utente che accedo a su svn è nel gruppo svn, eppure non posso modificare la struttura del file. Cosa sto sbagliando? Funziona se cambio utente e gruppo della cartella sul mio utente che accedo anch'io.

In svnserve.conf, anon-accesso è impostato su nessuno e auth-access è impostato su scrittura.

(ho cambiato il proprietario di/var/www-svn digitando sudo chown -R svn:svn www-svn dentro directory/var.)

+0

Come stai accedendo al repository (svn, http, file, ecc.)? – prodigitalson

+0

svn (utilizzando TortoiseSVN Repo Browser). – Marwelln

+0

Beh, che aspetto ha la tua configurazione per access/auth (svnserve.conf)? – prodigitalson

risposta

8

Il demone svnserve è stato eseguito sotto il mio utente, non come root. Ho ucciso i processi svnserve in esecuzione sotto il mio utente e riavviato come root. Ora funziona.

10

Devi aggiungere il bit SETUID per la cartella/var/www-svn /, perché sotto le transazioni ci saranno cartelle generate durante l'esecuzione di SVN per preservare le transazioni che sono rappresentate da cartelle .

Ciò significa, in parole brevi solo fare

chmod +s -R /var/www-svn/ 

dovrebbe risolvere il problema.

+1

Ho appena eseguito quel comando, ma si è verificato lo stesso errore. – Marwelln

6

Il mio problema è stato che ho applicato le autorizzazioni, quindi ho fatto svnadmin create quindi era necessario nuovamente il permesso di impostazione.

$ sudo chown -R www-data:subversion myproject 
$ sudo chmod -R g+rws myproject 
0

Ultimo ma non meno importante, se il repository è di proprietà di utente e di gruppo svn

(sudo chown -R svn:svn /var/svn/repos)

assicuratevi di aggiungere gli utenti che possono accedere al gruppo svn. vi /etc/group

svn:x:502:user1,user2 
11

cartella di repository su devono essere di proprietà del file system o alla fine di aver letto/permesso di scrittura dallo stesso utente linux che il vostro svn o Apache via web-DAV sta lavorando su ...

nel mio caso è stato:

$ chown -R www-data:www-data /svn/reponame 
0

Anche se la questione è molto vecchio, si colloca più alto su Google, ma con la sovversione su Apache/httpd su Linux non trovare le soluzioni utili.

Sto eseguendo la sovversione su Apache, CentOS linux. Per me il problema era dovuto a SELinux e disabilitazione che mi ha aiutato.

Richiede cautela prima di eseguire questa operazione poiché potrebbe non essere consigliabile su un server di produzione disabilitare SELinux. Si prega di leggere bene la documentazione prima di tentare di farlo.

https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Security-Enhanced_Linux/sect-Security-Enhanced_Linux-Enabling_and_Disabling_SELinux-Disabling_SELinux.html

Come Stewart ha suggerito nel commento, un'altra soluzione è di aggiornare i permessi dei file, anche se i dettagli non sono disponibili, qualche ritocco in giro con i permessi dei file dovrebbe aiutare.

+0

Il link pubblicato è rotto. Perché non hai appena postato la risposta qui direttamente? Questo è il motivo per cui le "risposte solo link" sono disapprovate. Ora non lo sapremo mai ... – Stewart

+1

@Stewart Ci scusiamo per il collegamento. Non sembra che potrebbe essere recuperato utilizzando la cache del motore di ricerca o archive.org. Per quanto mi ricordo, i problemi con SELinux sono stati risolti disabilitandolo. Prova a fare lo stesso e fai sapere i risultati. Sii un po 'cauto e leggi bene prima di eseguire questa azione su un server PROD. –

+0

Ho risolto il problema cambiando la proprietà del file alla fine. – Stewart

1

Nel caso in cui non si dispone di diritti di sudo:

Nel mio caso particolare mi ha migrazione da un server Webfaction condiviso a un altro. La copia dei file deve aver assegnato l'intera proprietà del repository al mio nome utente, mentre il proprietario probabilmente dovrebbe essere apache affinché il repository sia accessibile. Non ho potuto applicare alcun chown apache:mygroup repo perché non ho accesso all'apache utente. Senza avere l'accesso di root l'unico modo per farlo funzionare era chmod -R 777 . all'interno della mia root repository, eventualmente cancellando un file di lock a cui non avevo il permesso di chown. Questo finalmente risolse il problema e potei impegnarmi di nuovo.

Problemi correlati