svn post-commit hook non dispone delle autorizzazioni per la creazione di file nella directory di copia di lavoro

StackOverflow https://stackoverflow.com/questions/1184571

Domanda

Sono bloccato con questo compito.

Ho scritto svn post-commit hook, che dovrebbe aggiornare copia di lavoro sul server, se qualcosa è stato cambiato. Ma sembra essere che non dispone di autorizzazioni per quella cartella, ma io li ho impostato per consentire a tutti di scrivere e leggere lì.

Così qui è lo script di test:

#!/bin/sh
REPOS="$1"
REV="$2"

DIR="/root/root/trunk"

touch $DIR/worked

Ho l'output:

Committed revision 51.

Warning: 'post-commit' hook failed with error output:
touch: cannot touch `/root/root/trunk/worked': Permission denied

E le autorizzazioni per cartella di destinazione:

[root@ovz6022 trunk]# ls -la
total 24
drwxrwxrwx 5 apache apache 4096 Jul 26 07:08 .
drwxrwxrwx 6 apache apache 4096 Jul 24 02:14 ..
-rwxrwxrwx 1 apache apache 1367 Jul 24 02:45 pom.xml
drwxrwxrwx 4 apache apache 4096 Jul 24 02:23 src
drwxrwxrwx 6 apache apache 4096 Jul 24 13:31 .svn
drwxrwxrwx 7 apache apache 4096 Jul 24 11:18 target

Tutte le idee?

È stato utile?

Soluzione

Credo che il problema potrebbe essere che le autorizzazioni sulla directory / root la priorità a nessuno, ma radice di accedere nulla sotto di esso.

Sul mio pc / root ha i permessi rwx ------ root:. Radice che credo unico mezzo in esecuzione eseguibile come root può accedere a qualsiasi cosa al di sotto

Tuttavia la mia cartella home / home / ricca è l'accesso in lettura per chiunque, quindi se si è tentato

  1. mkdir -p / home / myuser / workingdir / trunk
  2. chmod -R 777 / home / myuser / workingdir
  3. chown -R myuser: apache / home / myuser / workingdir

quindi provare il gancio penso che funzionerà

È necessario chiedersi perché si vuole checkout il codice in / root. Si dovrebbe sempre puntuale lavorare come un utente che dispone delle autorizzazioni minime necessarie per ottenere il lavoro fatto. Fatta eccezione per l'installazione si dovrebbe essere in grado di creare e modificare la copia di lavoro senza bisogno il più alto livello di autorizzazioni Linux ha da offrire.

Altri suggerimenti

tenta la creazione della directory lavorato, sei sicuro avete bisogno di due / root / root per il vostro percorso WC, e ciò che il comando stai cercando di eseguire - creare una piccola, semplice gancio (ad esempio solo svn esportazione o svn co) e provare che -. uS Post lo script così

Da l'errore, sembra che si sta cercando di aggiornare qualcosa che ancora non esiste.

ha lavorato una directory? Funziona il tocco per le directory? i miei poteri di Linux sono deboli, ma ho pensato che fosse solo per la creazione / aggiornamento timestamp sui file. Se è così che potrebbe essere il problema.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top