Ограничить доступ к хранилищу Mercurial - PullRequest
2 голосов
/ 01 февраля 2012

У меня есть сервер Mercurial, использующий mercurial-server . Я отредактировал access.conf в hgadmin репо следующим образом:

deny repo=a/b
read user=x/**
read user=y/**

write repo=a/b user=x/abc
write repo=a/b user=y/z

Но пользователь z по-прежнему не может получить доступ к этому репо. Есть идеи?

Ответы [ 3 ]

2 голосов
/ 01 февраля 2012

Первое правило соответствия применяется. В этом случае правило deny является первым, поэтому оно будет соответствовать первому; ни одному пользователю не будет предоставлен доступ к репо a / b, независимо от того, какие другие правила следуют этому правилу.

Попробуйте поместить два правила записи над правилом запрета.

Обратите внимание, что любые правила в /etc/mercurial-server/access.conf будут логически предшествовать этим правилам.

2 голосов
/ 01 февраля 2012

В документации упоминается :

user=globpattern: путь к ключу пользователя

Таким образом, путь к ключу z может быть неправильным,или путь репо отключен.

При рассмотрении запроса mercurial-сервер выполняет все правила в /etc/mercurial-server/access.conf, а затем все правила в access.conf в hgadmin, просматриваядля правила, которое соответствует каждому условию.
Первое совпадение определяет, будет ли разрешен запрос ;если в обоих файлах нет совпадений, запрос будет отклонен.

Другая возможность: возможно, сначала будет найдено правило запрета (применимо для пользователя z).

1 голос
/ 14 сентября 2012

Есть еще одна особенность ртутного сервера, которую вам, возможно, понадобится узнать.То, что вы не можете дублировать ключи несколько раз в keys / hgadmin.Потому что на стороне сервера эти ключи скомпилированы в /var/lib/mercurial-server/.ssh/authorized_keys.Таким образом, если вы указываете один и тот же ключ в разных файлах ключей в ключах /, то при hg do ssh он будет использовать первый раз ключ в authorixed_keys и, вероятно, будет ссылаться на первое только репо и отключить доступ к другим репо, которые ссылаются на другой файл (но с тем жеключ)

...