Para evitar la bomba tenedor, seguí este http://www.linuxhowtos.org/Tips%20and%20Tricks/ulimit.htm
ulimit -a
refleja la nueva configuración, pero cuando ejecuto (como root
en bash
) :(){ :|:&};:
la VM todavía funciona con la CPU máxima + RAM y el sistema se congelará.
¿Cómo garantizar que los usuarios no derriben el sistema utilizando bombas de horquilla o ejecutando una aplicación con errores?
OS: RHEL 6.4
root
por casualidad? ¿Desde qué shell lo estás intentando? (el espacio que falta después{
sugierezsh
pero tampoco puedo reproducirlo allí).Respuestas:
El superusuario o cualquier proceso con las capacidades CAP_SYS_ADMIN o CAP_SYS_RESOURCE no se ven afectados por esa limitación, eso no es algo que se pueda cambiar.
root
siempre puede bifurcar procesos.Si no se confía en algún software, no debería ejecutarse como de
root
todos modos.fuente
Para que este cambio sea generalizado, deberá agregar estos límites a todo el entorno. Los cambios que utilizan el
ulimit
comando son solo para el entorno actual.NOTA: ¡ Esto no tendrá ningún efecto en el usuario root!
Ejemplo
Edite este archivo:
vi /etc/security/limits.conf
y agregue entradas al archivo que limitan el número de procesos (nproc
) que un usuario específico o un grupo de usuarios pueden tener.NOTA: Hay más ejemplos en ese archivo. Tenga cuidado con el uso de "todos" (también conocido como
*
), esto también limitará las cuentas del sistema.Referencias
fuente
pam_limits
.pam_limits
eventualmente será reemplazado por eso una vez que los cgroups obtengan una adopción más amplia.cgroups
les daría mejores mandos para la utilización de la red y la CPU.