サーバーを運用しているのですが、以下のように設定するには、どのようにしたら良いのでしょうか。

1、CPUの割り当て時間を制限する。(一定時間でタイムアウトする。)
2、1つのスクリプトが実行中に使用できるメモリ量を制限する。

これらは、おそらく「Cシェル」の「limit」コマンドで行うものとの認識を持っているのですが、それでよろしいでしょうか。

Apacheの設定に「RLimit~」というディレクティブがありますが、これらはApache本体の制限で、ユーザーごとの実行制限ではない、という認識を持っているのですが、それで間違いないでしょうか。

3、1ユーザーが、一度に起動できるCGIの数を1つにする。

これは、どのように設定すれば良いのでしょうか。
ユーザーの認識が問題となるので、「suEXEC」となにか関係があるのでしょうか。

よろしくお願いします。

このQ&Aに関連する最新のQ&A

A 回答 (1件)

あんまり詳しくないのですが、RLimit* の解釈はだいたいそういう


認識でいいんだと思います。CGIごとに制限するには、そのCGIのプ
ログラム側でなにかをしてやる必要がありそうです。

perl で直接いじれたらいいんですが、どうも具合のいいのはなさ
そうですね。(syscall を呼べばできなくはなさそうですけど)
csh か、zsh, bash あたりを一度呼んでから、その中で目的のCGI
プログラムを起動することになりそうです。

あと、ユーザごとのCGI数の制限に関しては、なにを1ユーザとする
かですね。クライアントのIPアドレス1個が1ユーザなのだとすると、
IPアドレスごとにロックをかけて、自分が2ユーザ目以降なら停止
するとか終了するとかするように作ることになると思います。

直接的な解決につながるかはわかりませんが、apache関連のメーリ
ングリストのアーカイブから参考になりそうなのを拾いましたので、
たどっていってみてください。

http://apacheml.ecc.u-tokyo.ac.jp/ml/msg00380.html
http://apacheml.ecc.u-tokyo.ac.jp/ml/msg05329.html
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aと関連する良く見られている質問

Qapacheの設定(IPアドレスによるアクセス制限の方法)

下記のようなエラーがでてしまいます。
解決策をご存知の方、どうぞ教えてください。
よろしくお願いいたします。

●エラー内容
error:
couldn't perform authentication. AuthType not set!: /・・・

●httpsd.confの内容(一部)
<directory "/home/・・・">
<Limit POST GET>
order deny,allow
deny from all
allow from XXX.XXX.XXX.XXX
Require valid-user
</Limit>
options FollowSymLinks ExecCGI
</directory>

●OS情報
Linux XXX 2.4.7-10 #1 Thu Sep 6 17:27:27 EDT 2001 i686 unknown

Aベストアンサー

>Require valid-user
を指定しているので、どういう認証をするかの指定が必要になっているのでは、
単に、IPアドレスで制約したいのなら、Require valid-userは不要ではないかと。

QApacheで SSLを設定する場合のApacheの最新のバージョン?

ApacheでSSLをしたいのですが、現在Apache2.0.40を使っています。
opensslは 0.9.7で、ついでにアパッチを2.0.48にしたいと考えていますが、mod_sslは対応しているのでしょうか?

日本語で詳しく書かれているmod_sslのサイトをご存知の方教えていただけませんか?

Aベストアンサー

2.0.48であれば,mod_sslはapache本体に付属しています。

configure 実行時に --enable-ssl オプションをつけてください。

Qroot権限の実行コマンドを通常ユーザーで実行

root権限に限らないのですが、他のユーザーの権限でしか実行できないコマンドを自分で実行する方法が知りたいのです。
と言っても、rootや他ユーザーのパスワードを知っているという前提です。

例えば、通常ユーザーで作業をしているときに、root権限で行う必要のあるコマンドを実行したいとします。
今は、suでログインしてから実行していますが、shellスクリプトで実行したいと思っています。

どういったshellスクリプトになりますでしょうか?

Aベストアンサー

