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. З сторінки " bash man" .

Після встановлення жорсткого обмеження неможливо збільшити; м'яка межа може бути збільшена до значення жорсткої межі.

Жорстка межа встановлюється через прапор ulimit -H. Він може бути встановлений у файлах / etc / bash * або / etc / profile *. Шукайте налаштування ulimit -Hc.


man ulimit: Якщо не вказано ні -H, ні -S, встановлюються і м'які, і жорсткі межі . Тому пошук -H або -S не обов'язково приведе вас до правильного рішення. Просто натисніть на ulimit, а потім з’ясуйте, якщо встановлено -H або -S або обидва неявно. Звичайно, це через десятиліття, тому поведінка чи сторінки сторінок можуть бути оновлені з початкового питання / відповіді.
Джим

1

У мене таке траплялося, коли я використовувався dropbearяк SSH-сервер. Мабуть, дротяник встановлює жорсткі межі перед нерестом вашої оболонки.

Перехід на OpenSSH вирішив проблему.


Справді. Відразу на початку main () є виклик disallow_core (), який викликає setrlimit (2). З міркувань безпеки, звичайно, але повинен бути кращий спосіб. github.com/mkj/dropbear/blob/master/svr-main.c
Sundae
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.