Come prevenire la bomba a forcella?


14

Per prevenire la bomba a forcella ho seguito questo http://www.linuxhowtos.org/Tips%20and%20Tricks/ulimit.htm

ulimit -ariflette le nuove impostazioni ma quando eseguo (come rootin bash) :(){ :|:&};:la VM continua a funzionare su CPU + RAM massima e il sistema si blocca.

Come garantire che gli utenti non faranno crollare il sistema usando bombe a forcella o eseguendo un'applicazione buggy?

Sistema operativo: RHEL 6.4


Non riesco a riprodurlo qui. Lo stai provando rootper caso? Da quale shell lo stai provando? (lo spazio mancante dopo {suggerisce zshma non riesco nemmeno a riprodurlo lì).
Stéphane Chazelas,

Stephane Chazelas: 1] Stavo correndo come root, l'ho provato con un normale utente che funziona. 2] Lo spazio mancante è un errore di battitura, sto usando bash. 3] Ulimit non è in grado di moderare l'utente "root"?
user44441

@ stephane-chazelas 1] Stavo correndo come root, l'ho provato con un normale utente che funziona. 2] Lo spazio mancante è un errore di battitura, sto usando bash. 3] Ulimit non è in grado di moderare l'utente "root"?
user44441

Risposte:


8

Il superutente o qualsiasi processo con le funzionalità CAP_SYS_ADMIN o CAP_SYS_RESOURCE non sono interessati da tale limitazione, non è qualcosa che può essere modificato. rootpuò sempre fork processi.

Se alcuni software non sono affidabili, non dovrebbero comunque funzionare come roottali.


3
A meno che non faccia qualcosa di speciale, praticamente nulla dovrebbe funzionare comunque come root. root è l'account che usi quando sei stanco di cercare di capire quali privilegi / diritti hai bisogno per capirlo o un servizio di sistema fondamentale.
Bratchley,

11

Per rendere questa modifica pervasiva dovrai aggiungere questi limiti all'intero ambiente. Le modifiche usando il ulimitcomando sono solo per l'ambiente corrente.

NOTA: questo non avrà alcun effetto sull'utente root!

Esempio

Modifica questo file: vi /etc/security/limits.confe aggiungi voci al file limitando il numero di processi ( nproc) che un utente specifico o un gruppo di utenti può avere.

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

NOTA: ci sono altri esempi in quel file. Fai attenzione a usare il "tutto" (aka. *) Anche questo limiterà gli account di sistema.

Riferimenti


Mentre "tutto" limita gli account di sistema, la maggior parte dei servizi gestiti da tali account di sistema non passa pam_limits.
Jordan

Ulimit non può moderare l'utente "root"?
user44441

Proprio come un'idea generale per aggiungere altro al post, potresti voler aggiungere qualcosa su pam_cgroup al post poiché la piattaforma dell'OP lo supporta e pam_limitsalla fine verrà sostituita da quella una volta che i cgroups avranno una più ampia adozione.
Bratchley,

Inoltre, poiché sembra che l'OP stia giocando con le politiche di utilizzo delle risorse, cgroupsdarebbe loro migliori manopole per l'utilizzo della rete e della CPU.
Bratchley,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.