Вся моя база кода хранится в репозитории subversion, который я рассеиваю среди моих загруженных балансированных веб-серверов Apache, что позволяет легко проверять код, запускать обновления и плавно получать мой код в разработке на производство.
Одно из неудобств, которые я уверен, что есть легкая работа (за исключением выполнения script при каждой проверке), получает установленные разрешения Linux (назад) на файлы, которые обновляются или проверяются с помощью подрывная деятельность. Наша команда безопасности установила, что Owner
и Group
установлены в файлах httpd.conf, и все каталоги в пределах documentRoot
получают разрешения 700, все неисполняемые файлы (например, *.php, *.smarty, *.png) получают разрешения Linux 600, все исполняемые файлы получают 700 (например, *.sh, *.pl, *.py). Все файлы должны иметь владельца и группу для apache:apache
для чтения службой httpd, так как только владелец файла имеет доступ через разрешения.
Каждый раз, когда я запускаю svn update
или svn co
, даже если файлы не могут быть созданы (например, svn update
), я обнаружил, что права собственности на файлы устанавливаются в учетную запись, которая запуская команды svn, а часто и время, разрешения на файлы устанавливаются на нечто иное, чем то, из чего они были первоначально (т.е. файл .htm до обновления - 600, но после и svn update
он получает значение 755 или даже 777).
Каков самый простой способ обойти попытки подрывной работы при обновлении прав доступа и прав на файл? Есть ли что-то, что можно сделать в svn-клиенте или на сервере Linux, чтобы сохранить исходные разрешения для файлов? Я запускаю RHEL5 (и теперь 6 на нескольких экземплярах).