1 votes

L'exécution de svnsync sur un référentiel avec le groupe suid/sgid défini échoue à exécuter un hook

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 en blah/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 :

  1. en me faisant passer pour moi dans un dossier de mon répertoire personnel,
  2. ou en tant que root contre /srv/svnmirrorsroot: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 :

  1. Est-ce que svnsync ne fonctionne pas sous le groupe adm ?
  2. Si oui, est-il possible d'ajouter svnsync à adm ?
  3. Ou dois-je définir un groupe différent sur le dossier et m'assurer que je suis dans ce groupe ?
  4. 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é.

1voto

Damon Points 131

Résolu - monter une partition sans noexec option

Assurez-vous que vous avez monté le répertoire sans l'option noexec option !

Je ne sais pas ce qui m'a poussé à regarder dans /etc/fstab (ou pourquoi je n'y ai pas pensé plus tôt) mais /srv/backups est une partition séparée et je l'avais déclarée avec la balise noexec option.

Cela empêchait le hook de fonctionner ; en le supprimant et en le remontant, tout fonctionne bien.

Mais, je vais laisser tomber le gsid du dossier, changer la partition en nosuid et permettre l'exécution.

0voto

Shane Madden Points 112034

Si vous ne l'avez pas encore fait, vous devrez également modifier l'adresse de l'utilisateur. pre-revprop-change en plus de le copier en place -- il bloque les changements de revprop (à toutes les propriétés autres que les svn:log ) par défaut. Vous devrez ajouter quelque chose comme :

if [ "$USER" = "svnsync" ]; then exit 0; fi

Voir aquí pour plus d'informations.

0voto

Puis-je suggérer d'utiliser les svnbackup.pl et svnrestore.pl scripts de Chris Knight pour sauvegarder votre Repo ? Nous l'utilisons et cela fonctionne bien.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X