2013-12-01 5 views
0

Я пытаюсь получить доступ к файловому серверу QNAP для хранения файлов SVN локально в своей сети. Папка, в которую я хочу сохранить их, - это пароль. SVN Repository Location:SVN для доступа к сетевому диску с паролем

\\NAS1\ryan\SVN\MSVS12 

Каталог "Райана" защищен паролем. Если бы я получить доступ к этому непосредственно из окна я получаю ошибку:

Windows cannot access \\NAS1\ryan\SVN\MSVS12 

Хотя если доступ к «\\ NAS1 \ Райана» непосредственно добавить в моих полномочиях, то оба TortoiseSVN и окна имеет доступ к нему для этой сессии.

Я попытался с помощью:

file://path;username=user;password=pass 

и документация не может показаться, чтобы пролить свет на моей ситуации тоже. Будет ли проще/лучше использовать сценарий запуска, который автоматически войдет в эту папку @login? Или есть другой метод, который может работать лучше?

EDIT: Я решил использовать команду «чистого использования» таким образом, что в файле сценария:

net use \\nas1\ryan /user:username password 

ответ

3

Не делайте этого. Это полностью неподдерживаемая и крайне обескураженная конфигурация.

Обслуживание в хранилище из общего UNC с помощью метода file:/// может привести к потере хранилища или повреждения (потому что это тривиальная для пользователя удалить хранилище файл базы данных без возможности восстановления), делает любой hook scripts shaky at best (because the execute on the committer's PC, not in a controlled server environment), and affords you zero security within the repository itself (path-based authorization doesn't exist with this access method) (см последнюю пулю пункт на странице). Существуют также ошибки, связанные с разрешениями, которые были обнаружены в более старых версиях Samba (которые может использовать ваш QNAP) через Subversion, которые также могут вас повредить (см. this note).

Вместо этого установите Subversion on the QNAP itself и правильно обратитесь к репозиторию через HTTP или svnserve. Побочный эффект: он полностью исключает вашу проблему с паролем UNC.

+0

Любые ссылки? Это не совсем так: * Хранение репозитория на общем ресурсе UNC может привести к потере или повреждению репозитория, делает любые скрипты с крючками в лучшем случае и дает вам нулевую безопасность внутри самого репозитория. * – bahrep

+0

Это правда. Я добавил ссылку на руководство, где эта практика не поощряется и почему. – alroc

+0

Сохранение репозиториев на сетевом ресурсе и предоставление их через Apache HTTP Server - довольно распространенная и действительная конфигурация. Я предлагаю не об этом, потому что ваш ответ выглядит так: «В любом случае не сохраняйте свои репозитории на сетевом ресурсе». – bahrep

0

Как уже указывал Aloc, вы никогда не должны делиться репозиторием на file://. Руководство Subversion: very firmly against this .

Существует несколько причин: вы предоставляете пользователям прямой доступ к файлам репозитория, что означает, что они могут непосредственно ими манипулировать. Есть проблемы с правильной работой крючков. И почти нет защиты от двух человек, которые делают одновременные изменения в репозитории, так как сам клиент svn непосредственно манипулирует макетом сервера. Плохая плохая идея.

Это особенно верно, поскольку настройка svnserve настолько проста в настройке. Вы даже можете установить svnserve как Windows Service. Единственная возможная проблема заключается в том, что ваш порт маршрутизатора или брандмауэра 3620 (порт Subversion svnserve по умолчанию).

Вот как настроить svnserve:

  1. Создать репозиторий (у вас уже есть).
  2. Редактировать файл $REPO_HOME/conf/svnserve.conf. Вы хотите изменить строку # 20, чтобы установить password-db = passwd (или любую другую базу данных паролей).
  3. Редактировать файл passwd для настройки учетных записей. Это в основном account_name = password. В файле есть комментарий, показывающий вам, как это сделать.
  4. Запустить svnserve вручную или в качестве службы Windows.

И это в значительной степени. Это занимает около 10 минут работы.

Если вы действительно хотите получить фантазию, вы можете использовать Apache httpd. Тем не менее, это связано с установкой и настройкой Apache httpd, который может быть немного сложным в системе Windows - особенно если вы не знакомы с настройкой Apache. Тем не менее, есть step-by-step directions, и они не слишком сложны для подражания. Преимущество состоит в том, что это выполняется через порт 80, который с меньшей вероятностью блокируется портом 3620, и вы можете использовать свой Windows Active Directory для Subversion authentication .

Однако существует несколько серверов Subversion на базе Windows, таких как [http://www.visualsvn.com/server/licensing/], которые упрощают настройку Apache, но для получения доступа к LDAP вам необходимо заплатить за Pro упаковка. Вы также можете посмотреть CollabNet's package. Это бесплатно, но гораздо больше сканируйте собственное решение.


1. См самый последний абзац на этой странице.
2. Возможно использование svnserve с конфигурацией LDAP/Windows Active Directory через SASL, но я никогда не видел, чтобы он использовался. Возможно, потому, что те, кто хочет использовать LDAP/Windows Active Directory, уже знают, как настроить все через Apache httpd.

Смежные вопросы