Вся моя кодовая база хранится в репозитории subversion, который я распределяю среди своих веб-серверов Apache с балансировкой нагрузки, что позволяет легко проверять код, запускать обновления и беспрепятственно переносить мой код в процессе разработки на производство.
Одно из неудобств, которое, я уверен, легко обойти (кроме выполнения сценария при каждой проверке), заключается в получении заданных (возвращаемых) разрешений Linux для файлов, которые обновляются или извлекаются с помощью subversion. Наша команда безопасности установила, что 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).
Какой самый простой способ обойти попытки Subversion обновить права доступа к файлу и владельца? Есть ли что-то, что можно сделать в клиенте svn или на сервере Linux, чтобы сохранить исходные права доступа к файлу? Я использую RHEL5 (и теперь 6 на нескольких выбранных экземплярах).