Запуск php от пользователя

Запуск php от пользователя

suphp
mod_become
я знаю а вот про патч можно поподробнее?

и может кто какие тесты проводил что лучше

Вот информация по интересующей Вас теме:

SUPHP — запуск PHP как отдельного пользователя

Подобно существующему расширению suexec для Apache, для PHP так же разработано решение suphp, которое позволяет работать PHP от имени отдельного пользователя или группы, которой принадлежит конкретный веб-сайт на разделяемом хостинге.

В статье Using suphp To Secure A Shared Server приводится пример установки и использования suphp на разделяемом хостинге.
По выкладкам производительности, suphp работает медленнее чем mod_php в 25 раз, но при этом является хорошей заменой для suexec (медленнее в 36 раз). Дополнительным преимуществом suphp является возможность запускать одновременно PHP5 и PHP4 (или к примеру PHP6 в недалёком будущем).
Правда, автор делает замечание что проект является инактивным и его развитие приостановлено.

Мое мнение:mod_suphp это нечто среднее между mod_php и php_cgi, но при этом имеет следующие преимущества по сравнению с php_cgi
1.Обрабатываются директивы .htaccess
2.Не создаются дочерние потоки при обработке ваших скриптов.
Но есть и недостатки,в случае малейшей ошибке в скрипте просто будет вываливатся 500 ошибка,причем ,если в режиме mod_php все будет работать то в suphp скрипт работать не будет.
Это связано с особенностью обработки.

что касается mod_become то тут ничего сказать к сожалению не могу поскольку я с ним мало работал.

__________________
C Наилучшими пожеланиями:
redhoster team
сервера от 1400 руб\мес,хостинг от 50 руб.

Понимаю что не в тему, простите.
От имени пользователя PHP можно запустить в IIS, по производительности на уровне mod_php, обрабатываются директивы .htaccess (через URL Rewrite Module), не создаются дочерние потоки при обработке скриптов

Источник

Php-fpm запуск от пользователя на apache2

Очень удобно иметь дело с сайтом если можно сохранять и редактировать файлы от своего пользователя, а не от www-data который ставится по умолчанию. При работе с mod-php+mpm-prefork это делает mpm-itk, а для работы в конфигурации php-fpm+mpm-event нужны специальные настройки о которых я сейчас расскажу. Преимущества php-fpm+mpm-event в большей производительности и в возможность работы с http2.

a2dismod php7.3 a2dismod mpm_itk a2dismod mpm_prefork a2enmod rewrite a2enmod mpm_event a2enmod proxy_fcgi setenvif a2enconf php7.3-fpm.conf a2enmod http2 systemctl restart apache2 systemctl restart php7.3-fpm

Создаем пуул для своего пользователя. 1. копируем файл /etc/php/7.3/fpm/pool.d/www.conf с именем своего сайта например jura12.conf. 2. меняем там 3 вещи. 2.1. название пула с [www] на [jura12]. 2.2. имя пользователя и группы с user = www-data group = www-data на своего пользователя username и свою группу username. 2.3. имя файла listen = /run/php/php7.3-fpm.sock на php7.3-fpm-jura12.sock

Читайте также:  Python encode utf 8 errors

Теперь в теле своего сайта /etc/apache2/sites-enabled/jura12.ru-le-ssl.conf в разделе Virtualhost добавляем строки:

FilesMatch ".+\.ph(ar|p|tml)$"> SetHandler "proxy:unix:/run/php/php7.3-fpm-jura12.sock|fcgi://localhost" FilesMatch>
sudo mkdir /var/www/dirofmysite sudo chown username:username /var/www/dirofmysite
sudo systemctl restart php7.3-fpm sudo systemctl restart apache2

безопасность. поскольку включается mod_proxy то лучше обезопасить его использование локальной сетью. иначе могут использовать ваш сервер. для этого надо в /etc/apache2/mods-enabled/proxy.conf добавить строки:

Proxy *> Require all denied Require local Require ip 192.168.1 Proxy>

Источник

Как запустить PHP скрипта с правами root?

Начну сразу по сути. У меня Os X Yosemite. Включил встроенный Apache и разблокировал встроенный же PHP.

При выполнении скриптов, работающих с файлами на компьютере, выскакивает ошибка доступа. Она благополучно лечится, если в папке, с которой работаю, указать права на чтение и запись (если второй требуется).
Скрипт запускаю из браузера Mozilla последней версии (хотя в Safari тоже самое).

Опытным путем было замечено, что скрипт запускается от имени Любых Пользователей. (собственно их права и переназначаю)

Отсюда суть вопроса. Как мне запускать php скрипт от имени меня, пользователя данной системы, у которого по умолчанию стоят права на чтение и запись, чтобы вручную не приходилось постоянно менять права доступа Любых Пользователей, от чьего имени запускается скрипт?
И почему он запускается от имени Любых Пользователей, ведь я его в системе запускаю через браузер вручную? (наверняка, это связано с политикой безопасности, но я пока не проникся всеми нюансами, если не сложно, кратко расскажите)

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

Заранее спасибо за ответы и теплого Вам солнца.

UPD — раскрытое решение для не посвященных

