bash: ulimit: kích thước tệp lõi: không thể sửa đổi giới hạn: Không được phép thao tác


28

Fedora 12 gcc 4.4.1

Tôi đang làm một số chương trình, và chương trình của tôi đã cho tôi một đống stack.

Tuy nhiên, không có tập tin cốt lõi để tôi kiểm tra.

Tôi cũng vậy:

ulimit -c unlimited

và nhận được thông báo lỗi này:

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

Tôi cũng đã thử cài đặt ulimit thành 50000 và vẫn gặp lỗi tương tự.

Kết quả của 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

Câu trả lời:


25

Grep cho một cài đặt giới hạn cứng trong các tệp khởi tạo bash của bạn. Từ trang bash man .

Một giới hạn cứng không thể tăng lên một khi nó được đặt; một giới hạn mềm có thể được tăng lên đến giá trị của giới hạn cứng.

Giới hạn cứng được đặt thông qua cờ ulimit -H. Nó có thể được đặt trong tập tin / etc / bash * hoặc / etc / profile *. Tìm kiếm một thiết lập ulimit -Hc.


man ulimit: Nếu không chỉ định -H hay -S, cả hai giới hạn mềm và cứng đều được đặt . Vì vậy, tìm kiếm -H hoặc -S không nhất thiết sẽ dẫn bạn đến giải pháp chính xác. Chỉ cần grep cho ulimit và sau đó tìm hiểu xem -H hoặc -S hoặc cả hai đều được đặt. Tất nhiên, đây là một thập kỷ sau đó nên các trang hành vi hoặc trang người đàn ông có thể đã được cập nhật kể từ câu hỏi / câu trả lời ban đầu.
Jim

1

Tôi đã có điều này xảy ra với tôi khi tôi sử dụng dropbearnhư một máy chủ SSH. Rõ ràng, dropbear đặt ra một số giới hạn cứng trước khi sinh ra vỏ của bạn.

Chuyển sang OpenSSH đã giải quyết vấn đề.


Thật. Ngay khi bắt đầu main () có một lệnh gọi tới disallow_core (), gọi setrlimit (2). Vì lý do bảo mật tất nhiên, nhưng phải có một cách tốt hơn. github.com/mkj/dropbear/blob/master/auss-main.c
Sundae
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.