Câu trả lời:
Thay đổi được thực hiện bởi ulimit
lệ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.conf
bằ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 root
ngườ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-session
bằ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.so
trong/etc/pam.d/common-session
. Tôi đã định cấu hình cho/etc/security/limits.conf
người dùng x để có giới hạn cứng và mềm chonofile
64000.sudo -u x
sau đóulimit -a
cho tôi thấy rằng các thay đổi không được áp dụng. Tôi nhận ra rằngsu
vàsudo
có 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.so
trong/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.