現在、top
は、ほぼすべてのhttpd
プロセスがnobody
によって実行されていることを示しています。 「ほとんど」は、そのうちの2つがroot
によって実行されているためです。
どのようにすれば、ユーザーに次のように言わせることができますか:dartagnan
、porthos
、aramis
、athos
httpdをそれぞれのユーザーとして個別に実行します?
top
を実行すると、次のようなものが表示されます。
PID USERコマンド 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
============>これは私が現在持っているものと私が持っているものです[〜#〜] dont [〜#〜]見てみたい:
PID USERコマンド 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ルート/ usr/local/Apache/bin/httpd -k start -DSSL 334ルート/ usr/local/Apache/bin/httpd -k start -DSSL
別のユーザー|グループとしてhttpdを実行する方法は、httpd.confファイルの ser または group ディレクティブを変更することです。
User Apache
Group Apache
ただし、これは上記の出力のnobody
をApache
に変更するだけです。
特定のユーザーとしてhttpdを実行するには、ユーザーごとに構成ファイルを作成して管理する必要があります。設定ファイルでは、ユーザーとグループを適切に指定し、httpdプロセスが Listen ディレクティブを介してバインドするポートを指定する必要があります。特権のあるユーザーだけが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
メインサーバープロキシはit aramisのインスタンスです。
あなたはDNSとおそらく他のものも適切に設定しなければならないでしょう。