Разрешение SVN отклонено - txn-current-lock - PullRequest
29 голосов
/ 10 декабря 2011

Я только что настроил 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 установлен на none и auth-access установлен на write .

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

Ответы [ 8 ]

19 голосов
/ 08 октября 2014

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

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

$ chown -R www-data:www-data /svn/reponame
11 голосов
/ 10 декабря 2011

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

Этозначит, короткими словами просто сделайте

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

, чтобы решить проблему.

8 голосов
/ 10 декабря 2011

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

6 голосов
/ 30 сентября 2013

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

 $ sudo chown -R www-data:subversion myproject
 $ sudo chmod -R g+rws myproject
3 голосов
/ 10 декабря 2011

Вроде вопрос для superuser.com.На первый взгляд, у группы svn нет разрешения на запись в эту папку.Так может быть в этом проблема.Взгляните на это http://www.svnforum.org/threads/35493-Can-t-open-db-txn-current-lock-permission-denied

2 голосов
/ 03 ноября 2016

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

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

0 голосов
/ 25 мая 2015

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

Я использую Subversion в 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

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

0 голосов
/ 27 мая 2014

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

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

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

svn:x:502:user1,user2
...