การเปลี่ยนแปลงที่ทำโดย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
pam_limits.so
/etc/pam.d/common-session
ฉันได้กำหนดค่าใน/etc/security/limits.conf
ผู้ใช้ x ให้มีขีด จำกัด ที่แข็งและอ่อนสำหรับnofile
64000sudo -u x
จากนั้นulimit -a
แสดงให้ฉันเห็นว่าการเปลี่ยนแปลงไม่ได้ถูกนำไปใช้ ฉันตระหนักว่าsu
และsudo
มีการกำหนดค่า pam ที่แตกต่างกันดังนั้นเพื่อที่จะทำให้การทำงานอย่างถูกต้องผมต้องเปิดการใช้งานในpam_limits.so
/etc/pam.d/common-session-noninteractive
หากคุณสงสัยว่ากรณีการใช้งานคืออะไรฉันใช้ ansible และ sudo เพื่อเปลี่ยนผู้ใช้