Создание Apache, который в состоянии записать в файлы PHP с PHP, работающим как DSO?

Имейте в распоряжении процедуру, где каждый раз они делают значительное изменение пароля (как пароль восстановления на DC, как пароль для исходной учетной записи администратора в первом домене леса (который должен быть в Администраторской группе Предприятия), и т.п. что они записывают учетную запись и пароль дважды. И те комбинации учетной записи/пароля сразу изолированы в конверте и маркированы соответственно. Один конверт остается локальным в защищенном месте (как сейф). Другой защищается везде, где Ваши удаленные ленты/программное обеспечение. В этом случае у Вас есть восстановление всех критических паролей.

6
задан 22 December 2010 в 21:05
4 ответа

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

Быстрое (и небезопасный) способ сделать это должно выполниться chmod 777 . из каталога, куда файл должен пойти. Прежде, чем сделать это выполнение ls -ld . для получения полномочий, Вы будете задерживать их к. В некоторых случаях необходимый каталог не будет существовать, таким образом, необходимо будет создать его сначала. Сразу после того, как конфигурационный файл был записан, сбрасывал каталог к его исходным полномочиям. Корректная команда вероятна chmod 755 . или chmod 750 . выполненный из каталога. Проверьте с командой ls.

Измените полномочия на конфигурационном файле так, чтобы Apache больше не мог писать в него (chmod o-w configfile). Приложения часто идут с конфигурационными файлами в качестве примера. Размещение одного из них в каталоге конфигурации и редактировании может быть лучшим подходом. Это требует, чтобы Вы изучили и поняли параметры конфигурации. Вы можете использовать сценарий конфигурации онлайн для помощи редактированиям.

2
ответ дан 3 December 2019 в 00:30

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

Для предоставления необходимых разрешений можно добавить пользователя nobody в sudoers файл. Запись должна быть похожей:

nobody   ALL=NOPASSWD: /path/to/your_script.sh

Сценарий оболочки (не забывают добавлять, выполняет разрешение).

cp -r /tmp/config/* /desired/path/to/config

В PHP Вам нужен маленький фрагмент кода как:

<?php
$output = shell_exec('sudo /path/to/your_script.sh');
echo "$output";
?>
2
ответ дан 3 December 2019 в 00:30

В общей среде все становится немного сложным когда дело доходит до проблем безопасности. Путем изменения принадлежности файла 'никому' Вы даете доступ для записи Apache к тому файлу, но, если бы модуль PHP не имеет настроек для ограничения каждого virtualhost каждым его собственным каталогом, это также предоставило бы доступ других к нему. Проверьте, как это настраивается в Вашей среде.

Apache обычно работает как пользователь 'никто', и 'никого' не сгруппируйте так, что Вы могли играть с полномочиями группы также. Ни на 'кого' измените группу файла и установите разрешение на 664.

Если Вы не можете изменить владельца или группу файла, FTP обычно позволяет Вам изменить полномочия. Предположение, что Apache не является одним из пользователя/группы, который владеет тем файлом, необходимо было бы установить его на 777, который очень небезопасен, но все это зависит от вида среды, в которой Вы находитесь. Возможно, можно установить его временно, установить Вас приложение и возвратить его к 644 или 444 (только для чтения).

2
ответ дан 3 December 2019 в 00:30

Это - типичная проблема, выполняющая PHP как DSO с cPanel, но это применяется также к другой установке.

При выполнении этого метода процессы PHP обрабатываются пользователем, который выполняет httpd. В большинстве случаев этот пользователь не является 'никем' пользователь. Это означает, когда PHP взаимодействует с файлами в файловой системе, они не должны быть доступными 'никем' пользователь. Это создает проблемы полномочий, поскольку Ваш нормальный cPanel базировался, у пользователя не будет доступа к RW (чтение-запись) файлы, которые не принадлежат 'никому' пользователь без корректных изменений полномочий. Большинство веб-приложений/сценариев PHP должно записать в файлы и каталоги и если они будут принадлежать cPanel пользователю, не изменяя полномочия на файлах/каталогах к 777, то это вызовет проблемы и в некоторых случаях, повредит Ваш веб-сайт (веб-сайты).

Так в этом случае можно просто и только управлять полномочиями вручную, устанавливая их на 777

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

Или, лучше, если можно переместиться в Mod_SuPHP, и у Вас нет проблем производительности (поскольку DSO намного быстрее), Вы сможете выполнить PHP как пользователь, работающий cPanel.

Если мы пропускаем проблемы полномочий, с которыми можно столкнуться с выполнением PHP через DSO, существуют немного некоторые преимущества для него, по сравнению с SuPHP. Первой является скорость. Mod_PHP быстрее, чем Mod_SuPHP. Это главным образом вследствие того, что каждый запрос, который обрабатывается Mod_SuPHP, перенесен для выполнения как пользователь, который владеет файлами. Это не могло бы быть очень примечательно на более низких транспортных сайтах, но на более высоких транспортных сайтах, это может сложить довольно быстрый. Второй является полная функциональность с PHP optcode кэширующиеся дополнения, такие как eAcclerator, APC и Xcache. К сети полное преимущество PHP optcode кэш, Вам нужен общий пользователь, который используется, когда кэширование скомпилированного кода байта PHP и выполнение PHP через DSO выполняют PHP как 'никого', пользователь удовлетворяет эту потребность. Можно сказать, является ли сервер установкой для выполнения PHP через DSO путем движения в WHM и взгляда под Основным>> Сервисная Конфигурация>> Конфигурация Apache.>> PHP и Конфигурация SuExec

Здесь можно найти больше деталей:

https://helpdesk.wiredtree.com/index.php? _m=knowledgebase& _ a=viewarticle&kbarticleid=1663

0
ответ дан 3 December 2019 в 00:30

Теги

Похожие вопросы