SVN authz, проблемы аутентификации на основе пути

[groups]
developer = a,b,c
doc = r,x

[/doc]
@doc = rw
@developer = rw

[/]
@developer = rw
* =

Если теперь член группы doc попытается проверить документацию, это не сработает. Я хочу, чтобы члены doc могли просто проверить документ подкаталога, все остальное запрещено. Есть идеи, как этого добиться?

с уважением Ронни

[обновление]

клиент: svn, версия 1.5.4 (r33841) сервер: svn, версия 1.4.6 (r28521)

доступ через svn+ssh:/user@host/fullpath-to-repos

  • 1 отлично работает два года
  • 2 может быть - см. номера версий выше (я немедленно свяжусь с нашим администратором)
  • 3 нет? просто сш
  • 4 нет
  • 5 нет

[обновление]

  • при использовании версии клиента svn 1.4.6 (r28521) тоже не работает - те же ошибки
  • Я использую простой доступ к командной строке. svn co svn+ssh://....

[обновление]

  • сервер: Linux 2.6.16.60-0.39.3-default9 i686 athlon i386 GNU/Linux - suse 10? или что-то в этом роде, я думаю
  • клиент: Кубунту 9.04
  • подключение через OpenSSH SSH-клиент
  • сервер отклоняет соединения svn:// с локального хоста - любое соединение --- нужно попробовать его с копией дома в ближайшее время

[обновление 4] * это не мой собственный сервер, я не могу делать с ним то, что хочу. Это очень старый сервер, работающий не менее 10 лет, с сотнями пользователей. Стандартные вещи должны работать. поправьте меня, если я что-то упустил.

[обновление 5] хотите верьте, хотите нет. Я использовал неправильный путь, и теперь все работает отлично, мне жаль, что я потратил ваше время впустую. Я дам награду FoxyBOA за его усилия.


person Ronny Brendel    schedule 11.06.2009    source источник
comment
Этот файл authz работает очень хорошо для меня. Я скопировал и вставил его на один из своих серверов Apache, и он заработал из коробки, так что проблема в другой части вашей конфигурации. Какой сервер вы используете? если apache, загляните в журнал ошибок, каково точное сообщение об ошибке?   -  person Peter Parker    schedule 11.06.2009
comment
Я использую svn+ssh... странная штука   -  person Ronny Brendel    schedule 11.06.2009
comment
вы проверяли права на запись репозитория? пожалуйста, опубликуйте более подробную информацию и сообщение об ошибке   -  person Peter Parker    schedule 12.06.2009
comment
есть только сообщение об ошибке аутентификации. Пробовал разные комбинации. Не знаю, чего вы ожидаете, но мне кажется, что все в порядке.   -  person Ronny Brendel    schedule 15.06.2009


Ответы (3)


Какие члены URL @doc пытаются оформить заказ?

[ОБНОВЛЕНО]

Не могли бы вы предоставить дополнительную информацию: версия SVN на стороне сервера и на стороне клиента. Как ваши клиенты пытаются подключиться к серверу SVN (например, из Eclipse, используя библиотеку subclipse, командную строку и т. д.).

  1. Если вы используете svn+ssh, ваш пользователь должен иметь действительный доступ к вашему серверу. У ваших пользователей правильная оболочка (например, bash, tcsh и т. д.)? /bin/false и другие поддельные оболочки не будут работать с типом подключения svn+ssh.

  2. Другая проблема, которая может возникнуть - разные версии SVN на стороне сервера и на стороне клиента (например, сервер 1.4, клиент 1.5, которые пытаются подключиться с использованием технологий 1.5).

  3. Используете ли вы аутентификацию SASL с SVN?

  4. Используете ли вы туннелирование?

  5. Используете ли вы приемы настройки ssh описано в документации svn?

[ОБНОВЛЕНО2]

  1. Вы подключаетесь к SVN из командной строки или используете IDE? Если вы используете IDE, назовите ее и предоставьте информацию о том, какой аддон/библиотека/и т. д. вы используете для подключения к серверу SVN.

