Отказано в разрешении SVN - txn-current-lock

Я только что установил svn на свой сервер Ubuntu. У меня есть мой пользователь, к которому я могу войти. Проблема в том, что всякий раз, когда я пытаюсь внести изменения в файловую структуру, я получаю сообщение об отказе в доступе.

Can't open file '/var/www-svn/db/txn-current-lock':
Permission denied

Мое хранилище находится в /var/www-svn, и разрешение на эту папку drwxr-xr-x для пользователя И группы svn (у меня плохо с разрешениями, поэтому я не знаю, это правильно). Мой пользователь, под которым я вхожу в svn, находится в группе svn, но я не могу изменить структуру файла. Что я делаю неправильно? Это сработает, если я изменю пользователя и группу папки на своего пользователя, под которым я тоже вхожу.

В svnserve.conf для параметра anon-access установлено значение нет, а для параметра auth-access установлено значение запись.

(Я сменил владельца /var/www-svn, набрав sudo chown -R svn:svn www-svn внутри каталога /var.)


person Marwelln    schedule 10.12.2011    source источник
comment
Как вы получаете доступ к репо (svn, http, файл и т. д.)?   -  person prodigitalson    schedule 10.12.2011
comment
svn (используя TortoiseSVN Repo Browser).   -  person Marwelln    schedule 10.12.2011
comment
Как выглядит ваш конфиг для доступа/авторизации (svnserve.conf)?   -  person prodigitalson    schedule 10.12.2011
comment
Я обновил свой пост об этом.   -  person Marwelln    schedule 10.12.2011
comment
Вы настроили пользователей? svnbook.red-bean. com/en/1.0/svn-book.html#svn-ch-6-sect-3.2   -  person prodigitalson    schedule 10.12.2011
comment
Да, я добавил своего пользователя и пароль в файл passwd.   -  person Marwelln    schedule 10.12.2011
comment
Это произошло, когда я попытался зафиксировать через svn+ssh, тогда как SVN был настроен для использования вместо этого через https.   -  person 329933    schedule 21.12.2012
comment
почему не используется простая команда sudo перед командой svn   -  person Nanhe Kumar    schedule 10.05.2013
comment
Проверьте пользователей и группы. Я скопировал файлы как root. Таким образом, все мое владение было root/root, а не группой пользователей, назначенной пользователям SVN.   -  person Jeff Beougher    schedule 23.06.2017


Ответы (10)


Папка репозитория в файловой системе должна принадлежать или, наконец, иметь разрешение на чтение/запись того же пользователя Linux, над которым работает ваш svn или apache через web-dav...

В моем случае это было:

$ chown -R www-data:www-data /svn/reponame

Но в каком-то другом случае это может быть по-другому, например

$ chown -R someuser:somegroup /svn/reponame

Поэтому замените someuser:somegroup правильными значениями.

person Aleksandar Pavić    schedule 08.10.2014

Вы должны добавить бит SETUID для папки /var/www-svn/, потому что в транзакциях будут папки, созданные во время запуска SVN для сохранения транзакций, которые представлены папками.

Это означает, вкратце, просто сделать

chmod +s -R /var/www-svn/

должен решить проблему.

person khmarbaise    schedule 10.12.2011

Демон svnserve работал под моим пользователем, а не как root. Я убил процессы svnserve, работающие под моим пользователем, и перезапустил их как root. Теперь это работает.

person Marwelln    schedule 10.12.2011

Моя проблема заключалась в том, что я применил разрешения, а затем сделал svnadmin create, поэтому снова потребовалось установить разрешение.

 $ sudo chown -R www-data:subversion myproject
 $ sudo chmod -R g+rws myproject
person Matt in Washington    schedule 30.09.2013


Если у вас нет прав sudo:

В моем конкретном случае я мигрировал с одного общего сервера Webfaction на другой. Копирование файлов должно было назначить право собственности на весь репозиторий моему имени пользователя, в то время как владельцем, вероятно, должен быть apache, чтобы репо было доступно. Я не мог применить chown apache:mygroup repo, потому что у меня нет доступа к пользовательскому apache. Без root-доступа единственным способом заставить его работать было chmod -R 777 . внутри корня моего репозитория, в конечном итоге удалив файл блокировки, на который у меня не было прав доступа. Это, наконец, решило проблему, и я мог снова зафиксировать.

person Flaudre    schedule 03.11.2016

Разрешение на чтение и запись отсутствует для созданного репо.

chcon -R -t httpd_sys_rw_content_t /path_to_svn Пример: chcon -R -t httpd_sys_rw_content_t /opt/svn/trunk

person Sadashiv    schedule 31.07.2019
comment
Была эта проблема в CentOS 8 с настройкой svn через apache httpd (использовал этот guid: computingforgeeks.com/). это решило проблему. Благодарность :) - person Ali; 13.10.2020

И последнее, но не менее важное: если ваш репозиторий принадлежит пользователю и группе svn

(sudo chown -R svn:svn /var/svn/repos)

Обязательно добавьте пользователей, которые могут получить к нему доступ, в группу svn. vi /etc/group

svn:x:502:user1,user2
person im3r3k    schedule 27.05.2014

Хотя вопрос очень старый, он занимает более высокое место в Google, но один с подрывной деятельностью на Apache / httpd в Linux не находит решения полезными.

Я запускаю подрывную деятельность на Apache, CentOS Linux. Для меня проблема была связана с SELinux, и отключение помогло мне.

Перед этим необходимо соблюдать осторожность, так как на рабочем сервере не рекомендуется отключать SELinux. Пожалуйста, внимательно прочитайте документацию, прежде чем пытаться это сделать.

https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Security-Enhanced_Linux/sect-Security-Enhanced_Linux-Enabling_and_Disabling_SELinux-Disabling_SELinux.html

Как предложил Стюарт в комментарии, другое решение — обновить права доступа к файлам, хотя более подробная информация недоступна, некоторые настройки прав доступа к файлам должны помочь.

person Pavan Kumar    schedule 25.05.2015
comment
Опубликованная ссылка битая. Почему вы не могли просто опубликовать ответ здесь напрямую? Вот почему ответы только по ссылкам не одобряются. Теперь мы никогда не узнаем .... - person Stewart; 30.04.2017
comment
@Stewart Извините, что ссылка не работает. Не похоже, чтобы его можно было восстановить с помощью кеша поисковой системы или archive.org. Насколько я помню, проблемы с SELinux были решены путем его отключения. Попробуйте сделать то же самое и сообщите о результатах. Будьте немного осторожны и хорошо прочитайте, прежде чем выполнять такие действия на сервере PROD. - person Pavan Kumar; 03.05.2017
comment
Я исправил проблему, изменив владельца файла в конце. - person Stewart; 03.05.2017
comment
В CentOS вместо отключения SeLinux, что вообще не рекомендуется. попробуйте использовать исправление выше от @Sadashiv. это сработало для меня - person Ali; 13.10.2020

Перезапустите Eclipse IDE.

У меня был точно такой же случай, и я потерпел неудачу при попытке зафиксировать изменения с помощью EclipseIDE.

Во время работы Eclipse я изменил группы пользователей, которым нравится фиксировать в репозитории.

Удивительно, но я заметил, что как только я перезапустил Eclipse, измененная группа/права репозитория были предоставлены. Я думаю, что Eclipse держит ssh-канал открытым, и во время сеанса ssh-канала измененные групповые права игнорируются.

Во время eclipse-restart сеанс ssh воссоздается, а измененные групповые права прикрепляются к новому сеансу ssh, предоставляющему фиксацию.

person Grim    schedule 10.04.2021