2

У меня есть несколько папок с установками Magento.

например

www/magento1 www/magento2

Все файлы / папки внутри них принадлежат root:magento1 и root:magento2 соответственно.

У меня есть 3755 разрешений для всех папок, 644 для всех каталогов, чтобы начать с. Это предотвращает запись в любую папку или файл любого пользователя, кроме root.

Затем я добавляю в группу разрешения на запись для папок / файлов, которые должны иметь возможность писать разработчики. Например, они не могут записывать в основные файлы, но могут писать в модули / скины, которые не являются основными.

Это все хорошо. Единственное, что не хорошо, это то, что я не хочу, чтобы они могли читать имя пользователя / пароль базы данных mysql из magento1 / app / etc / local.xml. Я не хочу, чтобы они имели доступ к базе данных, где хранится конфиденциальная информация. Я также не хочу, чтобы мошенник-программист удалял кучу таблиц или что-то еще.

Но apache должен иметь доступ на чтение к тому же файлу.

Вот "решение", которое не работает: удалите разрешения на чтение из группы, но оставьте их для других. Зачем? Потому что это мешает разработчикам читать из их приложения /etc /local.xml, но позволяет им читать все остальные.

Что я делаю?


РЕДАКТИРОВАТЬ: Да, разработчики = разработчики, и они будут иметь доступ по SSH и FTP.

2 ответа2

3

Предполагая, что, как и в Debian, Apache работает как пользовательские www-данные и групповые www-данные, решение

chown www-data:www-data www/magento1/app/etc/local.xml
chmod 440 www/magento1/app/etc/local.xml

Пользователь root всегда может читать и записывать все файлы.

0

Предполагая, что разработчики = разработчики ...

Что не объясняется, каким образом разработчики получают доступ к системе - SSH? FTP?

если это только доступ по FTP, вы можете исключить файл конфигурации из показа / показа по FTP.

В качестве альтернативы вы можете запустить apache под определенным именем пользователя (обычно это настроено на работу как никто, иногда под учетной записью пользователя). Если вы позволите "другим"/"миру" читать это, то каждый может прочитать это. Таким образом, вы идете другим путем - сделайте его доступным для чтения только для пользователя и установите право владения для пользователя apache, а также полностью закройте доступ к группе и другим пользователям. Таким образом, Apache с радостью читает его, в то время как никто другой не может (сохранить root). Однако вам нужно подражать этому пользователю, если вы хотите вмешаться в файл. Например, su - username

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .