Я хотел бы поддерживать протоколы svn: и http: для сервера SVN, доступ к которому возможен только в сети. Однако я бы хотел, чтобы оба протокола использовали одни и те же пользователи и пароли. Есть ли способ для Apache и svnserve совместно использовать одни и те же пользовательские данные, хранящиеся в локальном для сервера файле?

1 ответ1

1

Есть ли способ для Apache и svnserve совместно использовать одни и те же пользовательские данные, хранящиеся в локальном для сервера файле?

Не напрямую и автоматически, не один файл с базой данных пользователей, но может быть написан и автоматизирован (но небезопасно, обычным способом)

Основная проблема - разные форматы (и тип хранимых данных) пользовательских файлов для Apache и svnserve

passwd-файл в Apache использует

user:<HASH-OF-PASSWORD>

user-db для svnserve

[users]
user = PASSWORD

Поскольку хеширование является необратимой функцией, вы должны

  • Выполните все пользовательские добавления и пользовательские правки в user-db (вы можете попытаться удалить пользователей на стороне Apache, но в этом случае необходимо поддерживать двунаправленную синхронизацию, поэтому - я полагаю, удаление пользователя только в user-db также будет лучший выбор)
  • После того, как каждый user-db изменяет process-parse-sync user-db с помощью passwd-файла: прочитайте о режиме htpasswd -b на странице руководства (возможно, также о ... -i )

Просто IMNSHO: поддержка только одного сервера будет намного проще

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .