Как запустить сервер Apache httpd от пользователя без полномочий root в CentOS / RHEL 7

Пользователь хочет запустить сервер Apache httpd от пользователя без полномочий root в CentOS / RHEL 7.

Как этого можно добиться с помощью службы под systemd?

Настройка сервера Apache httpd для запуска от пользователя без полномочий root (с использованием службы systemd)

При запуске systemd владелец и права доступа к файлу /run/httpd изменяются из-за файла /usr/lib/tmpfiles.d/httpd.conf.

Он устанавливается вместе с пакетом httpd и не требует включения httpd.service.

Если пользователь без полномочий root попытается запустить службу httpd, он получит ошибку ниже:

$ /usr/sbin/httpd -k start
(13)Permission denied: AH00058: Error retrieving pid file /run/httpd/httpd.pid
AH00059: Remove it before continuing if it is corrupted.

Следуйте приведенным ниже инструкциям, чтобы настроить Apache httpd для запуска в качестве пользователя без полномочий root (при желании вы также можете настроить его для запуска в качестве службы systemd).

1. Измените настройки пользователя и группы в /etc/httpd/conf/httpd.conf для своего пользователя и группы.

Например, если ваш пользователь и группа myuser и mygroup, используйте настройки ниже.

# vi /etc/httpd/conf/httpd.conf
User myuser
Group mygroup

2. Установите для порта прослушивания значение выше 1024 в /etc/httpd/conf/httpd.conf.

# vi /etc/httpd/conf/httpd.conf
Listen 8080

3. Измените владельца каталога журнала httpd.

# chown -R myuser:mygroup /var/log/httpd

4. Измените владельца каталога /run/httpd.

# chown -R myuser:mygroup /run/httpd

Чтобы сделать это изменение постоянным, необходимо изменить /usr/lib/tmpfiles.d/httpd.conf, чтобы использовать myuser и mygroup, как показано ниже.

$ sudo cat /usr/lib/tmpfiles.d/httpd.conf
d /run/httpd   710 myuser mygroup
d /run/httpd/htcacheclean   700 myuser mygroup

Примечание. Обновления пакетов вернут изменение в /usr/lib/tmpfiles.d/httpd.conf, поэтому это изменение должно стать частью ваших работ по обновлению.

Настройка apache httpd для запуска в качестве службы под systemd

(Необязательно) Если вы хотите, чтобы Apache httpd запускался как сервис под systemd, вам придется отредактировать файл сервисного блока.

Это делается путем создания системного раскрытия, как показано ниже.

# systemctl edit httpd

Редактор по умолчанию будет открыт автоматически.

Добавьте следующий контент, затем сохраните и выйдите из редактора.

[Service]
User=myuser
Group=mygroup

Проверка

Остановите httpd, если он уже запущен, затем запустите httpd с помощью приведенной ниже команды. (Как пользователь без полномочий root)

$ /usr/sbin/httpd -k start

Или, если вы выполнили необязательные шаги для использования systemd, запустите службу:

$ systemctl start httpd.service

cryptoparty

Cryptography is typically bypassed, not penetrated.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

5e7fa976b0640d40