Какие разрешения следует установить для корня SVN?

Какие разрешения следует установить для корня SVN?

Я пытаюсь предоставить удаленный доступ к серверу SVN через Apache. Ситуацию можно проиллюстрировать так:

/root
    /public-project
        /trunk
        /branches
    /restricted-project
        /trunk
        /branches

Существует только один репозиторий, содержащий оба проекта.

Публичные проекты может просматривать любой (только просматривать, никогда не изменять). Ограниченные проекты могут читать/изменять только пользователи, входящие в определенные группы. Конфигурация следующая:

<Location "/root">
  DAV svn
  SVNPath [...]
  SVNIndexXSLT [...]
  [...]
  <LimitExcept PROPFIND OPTIONS REPORT>
    require ldap-group CN=SVN Administrators,OU=Subversion,DC=example,DC=com
  </LimitExcept>
</location>

<Location "/root/public-project">
  <LimitExcept GET PROPFIND OPTIONS REPORT>
    require ldap-group CN=Project1 Contributors,OU=Subversion,DC=example,DC=com
  </LimitExcept>
</location>

<Location "/root/restricted-project">
  require ldap-group CN=Project2 Contributors,OU=Subversion,DC=example,DC=com
</location>
  1. Достаточно ли он безопасен или есть вероятность, что гость получит доступ к конфиденциальной информации из закрытого проекта?

  2. При обновлении исходного кода публичного проекта через SVN возникает следующая ошибка:

    Не разрешено открывать корень операции редактирования

    Apache error.log показывает следующие элементы:

    Произошел сбой при запуске редактора отчетов об обновлениях [500, #220000]
    Нет прав на открытие корня операции редактирования [500, #220000]

    Что касается access.log, он показывает, что клиент SVN создал ряд PROPFIND(ответ: HTTP 207) и OPTIONS(ответ: HTTP 200), и, наконец:

    "ОТЧЕТ /root/!svn/vcc/default HTTP/1.1" 500 241

    Что мне следует сделать, чтобы решить эту проблему, т. е. разрешить публичный доступ только для чтения к публичному проекту, при этом скрыв ограниченный доступ от неавторизованных пользователей?

Примечание: предоставление привилегии GET /rootпозволяет гостю загружать исходный код публичного проекта, но также делает публичное поведение поведением по умолчанию. Я бы предпочел ограничить доступ и предоставить его только на узлах, которые содержат публичные проекты.

решение1

Я создал новую среду с нуля и поигрался с ее конфигурацией, но, похоже,толькоспособ — сделать все общедоступным по умолчанию, а затем явно ограничить доступ к определенным проектам.

Это совершенно глупо с точки зрения безопасности, особенно в контексте, когда создается множество проектов, иногда не полностью автоматизированных, что позволяет легко ошибиться, забыв установить ограничение. При этом это также заставляет продвигать автоматизацию дальше, что может быть только полезно.

Если кто-то захочет поиграться с настройками, могу предоставить текущую используемую конфигурацию.

Связанный контент