> 今回やろうと思ってるのは、suでログインしてから、いくつかの操作を行いたいので

であれば、そのいくつかの操作をまとめてシェルスクリプトにして、
それを su の -c に渡せば良いですね。

例えば、rally というユーザで、シェルスクリプト名が do_rally.sh とします。
スクリプトに実行権限がついていなければ

% su - rally -c "sh do_rally.sh"

という感じ。実行権限がついていれば

% su - rally -c do_rally.sh

で良いです。

ただ、最低一回はパスワードの入力があるので、su を使っている限りは
それからは逃れられません。

# ちょっと遅くなったので、もう sudo を使っているかな?

QApacheサーバに接続してcgiが実行できません。

サーバはRedHat Linux8で、クライアントはwin2000です。
表示は
「Server Error!
Premature end of script headers: dekiru.cgi 」
と出ます。
過去の質問からsuexecの問題だという情報を見つけ、
/var/log/httpd/suexec.log
を見てみると、
「uid: (500/XXX) gid:(500/500) cmd:yyy.cgi
cannot get docroot informaiton (/home/XXX)」
という表示でした。
homeやXXX、yyy.cgiは全て755という権限でないといけないということで全て755に変更してサーバを再スタートしましたが、解決しません。
デフォルトで/var/www/cgi-bin以下に
同じyyy.cgiをおいて、
http://サーバIP/cgi-bin/yyy.cgiをブラウザでみると、
実行可能です。
メッセージからドキュメントroot情報がgetできないということですがこれ以上やるべきことが見つからず行き止まり状態です。
他に考えられる原因はありませんでしょうか?
よろしくお願いします。

サーバはRedHat Linux8で、クライアントはwin2000です。
表示は
「Server Error!
Premature end of script headers: dekiru.cgi 」
と出ます。
過去の質問からsuexecの問題だという情報を見つけ、
/var/log/httpd/suexec.log
を見てみると、
「uid: (500/XXX) gid:(500/500) cmd:yyy.cgi
cannot get docroot informaiton (/home/XXX)」
という表示でした。
homeやXXX、yyy.cgiは全て755という権限でないといけないということで全て755に変更してサーバを再スタートしましたが、解決しません。
デフォ...続きを読む

Aベストアンサー

失礼しました.

> デフォルトで/var/www/cgi-bin以下に同じyyy.cgiをおい
> て、http://サーバIP/cgi-bin/yyy.cgiをブラウザでみる
> と、実行可能です。

を完全に見落としていました.手元にLinux環境が無いので
確認できていませんが,/usr/sbin/suexecを削除してみてください.

QRedHat7.3 apache-2 ユーザーのページが見れない。

ブラウザを立ち上げて
http://localhost/
ってやると/usr/local/apache2/htdocs/index.htmlが見えるのですが、
taroというユーザーを作ってホームディレクトリのしたに
~taro/public_html/index.html
をつくってやると

Forbidden

You don't have permission to access /~taro on this server.

Additionally, a 403 Forbidden error was encountered while trying to use an ErrorDocument to handle the request.
Apache/2.0.39 Server at localhost Port 80

といわれちゃいます。ちなみに.httpd.confの中の所では

#UserDir public_html
<IfModule mod_userdir.c>
UserDir public_html
</IfModule>

となっています。
どうすれば見れるようになるのでしょうか?

ブラウザを立ち上げて
http://localhost/
ってやると/usr/local/apache2/htdocs/index.htmlが見えるのですが、
taroというユーザーを作ってホームディレクトリのしたに
~taro/public_html/index.html
をつくってやると

Forbidden

You don't have permission to access /~taro on this server.

Additionally, a 403 Forbidden error was encountered while trying to use an ErrorDocument to handle the request.
Apache/2.0.39 Server at localhost Port 80

といわれちゃいます。ちなみに.http...続きを読む

Aベストアンサー

それでは不適切です。

taro 701
public_html 701
index.html 604

に変更してください。
# index.html は644でもいいですが。


人気Q&Aランキング

おすすめ情報