Мне сложно было применить все то, что ниже описали, так как я видимо еще совсем нуб.
Оба решения были верные, я выбрал запуск сервера Apache от имени пользователя
Для этого я в конфигурации php посмотрел под каким именем пользователя запускается мой сервер Apache (создаем файл php c функцией phpinfo() и открываем его в браузере, в таблице Configuration ищем колонку User/Group, в ней прописано имя пользователя, в моем случае это был _www)
Далее заходим в файл /etc/apache2/httpd.conf и ищем там ваше имя пользователя. У меня это была строка 181 User _www
строка 182 Group _www
Значение _www изменил на свое имя пользователя, сохранил и перезагрузил Apache.
Все, теперь он работает с правами read/write
ВНИМАНИЕ 1 — пишите имя пользователя без лишних знаков, так, как оно есть, моя первая ошибка была, прописать _имяпользователя. Разумеется сервер даже не запустился. Убрав подчеркивание, все получилось.
ВНИМАНИЕ 2 — осознавайте, что вы делаете. Дело в том, что ниже правильно написали, данные права, в моем случае администратора, дают вам запись и чтение почти всех файлов на компьютере, и если вас взломают, то злоумышленник получит почти полный доступ к компьютеру. У меня локальный сервер, и мне это нужно, плюс после конца работы, я выключаю Apache. Однако, безопасность Unix систем в первую очередь гарантируется жестким разграничением чего можно, а чего нельзя. Не стоит лишний раз нарушать это правило.

Читайте также:  Connect javascript to python

Источник

От имени какого пользователя работает PHP в Linux?

Здравствуйте!
Начал выкладывать свои PHP-скрипты в сеть и возник вопрос, о котором я раньше как-то не задумывался. Необходимо настроить безопасность по доступу к директориям в Ubuntu (в общем в Linux). Как известно доступ к папкам и файлам имеет 3 уровня:
1. суперпользователь
2. зарегистрированные пользователи
3. все остальные (собственно пользователи сайта)
Я рассуждаю так. Папка с включаемыми файлами должна быть доступна зарегистрированным, но никак не всем остальным. Что же касается любого действия, которое выполняется в системе (чтение, запись, перезапись), оно выполняется от имени какого-то пользователя (которого можно отнести к одному из этих 3-х уровней).
Поскольку доступ к папке с включаемыми файлами, нужен PHP-скрипту, я так подозреваю, что он должен работать от имени какого-то зарегистрированного в системе пользователя. Но вот что это за пользователь и где он настраивается не знаю.

Подскажите кто знает, верны ли мои предположения и куда дальше копать. Найти ответ нигде не могу.

PHP работает от имени привилегированного пользователя
Как изменить? Прошу помощи!

от имени какого пользователя запущен процесс
Доброе время суток, пытаюсь сделать диспетчер задач сейчас у меня есть th32ProcessID и.

Сделать возможным вход в MySQL от имени любого пользователя (ОС Linux Mint)
Доброго всем времени суток. Подскажите, как решить вот такую проблемку. Операционная система у.

PHP — SQL добавление имени пользователя.
Мне нужна помощь с кодом PHP одного из компонентов(расширений) Joomla. PHP я знаю мало, но код.

Источник

Как запустить каждый отдельный сайт от имен разных пользователей на nginx+php-fpm?

php-fpm и nginx

Нет 100% уверенности в безопасности кода CMS -систем размещенных сайтов. Даже самый опытный программист допускает ошибки и эти ошибки могут повлиять на безопасность сайта и сервера, где он размещен.

Читайте также:  Freelancing projects in html

Зачем это нужно?

Запускать сайт от имени разных пользователей – это гарантия того, что проблемы с безопасностью одного сайта, не повлияют на работу остальных сайтов на этом сервере.

Если один из сайтов получит вирус или бэкдор, то он сможет сломать только его. У него попросту не будет к остальным доступа.

Как это работает?

Мы создадим отдельные пулы php-fpm для каждого сайта, которые будут запускаться от разных пользователей. Права у пользователей будут ограничены только запуском своего пула и директорией сайта.

Процесс

Далее все команды будут вводится от имени пользователя root.

Добавляем нового пользователя в Linux

Указываем только один параметр -M — без создания домашней директории. Одноименная группа создастся автоматически. Пароль пользователю указывать не нужно.

Подготавливаем PHP

Нужно проверить возможность подключения внешних конфигурационных файлов для пулов. В Debian это сделано по умолчанию и этот шаг можно пропустить. Для этого открываем конфиг (в примере используется PHP версии 7.3):

sudo nano /etc/php/7.3/fpm/php-fpm.conf

и в нем должна быть раскомментирована строка:

include=/etc/php/7.3/fpm/pool.d/*.conf

Создаем новый пул PHP — FPM

Копируем конфиг пула для нового и открываем его для редактирования:

cd /etc/php/7.3/fpm/pool.d/ sudo cp www.conf www-new.conf sudo nano /etc/php/7.3/fpm/pool.d/www-new.conf
# Меняем название пула в квадратных скобках на свое. # Удобнее указывать название сайта [www-new] # Меняем на свое listen = /var/run/php/php7.3-fpm-www-new.sock # Указываем имя пользователя и группу созданные ранее user = username group = username # Сам nginx и php-fpm будут запущены от имени стандартной учетной записи. # Оставляем без изменений. listen.owner = www-data listen.group = www-data listen.mode = 0660

На этом настройка php-fpm закончилась.

Перезапускаем php-fpm

sudo service php7.3-fpm restart

Настройка nginx

Открываем конфигурационный файл сайта.

sudo nano /etc/nginx/sites-available/sitename.conf

Если конфига для нового сайта нет, то копируем его с уже существующего и редактируем под себя.

Чтобы «заставить» работать сайт от имени другого пользователя нужно в конфигурационном файле во всех секциях обработки php-файлов добавить ссылку на созданный ранее сокет пула php-fpm:

Перезапускаем nginx

Заранее проверяем правильность настроек всех конфигов для nginx:

Если все ОК, перезапускаем последний:

sudo service nginx restart

Теперь ваш сайт работает от пользователя username и не сможет ничего поломать у других сайтов, работающих от стандартной учетки www-data.

Источник

Оцените статью