Все наши репозитории SVN размещены на выделенном компьютере, к которому имеют доступ все разработчики. Время от времени нам нужно проверить репозиторий на машине, которой мы не владеем или не управляем. В настоящее время мы все используем для этого нашу собственную системную учетную запись (SSH), но вместо этого я хотел бы использовать некоторого общего пользователя checkoutsvn, который можно использовать для этого. Этот пользователь используется только для извлечения из репозитория, но ему не должно быть разрешено входить в систему (нет доступа к оболочке). Я попытался сделать это, установив оболочку по умолчанию для этой учетной записи на / sbin / nologin, но затем SVN не работает, поскольку, очевидно, svn + ssh требует доступа к оболочке.
Как ты делаешь это? Есть ли для этого хорошее решение?
Поразмыслив, я думаю, что использование svn + ssh для этого не подходит. Поэтому я перехожу на svn через https, который предлагает гораздо более детальный контроль.
У моего веб-хостинга есть эти инструкции:
Используя nano или FTP-клиент, откройте ~ / .ssh / authorized_keys и введите следующее (все в одной строке):
command="/usr/bin/svnserve -t -r /home/[username]/svn",no-port-forwarding,no-agent-forwarding,no-X11-forwarding,no-pty [public key text from id_rsa.pub]
Если вы хотите иметь несколько пользователей svn для этой учетной записи, тогда для команды в ~ / .ssh / authorized_keys также должна быть указана опция –tunnel-user =. НЕ является именем пользователя (веб-хоста); это имя, под которым вы хотите, чтобы пользователи отображались при проверке и оформлении заказа.
И со страницы руководства svnserve:
-r root, --root=root
Sets the virtual root for repositories served by svnserve. The
pathname in URLs provided by the client will be interpreted rela‐
tive to this root, and will not be allowed to escape this root.