bash: ulimit: ขนาดไฟล์หลัก: ไม่สามารถแก้ไขข้อ จำกัด : ไม่อนุญาตให้ใช้งาน


28

Fedora 12 gcc 4.4.1

ฉันกำลังเขียนโปรแกรมบางโปรแกรมและโปรแกรมของฉันให้กองถ่ายโอนข้อมูลสแต็ค

อย่างไรก็ตามไม่มีไฟล์หลักสำหรับฉันที่จะตรวจสอบ

ดังนั้นฉันจึง:

ulimit -c unlimited

และได้รับข้อความแสดงข้อผิดพลาดนี้:

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

ฉันยังลองตั้งค่า ulimit เป็น 50,000 และยังได้รับข้อผิดพลาดเดียวกัน

ผลลัพธ์ของ 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

Grep สำหรับการตั้งค่าขีด จำกัด ฮาร์ดในไฟล์กำหนดค่าเริ่มต้น bash ของคุณ จากหน้าคนทุบตี

ไม่สามารถเพิ่มขีด จำกัด ฮาร์ดได้เมื่อตั้งค่าแล้ว ขีด จำกัด ที่อ่อนนุ่มอาจเพิ่มขึ้นถึงค่าของขีด จำกัด ฮาร์ด

ขีด จำกัด ฮาร์ดถูกตั้งค่าผ่านทาง ulimit -H flag มันอาจจะตั้งในไฟล์ / etc / bash * หรือ / etc / profile * ค้นหาการตั้งค่า ulimit -Hc


คน ulimit: หากไม่ -H มิได้ -S มีการระบุทั้งนุ่มและข้อ จำกัด ที่ยากเป็นชุด ดังนั้นการมองหา -H หรือ -S ไม่จำเป็นต้องนำคุณไปสู่ทางออกที่ถูกต้อง เพียง grep สำหรับ ulimit แล้วคิดออกว่า -H หรือ -S หรือทั้งสองมีการตั้งค่าโดยนัย แน่นอนว่านี่คือทศวรรษต่อมาดังนั้นพฤติกรรมหรือหน้าคนอาจได้รับการปรับปรุงตั้งแต่คำถาม / คำตอบเดิม
จิม

1

ฉันมีสิ่งนี้เกิดขึ้นกับฉันเมื่อฉันใช้dropbearเป็นเซิร์ฟเวอร์ SSH เห็นได้ชัดว่า dropbear ตั้งค่าขีด จำกัด บางอย่างก่อนวางไข่เชลล์ของคุณ

การเปลี่ยนมาใช้ OpenSSH ช่วยแก้ปัญหาได้


จริง ในช่วงเริ่มต้นของ main () จะมีการเรียกใช้ disallow_core () ซึ่งเรียก setrlimit (2) เพื่อความปลอดภัยแน่นอน แต่ต้องมีวิธีที่ดีกว่า github.com/mkj/dropbear/blob/master/svr-main.c
Sundae
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.