2015-01-15 3 views
0

В настоящее время я пытаюсь настроить крюк после фиксации, который автоматически экспортирует SVN-копию в мой www-root, чтобы мой сайт обновлялся после совершения фиксации. Пост фиксации крюка выглядит следующим образом:svn post-commit Разрешение отклонено

#!/bin/sh 

# Delete Old site 
rm -R /var/www/html/sha 
print 1 
# Export Repository 
svn export --force file:///var/local/svn /var/www/html/sha 

# Make sure Apache Owns the website 
chown -R www-data:www-data /var/www/html/sha 

Но я получаю много Permission Denied ошибки, когда я что-то совершить. В принципе, как это:

rm: cannot remove '/var/www/html/sha/extensions/LdapAuthentication.php': Permission denied 

Так я знаю, что мне нужно, чтобы установить некоторые новые разрешения, но я не уверен, что права я делать множество. каталог/var/www/html имеет www-данные: www-data как user: group.

подключиться к серверу SVN с помощью туннелирования означающего СВХ + SSH: // пользователь @ хост/репо

Любые подсказки?

Возможно, сейчас это работает. Я изменил владельца каталога/var/www/html/sha на www-data: walter и удалил команду chown, потому что вам все равно нужно sudo. Сейчас работает как шарм. Благодаря!

ответ

1

Учетная запись пользователя, на которой выполняется скрипт hook, должна иметь соответствующие разрешения для этого пути.

Если вы используете Apache для обслуживания своего репозитория, то учетная запись, в которой выполняется этот процесс, нуждается в разрешениях. Если вы используете svnserve, для этой учетной записи нужны разрешения.

Возможно также, что у вас есть другой процесс, содержащий блокировку файла или каталога, блокируя возможность его удаления.

+0

Хорошо. Я попытался получить пользователя, который запускает svnserve с ps aux | grep svn, но он не появляется. Он должен работать, потому что я могу использовать svn .. Другой способ узнать, какой пользователь нуждается в разрешениях? – nablahero

+0

Как получить доступ к репозиторию? Если вы не используете URL 'svn: //', я бы не ожидал, что svnserve будет запущен. Возможно, это началось по запросу inetd? – alroc

+0

Я использую svn + ssh: // поэтому должен быть svnserve. Если перехватчики post-commit экспортируют svn в каталог, права выглядят так: '-rw-r-r-- 1 www-data walter 2034 15 янв 15:08 index.php' Из того, что я понимаю, это то, что владелец - это www-данные, которые находятся в группе walter. Я не понимаю, почему группа здесь «walter», потому что www-данные даже не в этой группе. если я изменяю группу файлов на www-data, пост-commit-скрипт выполняется до 'chown -R www-data: www-data/var/www/html/sha' – nablahero

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