Câu trả lời:
Thay đổi được thực hiện bởi ulimitlệnh:
$ ulimit -n 4096
$ ulimit -Hn 16384
sẽ chỉ áp dụng cho người dùng hiện tại và phiên. Để làm cho nó vĩnh viễn, bạn phải sửa đổi /etc/security/limits.confbằng cách thêm các giới hạn của bạn:
* soft nofile 4096
* hard nofile 16384
Tuy nhiên, ký tự đại diện *sẽ không áp dụng cho rootngười dùng. Để làm như vậy, bạn phải nói rõ:
* soft nofile 4096
* hard nofile 16384
root soft nofile 4096
root hard nofile 16384
Những giới hạn này sẽ được áp dụng sau khi khởi động lại .
Nếu bạn muốn áp dụng các thay đổi mà không cần khởi động lại , hãy sửa đổi /etc/pam.d/common-sessionbằng cách thêm dòng này vào cuối tệp:
session required pam_limits.so
Lần đăng nhập tiếp theo, bạn sẽ thấy các giới hạn được cập nhật, bạn có thể kiểm tra chúng (giới hạn mềm và cứng):
$ ulimit -a
$ ulimit -Ha
/etc/pam.d/common-session-noninteractiveđể nó hoạt động.
                    
pam_limits.sotrong/etc/pam.d/common-session. Tôi đã định cấu hình cho/etc/security/limits.confngười dùng x để có giới hạn cứng và mềm chonofile64000.sudo -u xsau đóulimit -acho tôi thấy rằng các thay đổi không được áp dụng. Tôi nhận ra rằngsuvàsudocó cấu hình pam khác nhau như vậy để làm cho nó hoạt động đúng tôi cần phải cho phéppam_limits.sotrong/etc/pam.d/common-session-noninteractive. Nếu bạn đang tự hỏi trường hợp sử dụng là gì - tôi sử dụng ansible và sudo để thay đổi người dùng.