J'ai un serveur Linux que j'essaie de faire fonctionner svnsync
contre une liste de dépôts à mettre en miroir / sauvegarder.
J'ai créé un dossier /srv/backups
et le définir pour avoir le groupe gsid de adm
en utilisant chmod g+s
afin que tout élément ou dossier créé dans ce répertoire conserve la propriété du groupe adm.
échec
Moi, alors :
- créer un référentiel
svnadmin create blah
sous/srv/backups
, - copier le
pre-revprop-change
accrocher script enblah/hooks/
- s'assurer que le crochet est exécutable
chmod +ax blah/hooks/pre-revprop-change
- essayez d'exécuter
svnsync init
contre blah et le référentiel distant. Il échoue qu'il soit exécuté en tant que moi-même ou root avec un message d'erreur 255 provenant du script de pre-revprop-change.
svnsync : E165001 : Le changement Revprop est bloqué par le crochet pre-revprop-change (code de sortie 255) sans sortie.
succès
Si je répète les mêmes étapes ci-dessus, en copiant la même pre-revprop-change
le crochet vers le miroir cible, cependant :
- en me faisant passer pour moi dans un dossier de mon répertoire personnel,
- ou en tant que root contre
/srv/svnmirrors
oùroot:adm
a la propriété mais le gsid n'est pas défini,
Ensuite, il s'exécute correctement, me permettant d'initialiser et de synchroniser ultérieurement.
hypothèse
Donc, je suis presque sûr que c'est un problème avec le gsid et que svnsync n'a pas les permissions pour exécuter le hook.
Si j'ai bien compris, le paramétrage du gsid indique aux programmes agissant sur ce répertoire de s'exécuter avec ces informations d'identification ; ainsi, l'ajout d'un dossier est effectué en tant que myself:adm, et je m'attendrais à ce que l'exécution de svnsync soit exécutée en tant que myself:adm ou root:adm, et devrait avoir des privilèges suffisants.
permissions
Voici les principaux dossiers sous /srv
, donde backups
échoue et svnmirrors
réussit :
drwxrwsr-x 11 root adm 4096 Sep 16 17:09 backups
drwxrwxr-x 2 root adm 4096 Sep 16 17:24 svnmirrors
Et voici les crochets dans les deux endroits :
le crochet qui ne s'exécute pas ; essayé à la fois en tant que root et myuser :
-rwxr-xr-x 1 myuser adm 2794 Sep 16 16:54 backups/blah/hooks/pre-revprop-change
- OU -
-rwxr-xr-x 1 root adm 2794 Sep 16 16:54 backups/blah/hooks/pre-revprop-change
le suivant
-rwxr-xr-x 1 myuser myuser 2794 Sep 16 16:45 svnmirrors/blah/hooks/pre-revprop-change
Pensées :
- Est-ce que svnsync ne fonctionne pas sous le groupe adm ?
- Si oui, est-il possible d'ajouter svnsync à adm ?
- Ou dois-je définir un groupe différent sur le dossier et m'assurer que je suis dans ce groupe ?
- En définissant le gsid, est-ce que j'expose des vulnérabilités sur le serveur ? Référencement ce chapitre sur la sécurité.