Всем привет, имеется два сервака на debian, на одном стоит сервер svn на втором его рабочая копия(репозитария). При том что на самом серваке svn работает от рута а его рабочая копия от www-data. При обновлении рабочей копии ( update ) новым правам назначаются рутовские права, а должны быть www-data. может ли это быть связано с тем что сервер svn работает от рута ? подскажите если не трудно. спасибо заранее.
>Всем привет, имеется два сервака на debian, на одном стоит сервер svn
>на втором его рабочая копия(репозитария). При том что на самом серваке
>svn работает от рута а его рабочая копия от www-data. При
>обновлении рабочей копии ( update ) новым правам назначаются рутовские права,
>а должны быть www-data. может ли это быть связано с тем
>что сервер svn работает от рута ? подскажите если не трудно.
>спасибо заранее.С этим и связано. Используйте пост-коммит хук для chown на нужного владельца, а еще лучше, откажитесь от запуска svn-клиента под рутом (зачем может быть нужен такой ужас?)
>[оверквотинг удален]
>>на втором его рабочая копия(репозитария). При том что на самом серваке
>>svn работает от рута а его рабочая копия от www-data. При
>>обновлении рабочей копии ( update ) новым правам назначаются рутовские права,
>>а должны быть www-data. может ли это быть связано с тем
>>что сервер svn работает от рута ? подскажите если не трудно.
>>спасибо заранее.
>
>С этим и связано. Используйте пост-коммит хук для chown на нужного владельца,
>а еще лучше, откажитесь от запуска svn-клиента под рутом (зачем может
>быть нужен такой ужас?)Хотя подождите. Невнимательно прочитала, чушь какая-то получается: если клиент (то есть бинарь, делающий svn update) работает от обычного юзера, делать файлы, принадлежащие руту он не может.
Что-то Вы намудрили :)
>Всем привет, имеется два сервака на debian, на одном стоит сервер svn
>на втором его рабочая копия(репозитария). При том что на самом серваке
>svn работает от рута а его рабочая копия от www-data. При
>обновлении рабочей копии ( update ) новым правам назначаются рутовские права,
>а должны быть www-data. может ли это быть связано с тем
>что сервер svn работает от рута ? подскажите если не трудно.
>спасибо заранее.svnserve или mod_dav? Запускать от рута ОЧЕНЬ плохая идея
пользователь тоже все выполняет из под рута и сервер под рутом =) Это не моя идея, просто досталась такая конфигурация в наследство. Выход из этой ситуации - перевести сервак на www-data ? Или можно как то еще решить проблему ?
>пользователь тоже все выполняет из под рута и сервер под рутом =)
>Это не моя идея, просто досталась такая конфигурация в наследство. Выход
>из этой ситуации - перевести сервак на www-data ? Или можно
>как то еще решить проблему ?Еще раз, как работает svn?
Вобщем есть сервак(1), там поднят svn. Есть сервак(2) второй на котором стоит рабочая копия svn с сервера 1. Сервак 1 работает од рутом, сервак 2 работает под рутом. Т.е все действия и на сервере и на клиенте делаются из под рута.
1 сервер (сервер svn) вот такие права к проекту:
Access: (0755/drwxr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root)2 сервер(рабочая копия) на папку и файлы:
Access: (0755/drwxr-xr-x) Uid: ( 33/www-data) Gid: ( 33/www-data)
Это все безобразие исправляет скрипт ( cd /home/project/1 && chown -R www-data.www-data * && chown root.root mail_spooler grabber )
Вот как то так это работает, только скрипт каждый раз юзать не айс, вот и пытаюсь разобраться.
Подскажите что не так
Каждый раз скрипт юзать это более нормально чем работать с рабочей копией от рута, что мешает работать с рабочей копией от www-data?
>[оверквотинг удален]
>
>Access: (0755/drwxr-xr-x) Uid: ( 33/www-data) Gid: (
> 33/www-data)
>
>Это все безобразие исправляет скрипт ( cd /home/project/1 && chown -R www-data.www-data
>* && chown root.root mail_spooler grabber )
>
>Вот как то так это работает, только скрипт каждый раз юзать не
>айс, вот и пытаюсь разобраться.
>Подскажите что не такСделайте обычного пользователя(например, user-svn), дайте ему права cmdalias в sudo (man sudoers, если не справитесь, спрашивайте, подскажем как) дайте права на скрипт, который будет делать chown -R
Скрипт нужно запускать автоматически, через post-commint хук (подробно описано в официальной документации Subversion что это и как делается)
Давать пользователю Apach'а shell, что бы из-под него работал svn-клиент? Этого нельзя делать ни в коем случае :(((
>
>Давать пользователю Apach'а shell, что бы из-под него работал svn-клиент? Этого нельзя
>делать ни в коем случае :(((Ктото сказал что нужно давать ему шел?
Хуки то работают на сервере svn (или я неправ?), а у него проблема в рабочей копии на другом хосте
>Хуки то работают на сервере svn (или я неправ?), а у него
>проблема в рабочей копии на другом хостеобычно такое решается через ssh-ключ. Можно прописать в списке команд для пользователя, под которым будет ходить subversion, только этот скрипт, делающий chown. Во всяком случае, я работала около двух лет в одной достаточно крупной компании, в которой реализовывалась именно такая схема. Как сделать красивее и безопаснее, я не знаю
>>Хуки то работают на сервере svn (или я неправ?), а у него
>>проблема в рабочей копии на другом хосте
>
>обычно такое решается через ssh-ключ. Можно прописать в списке команд для пользователя,
>под которым будет ходить subversion, только этот скрипт, делающий chown. Во
>всяком случае, я работала около двух лет в одной достаточно крупной
>компании, в которой реализовывалась именно такая схема. Как сделать красивее и
>безопаснее, я не знаюно это подходит только в том случае, если изменения нужно выгружать сразу же. В другом случае лучше сделать судовую обвязку для svn update, в которую включить и chown
>[оверквотинг удален]
>
>Сделайте обычного пользователя(например, user-svn), дайте ему права cmdalias в sudo (man sudoers,
>если не справитесь, спрашивайте, подскажем как) дайте права на скрипт, который
>будет делать chown -R
>
>Скрипт нужно запускать автоматически, через post-commint хук (подробно описано в официальной документации
>Subversion что это и как делается)
>
>Давать пользователю Apach'а shell, что бы из-под него работал svn-клиент? Этого нельзя
>делать ни в коем случае :(((Можно пожалуйста поподробней про создание пользователя и назначения ему прав,спасибо.
>[оверквотинг удален]
>>если не справитесь, спрашивайте, подскажем как) дайте права на скрипт, который
>>будет делать chown -R
>>
>>Скрипт нужно запускать автоматически, через post-commint хук (подробно описано в официальной документации
>>Subversion что это и как делается)
>>
>>Давать пользователю Apach'а shell, что бы из-под него работал svn-клиент? Этого нельзя
>>делать ни в коем случае :(((
>
>Можно пожалуйста поподробней про создание пользователя и назначения ему прав,спасибо.Копипаста из спека одной из моих рабочих rpm-ок:
%post
echo "## backup helpdesk aliases" >> /etc/sudoers
echo "Cmnd_Alias BACKUPHELPDESK = /usr/sbin/rc.HABackup.sh" >> /etc/sudoers
echo "%helpdesk ALL = (root) NOPASSWD: BACKUPHELPDESK" >> /etc/sudoers
echo "## end backup helpdesk aliases" >> /etc/sudoers
Нужно добавить в файл sudoers Cmnd_Alias с любым (которое нравится Вам) именем для группы команд, и для группы команд прописать(пользователь|группа%) ALL = (root) NOPASSWD: BACKUPHELPDESK
А вообще, man sudoers рулит, там все это написано)