Bảo vệ bom ngã ba không hoạt động: Số lượng quy trình không giới hạn


8

Tôi mới nhận ra rằng hệ thống của tôi không giới hạn số lượng quy trình cho mỗi người dùng một cách chính xác, do đó không ngăn người dùng thực hiện ném bom và làm hỏng toàn bộ hệ thống:

user@thebe:~$ cat /etc/security/limits.conf | grep user
user        hard    nproc   512
user@thebe:~$ ulimit -u
1024
user@thebe:~$ :(){ :|:& };:
[1] 2559
user@thebe:~$ ht-bash: fork: Cannot allocate memory
-bash: fork: Cannot allocate memory
-bash: fork: Cannot allocate memory
-bash: fork: Cannot allocate memory
-bash: fork: Cannot allocate memory
-bash: fork: Cannot allocate memory
-bash: fork: Cannot allocate memory
-bash: fork: Cannot allocate memory
...
Connection to thebe closed by remote host.

Đây có phải là một lỗi hay tại sao nó lại bỏ qua giới hạn trong limits.confvà tại sao không áp dụng giới hạn mà ulimit -nnó tuyên bố?

Tái bút: Tôi thực sự không nghĩ giới hạn bộ nhớ bị ảnh hưởng trước giới hạn quá trình. Chiếc máy này có ram 8GB và nó chỉ sử dụng 4% trong số đó khi tôi thả bom ngã ba.

BIÊN TẬP:

Tôi quản lý để tái tạo điều này trên một đĩa CD trực tiếp. Vì vậy, tôi đoán đây phải là một lỗi. Về cơ bản, nó kết thúc việc tiêu diệt tất cả các quy trình, bao gồm cả những thứ quan trọng của hệ thống như X11, SSHD, v.v.

Bất kỳ người dùng có thể sụp đổ hệ thống.


-n là số lượng mô tả tập tin, không phải quá trình. Bạn muốnulimit -u
psusi

@psusi, cảm ơn, nhưng điều đó cho kết quả tương tự: suser@thebe:~$ ulimit -u 1024
d_inevitable

Khi tôi chạy, ulimit -utôi nhận được 31325. Khi tôi chạy, ulimit -u 512nó sẽ chạy 512. Khi tôi chạy cái nĩa đó, phần còn lại của hệ thống của tôi vẫn ổn.
psusi

Câu trả lời:


8

Hóa ra nó /etc/security/limits.confkhông hoạt động, nhưng cần khởi động lại trước khi nó được giải thích. Đăng xuất là không đủ.

Tôi khuyên mọi người nên giới hạn tệp cấu hình như

user hard nproc 512

Thay thế userbằng bất kỳ tên người dùng mà bạn muốn giới hạn.

Hoặc tốt hơn:

@group hard nproc 512

Thay thế groupbằng bất kỳ nhóm người dùng nào bạn muốn giới hạn.


Tùy thuộc vào phần mềm bạn sử dụng, ngay cả một hệ thống người dùng có thể cần nhiều quy trình hơn 512. Nếu bạn thấy những thứ bí ẩn không hoạt động sau khi thực hiện điều này, bạn có thể cần điều chỉnh số lượng quy trình thực tế bạn cho phép.
Zeiss Ikon
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.