Bagaimana mencegah bom fork?

14

Untuk mencegah bom fork, saya mengikuti http://www.linuxhowtos.org/Tips%20and%20Tricks/ulimit.htm

ulimit -amencerminkan pengaturan baru tetapi ketika saya menjalankan (seperti rootdalam bash) :(){ :|:&};:VM masih berjalan pada CPU max + RAM dan sistem akan membeku.

Bagaimana memastikan pengguna tidak akan menjatuhkan sistem dengan menggunakan bom fork atau menjalankan aplikasi kereta?

OS: RHEL 6.4

pengguna44441
sumber
Saya tidak bisa mereproduksi di sini. Apakah Anda mencobanya seperti rootkebetulan? Dari shell mana Anda mencobanya? (ruang yang hilang setelah {menyarankan zshtetapi saya tidak bisa mereproduksi di sana juga).
Stéphane Chazelas
Stephane Chazelas: 1] Saya menjalankan sebagai root, saya mencobanya dengan pengguna normal berfungsi. 2] Ruang yang hilang adalah salah ketik, saya menggunakan bash. Maaf. 3] Apakah itu ulimit tidak dapat memoderasi pengguna 'root'?
user44441
@ stephane-chazelas 1] Saya menjalankan sebagai root, saya mencobanya dengan pengguna normal berfungsi. 2] Ruang yang hilang adalah salah ketik, saya menggunakan bash. Maaf. 3] Apakah itu ulimit tidak dapat memoderasi pengguna 'root'?
user44441

Jawaban:

8

Superuser atau proses apa pun dengan kapabilitas CAP_SYS_ADMIN atau CAP_SYS_RESOURCE tidak terpengaruh oleh batasan itu, itu bukan sesuatu yang dapat diubah. rootselalu dapat melakukan proses garpu.

Jika beberapa perangkat lunak tidak tepercaya, itu tidak seharusnya berjalan seperti apa adanya root.

Stéphane Chazelas
sumber
3
Kecuali itu melakukan sesuatu yang istimewa, tidak ada yang berjalan sebagai root. root adalah akun yang Anda gunakan ketika Anda lelah mencoba mencari tahu hak / hak apa yang Anda butuhkan untuk mengetahuinya atau layanan sistem mendasar.
Bratchley
11

Untuk membuat perubahan ini meresap Anda harus menambahkan batas ini ke seluruh lingkungan. Perubahan menggunakan ulimitperintah hanya untuk lingkungan saat ini.

CATATAN: Ini tidak akan berpengaruh pada pengguna root!

Contoh

Edit file ini: vi /etc/security/limits.confdan tambahkan entri ke file yang membatasi jumlah proses ( nproc) yang boleh dimiliki oleh pengguna atau grup pengguna tertentu.

vivek hard nproc 300
@student hard nproc 50
@faculty soft nproc 100
@pusers hard nproc 200

CATATAN: Ada lebih banyak contoh dalam file itu. Hati-hati menggunakan "semua" (alias. *) Ini juga akan membatasi akun sistem.

Referensi

slm
sumber
Sementara "semua" akan membatasi akun sistem, sebagian besar layanan yang dijalankan oleh akun sistem itu tidak melewati pam_limits.
jordanm
Apakah itu ulimit tidak bisa memoderasi pengguna 'root'?
user44441
Sama seperti gagasan umum untuk menambahkan lebih banyak ke pos, Anda mungkin ingin menambahkan sesuatu tentang pam_cgroup ke pos karena platform OP mendukungnya dan pam_limitspada akhirnya akan digantikan oleh yang begitu cgroup mendapatkan adopsi yang lebih luas.
Bratchley
Plus, karena kedengarannya seperti OP bermain-main dengan kebijakan penggunaan sumber daya, cgroupsakan memberi mereka tombol yang lebih baik untuk pemanfaatan jaringan dan CPU.
Bratchley