Сегодня у меня был опыт, которым хотелось бы поделиться. Все началось с того, что наша контора (не без моей инициативы) перебралась с SVN на Git. То есть теперь в системе контроля версий мы помимо просто файлов еще храним и права доступа к ним.

Раньше было так: на девелоперской машине сайт /var/www/site был во владении основного пользователя и IDE могла спокойно работать с этими файлами. Если серверу нужны были права на запись в директорию, то директории выставлялись права 0777, благо через SVN дальше компьютера разработчика это не уходило. Был такой вот мелочный хак.

Все бы хорошо, но после перехода на Git, отправлять на продакшн права 0777 было бы совсем нехорошо. Решением этой дилеммы стал запуск сервера apache от основного юзера операционки. В Ubuntu ключевой файл находится в /etc/apache2/envvars

В нем следует изменить строки

export APACHE_RUN_USER=www-data
export APACHE_RUN_GROUP=www-data

на

export APACHE_RUN_USER=user
export APACHE_RUN_GROUP=user

Где user – имя основного юзера системы.

И стало щастье и IDE, и веб-серверу. В итоге мы можем хранить в Git “правильные” права и разрабатывать приложение в любимом текстовом редакторе запущенном не от www-data или, что еще хуже root‘а.

P.S. Под основным юзером я имел ввиду юзера, который собственно работает за компьютером.