На моем сервере установлены Subversion и Apache, а веб-каталог Apache также является рабочей копией Subversion. Причина этого в том, что простая команда svn update /server/staging
будет развертывать последний источник на промежуточном сервере.Как настроить разрешения в Linux, чтобы два пользователя могли обновить рабочую копию SVN на сервере?
Apache общедоступного веб-каталог: /server/staging
- (Это рабочая копия SVN.)
У меня есть два пользователя на моем сервере, 'ричарда' и 'Остин. Они оба являются членами группы разработчиков. Я рекурсивно устанавливаю разрешения в каталоге/server для richard: developers, используя «sudo chown -R richard: developers/server».
Затем я устанавливаю разрешения для чтения, записи и исполнения как для «богачей», так и для группы «разработчиков».
Итак, «austin» теперь должен использовать команду svn update /server/staging
? Однако, когда он пытается, он получает ошибку:
svn: Can't open file '/server/staging/.svn/lock': Permission denied
Если я рекурсивно изменить владелец/сервер Остин: разработчики, он может запустить команду просто отлично, но затем «ричард» не может.
Как исправить проблему? Я хочу создать крюк post-commit для автоматического развертывания промежуточного сайта, когда файлы будут зафиксированы, но я не вижу способа для этого работать для обоих пользователей. Крюк будет:
/usr/bin/svn update /server/staging
Используя ту же учетную запись пользователя, для них обоих не будет действительно приемлемое решение, и я не знаю ни одного способа выполнить команду внутри крючка, как «корень» ,
Любая помощь приветствуется!
Если бы я был вами, я бы сделал много проверок `ls -l`, чтобы убедиться, что разрешения выглядят так, как вы думаете, что они делают. Всегда возможно, что вы ошиблись в том, что chmod или набрали 755 вместо 775. Если вы уже это сделали, не было совершено никакого преступления - он просто никогда не боится дважды проверять! – 2008-10-02 21:06:24
Полностью согласен, но похоже, что это не так. Фактический файл /server/staging/.svn/lock фактически не существует до тех пор, пока в subversion не произойдет что-то, поэтому мне интересно, просто ли это случай добавления конкретного пользователя в группу разработчиков. Спасибо за предложение. – rmh 2008-10-02 21:09:41
Я не отправляю это как ответ, потому что я не уверен, но: Если richard и austin обращаются к нему через HTTP, а не через файловую систему, тогда необходимо добавить www-данные или соответствующее имя пользователя Apache group, так как он создает файл блокировки. – 2008-10-02 21:12:04