В настоящее время, top
показывает мне, что почти все httpd
процессы управляются nobody
. "Почти", потому что 2 из них находятся в ведении root
.
Как я могу сделать это таким образом, чтобы пользователи говорили: dartagnan
, porthos
, aramis
, athos
запускать httpd каждый отдельно, как сказали пользователи?
Я надеюсь увидеть что-то подобное, когда буду бегать top
:
PID USER Command 1234 dartagnan /usr/local/apache/bin/httpd -k start -DSSL 12 porthos /usr/local/apache/bin/httpd -k start -DSSL 342 aramis /usr/local/apache/bin/httpd -k start -DSSL 214 athos /usr/local/apache/bin/httpd -k start -DSSL
============> Это то, что у меня есть сейчас и что я НЕ хотел бы видеть:
PID USER Command 1234 nobody /usr/local/apache/bin/httpd -k start -DSSL 12 nobody /usr/local/apache/bin/httpd -k start -DSSL 342 nobody /usr/local/apache/bin/httpd -k start -DSSL 214 nobody /usr/local/apache/bin/httpd -k start -DSSL 244 root /usr/local/apache/bin/httpd -k start -DSSL 334 root /usr/local/apache/bin/httpd -k start -DSSL
Чтобы запустить httpd от имени другого пользователя | группы, нужно изменить пользователь или группа в файле httpd.conf.
User apache
Group apache
Но это только изменит nobody
в вашем выводе выше на apache
что, я думаю, не то, что вам нужно.
Чтобы httpd запускался от имени конкретного пользователя, вам необходимо создать файл конфигурации и управлять им для каждого из них. В файле конфигурации следует указать пользователя и группу соответствующим образом, а также порт, к которому процесс httpd должен привязаться через Слушать директива. Помните, что только привилегированные пользователи могут подключаться к портам <1024. Затем вы можете запустить это так
apachectl -f /path/to/aramis.conf -k start -DSSL
Обратите внимание на другие директивы httpd, например VirtualHost, вероятно, также потребуется изменить для каждого пользователя.
Дополнительно задействованы варианты EL (RHEL, CentOS Scientific Linux и т. Д.) SELinux. Вам нужно будет добавить порт, к которому будет привязан каждый экземпляр, в http_port_t
группа например
semanage port -a -t http_port_t -p tcp 8888
что позволит экземпляру httpd привязаться к порту 8888.
Если пользователи будут использовать свои домашние каталоги для обслуживания файлов, вам нужно будет разрешить это с помощью логического значения httpd_enable_homedires SELinux
setsebool -P httpd_enable_homedirs on
Вышеупомянутое должно позволить вам настраивать экземпляры httpd для каждого пользователя, однако каждый пользователь должен будет помнить, какой порт использовать для добавления в свои URL-адреса, например, для aramis выше
http://example.com:8888
Все это очень запутанно. Чтобы помочь своим пользователям, вы должны настроить свой основной httpd на прослушивание порта 80, как обычно, и действовать как обратный прокси для отдельных экземпляров пользователя. Затем, когда Арамис подключается, например, к
http://aramis.example.com
прокси-сервер основного сервера - это экземпляр Арамиса.
Вам нужно будет соответствующим образом настроить DNS и, возможно, другие вещи.