[ОБНОВЛЕНО3]

  1. Не могли бы вы создать тестовую учетную запись и временно попытаться получить доступ к серверу SVN без ssh? Просто используя простой протокол svn://. Если работает - проблема в ssh, если не получается - svn.
  2. Какой инструмент вы используете для подключения по ssh и из какой ОС вы работаете?

[UPDATE4]. Вы уверены, что ваш сервер svn запущен? Если ваш svn работает на стандартном порту, попробуйте подключиться напрямую к порту svn с локального сервера:

telnet localhost 3690
  • Если это работает, попробуйте подключиться с клиента (например, telnet ip_server 3690).

  • Если telnet на сервере работает, а telnet на клиенте не работает, проверьте брандмауэры, маршрутизаторы и т. д.

  • Если telnet на сервере не работает. Попробуйте перезапустить сервер svn и проверьте журналы сервера.

[ОБНОВЛЕНИЕ5]

На мой взгляд, ваш сервер svn остановился. Не могли бы вы проверить, виден ли сервис svn локально (телнет с локального хоста на 3690) и удаленно. Если служба svn работает правильно в обоих случаях, вы должны получить что-то вроде

( успех ( 1 2 ( АНОНИМНЫЙ ) ( конвейер редактирования )) ) )

person FoxyBOA    schedule 11.06.2009
comment
Вы проверили, что проблема связана с аутентификацией? Если вы добавите пользователя x в @developer, сможет ли он оформить заказ? Правильно ли вы настроили svnserve.conf для аутентификации на основе пути? - person FoxyBOA; 11.06.2009
comment
Я довольно сильно возился. Так да. Красная книга и другие ресурсы, к сожалению, не помогают :( - person Ronny Brendel; 11.06.2009
comment
Не могли бы вы опубликовать свой файл svnserve.conf? - person FoxyBOA; 11.06.2009
comment
Я использую svn+ssh для доступа, поэтому я уверен, что эта конфигурация не имеет значения. anywys anon-access = none auth-access = write password-db = passwd authz-db = authz realm = qva - person Ronny Brendel; 11.06.2009
comment
Конфиг выглядит нормально. Не уверен, что вам нужно царство. Должен работать без него. Используете ли вы полный путь к вашей svn-библиотеке или сервер настроен на замену части пути (например, svn+ssh://url/var/lib/svn/repo/doc или svn+ssh://url/doc)? - person FoxyBOA; 12.06.2009
comment
Что вы подразумеваете под asdfasdfasdf? - person FoxyBOA; 12.06.2009
comment
Моему комментарию нужна определенная длина, чтобы быть опубликованным 8[ - person Ronny Brendel; 14.06.2009
comment
Вы можете отредактировать исходное сообщение или добавить новый ответ на свой вопрос. - person FoxyBOA; 14.06.2009

Верный способ сделать это здесь:

[groups]
developer = a,b,c
doc = r,x

[doc:/]
* =  
@doc = rw
@developer = rw

[otherPath:/]
* =
@developer = rw
@doc = r

[/] 
* = rw
person Farshid    schedule 14.05.2010
comment
Это не работает правильно. Из-за конечного [/] * = rw он открывает rw доступ ко всем - person paolov; 21.11.2017

"Я использую svn+ssh... странная штука"

svn+ssh использует ssh для подключения, затем запускает svnserve в туннельном режиме

При работе через туннель авторизация в основном контролируется разрешениями операционной системы на файлы базы данных репозитория; это очень похоже на то, как если бы Гарри обращался к хранилищу напрямую через URL-адрес file://.

документация svnserve

Другими словами, он игнорирует настроенную вами конфигурацию.

person Powerlord    schedule 15.06.2009
comment
эээ, я не совсем уверен, но что мне делать, чтобы получить то, что я хочу? - person Ronny Brendel; 15.06.2009