bash:ulimit:コアファイルサイズ:変更できない制限:操作は許可されていません


28

Fedora 12 gcc 4.4.1

私はいくつかのプログラミングを行っていますが、私のプログラムはスタックダンプを提供しました。

しかし、調べるべきコアファイルはありません。

だから私はやった:

ulimit -c unlimited

そして、このエラーメッセージを得ました:

bash: ulimit: core file size: cannot modify limit: Operation not permitted

また、ulimitを50000に設定しようとしても、同じエラーが発生しました。

ulimit -aの結果:

$ ulimit -a
core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 12275
max locked memory       (kbytes, -l) 64
max memory size         (kbytes, -m) unlimited
open files                      (-n) 1024
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 10240
cpu time               (seconds, -t) unlimited
max user processes              (-u) 1024
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited

回答:


25

bash初期化ファイルのハード制限設定のGrep。bashのmanページ

ハード制限は、一度設定すると増やすことはできません。ソフト制限は、ハード制限の値まで増やすことができます。

ハード制限は、ulimit -Hフラグを介して設定されます。/ etc / bash *または/ etc / profile *ファイルで設定できます。ulimit -Hc設定を探します。


man ulimit:-Hも-Sも指定されていない場合、ソフト制限とハード制限の両方が設定されます。したがって、-Hまたは-Sを探しても、必ずしも正しい解決策が得られるとは限りません。urepをgrepしてから、-Hまたは-S、あるいはその両方が暗黙的に設定されているかどうかを確認してください。もちろん、これは10年後なので、動作またはマニュアルページは元の質問/回答以降に更新された可能性があります。
ジム

1

dropbearSSHサーバーとして使用していたときに、このようなことが起こりました。どうやら、dropbearはシェルをスポーンする前にいくつかの厳しい制限を設定します。

OpenSSHに切り替えることで問題は解決しました。


確かに。main()の最初にdisallow_core()の呼び出しがあり、setrlimit(2)を呼び出します。もちろんセキュリティ上の理由からですが、もっと良い方法が必要です。github.com/mkj/dropbear/blob/master/svr-main.c
サンデー
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.