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