ปรับเปลี่ยนและใช้ limit.conf โดยไม่ต้องรีบูต


16

ฉันได้เพิ่มสาย/etc/security/limits.confเข้าไปเพื่อเพิ่มจำนวนไฟล์ที่เปิด

*    hard nofile 4096
root hard nofile 16384

อย่างไรก็ตามเมื่อฉันเรียกใช้ulimit -nมันบอกว่า 1024 ซึ่งเป็นค่าเริ่มต้น ฉันออกจากระบบและเข้าสู่ระบบแล้ว แต่ยังคงเห็น 1024 ฉันจะนำการเปลี่ยนแปลงไปใช้อย่างไร

คำตอบ:


8

หากคุณกำลังใช้bashงานulimit -nจะแสดงขีด จำกัด ซอฟต์เท่านั้น ที่จะได้รับวงเงินยาก, ulimit -Hnที่คุณต้องทำ

ในระบบของฉันฉันเห็นสิ่งนี้:

$ ulimit -n
1024
$ ulimit -Hn
4096

16

การเปลี่ยนแปลงที่ทำโดยulimitคำสั่ง:

$ ulimit -n 4096
$ ulimit -Hn 16384

จะใช้กับผู้ใช้และเซสชันปัจจุบันเท่านั้น เพื่อให้ถาวรคุณต้องแก้ไข/etc/security/limits.confโดยเพิ่มขีด จำกัด ของคุณ:

* soft nofile 4096
* hard nofile 16384

อย่างไรก็ตามไวด์การ์ด*จะไม่ใช้กับrootผู้ใช้ ในการดำเนินการดังกล่าวคุณต้องระบุอย่างชัดเจน:

* soft nofile 4096
* hard nofile 16384
root soft nofile 4096
root hard nofile 16384

ข้อ จำกัด เหล่านี้จะถูกนำมาใช้หลังจากรีบูต

หากคุณต้องการใช้การเปลี่ยนแปลงโดยไม่ต้องรีบูตให้แก้ไข/etc/pam.d/common-sessionโดยเพิ่มบรรทัดนี้ที่ท้ายไฟล์:

session required pam_limits.so

เมื่อเข้าสู่ระบบครั้งต่อไปคุณควรเห็นขีด จำกัด ที่อัปเดตแล้วคุณสามารถตรวจสอบได้ (ขีด จำกัด นุ่มและแข็ง):

$ ulimit -a
$ ulimit -Ha

2
ฉันมีปัญหากับวิธีการนี้ซึ่งแปลกจริงๆ ฉันใช้อูบุนตู 14 และเปิดใช้งานในpam_limits.so /etc/pam.d/common-sessionฉันได้กำหนดค่าใน/etc/security/limits.confผู้ใช้ x ให้มีขีด จำกัด ที่แข็งและอ่อนสำหรับnofile64000 sudo -u xจากนั้นulimit -aแสดงให้ฉันเห็นว่าการเปลี่ยนแปลงไม่ได้ถูกนำไปใช้ ฉันตระหนักว่าsuและsudoมีการกำหนดค่า pam ที่แตกต่างกันดังนั้นเพื่อที่จะทำให้การทำงานอย่างถูกต้องผมต้องเปิดการใช้งานในpam_limits.so /etc/pam.d/common-session-noninteractiveหากคุณสงสัยว่ากรณีการใช้งานคืออะไรฉันใช้ ansible และ sudo เพื่อเปลี่ยนผู้ใช้
hahcho

1
ด้วยเหตุผลบางอย่างฉันต้องเพิ่มมันเพื่อ/etc/pam.d/common-session-noninteractiveให้มันใช้งานได้
Sumit
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.