Forkbomb no necesita de sudo! porque? (Solucionado)

Imagen de elnetotaca
12 puntos

Hola compañeros, pues que aqui sin mucho que hacer, decidí jugar con la linea de comando, y pues que me topé con que un forkbomb no necesita de sudo para funcionar!

será solo en mi pc?
necesito modificar los permisos de mi usuario?
alguien experto me puede explicar el porqué del asunto?
yo mientras tanto estoy en la búsqueda de mas info.
Saludos.

Imagen de elnetotaca
+1
0
-1

siguiendo con el tema, no he logrado encontrar una manera de limitar el numero de procesos que un usuario puede correr, con lo que solventaría un ataque forkbomb(que actualmente creo que no sería ataque, mas bien auto ataque!)

cuando hago;
$ sudo ulimit -u 800
me dice;
sudo: ulimit: command not found

alguien sabe como puedo cambiar los valores?
Gracias

+1
0
-1

unzip; strip; touch; finger; mount; fsck; more; yes; unmount; sleep
Es lo que hago a diario....... En Linux mal pensados!

Imagen de Jose Luis 1320
+1
0
-1

Esta información se encuentra en la sección 1 de bash; man 1 bash ó man bash, en inglés, esto lo copie de Ubuntu manpages: http://manpages.ubuntu.com/manpages/natty/es/man1/bash.1.html ;

 ulimit [-SHacdflmnpstuv [límite]]
              Proporciona control sobre los recursos disponibles para el shell
              y  para los procesos arrancados por él, en sistemas que permitan
              tal control (Linux por ejemplo, y por  supuesto).  El  valor  de
              límite  puede  ser  un  número en la unidad especificada para el
              recurso, o el valor unlimited, o sea, ilimitado.   Las  opciones
              -H  y -S especifican que el límite para el recurso dado va a ser
              duro o blando.  Un  límite  duro  es  aquél  que  no  puede  ser
              aumentado  una  vez puesto; un límite blando puede incrementarse
              hasta el valor dado por el límite duro. Si no se especifican  ni
              -H  ni  -S, se establecen ambos límites.  Si límite se omite, se
              muestran los valores del límite blando del recurso, a menos  que
              se  dé  la opción -H. Cuando se especifica más de un recurso, se
              imprime el nombre del límite y la unidad antes del valor.  Otras
              opciones se interpretan como sigue:
              -a     Se informa de todos los límites actuales
              -c     El  tamaño  máximo  de  ficheros  de  volcados de memoria
                     (core)
              -d     El tamaño máximo del segmento de datos de un proceso
              -f     El tamaño máximo de ficheros creados por el shell
              -l     El tamaño máximo que puede ser bloqueado en memoria
              -m     El tamaño del máximo conjunto residente (memoria)
              -n     EL número máximo de descriptores de ficheros abiertos (la
                     mayoría de sistemas no permiten establecer este valor)
              -p     El  tamaño de una tubería en bloques de 512 B (esto puede
                     no estar establecido)
              -s     El tamaño máximo de pila
              -t     La máxima cantidad de tiempo de CPU en segundos
              -u     El número máximo de procesos  disponibles  para  un  solo
                     usuario
              -v     La  máxima cantidad de memoria virtual disponible para el
                     shell

              Si se da límite, es el nuevo valor del recurso especificado  (la
              opción  -a  es  sólo  para  mostrar  los  valores).  Si no se da
              ninguna opción, entonces se supone -f.   Los  valores  están  en
              incrementos  de  1024  B, excepto para -t, que está en segundos,
              -p, que está en unidades de bloques de 512 B, y -n y -u, que son
              valores adimensionales. El estado de retorno es 0 a menos que se
              encuentre una opción inválida, se dé como límite un argumento no
              numérico  distinto de unlimited, o bien ocurra un error mientras
              se establece un nuevo límite.

Por ejemplo mi salida, ulimit -a, muestra el estado de los límites actuales:


$ ulimit -a
core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 23893
max locked memory       (kbytes, -l) 64
max memory size         (kbytes, -m) unlimited
open files                      (-n) 1024
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 8192
cpu time               (seconds, -t) unlimited
max user processes              (-u) 23893
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited
+1
0
-1

"Yo sólo se que no se nada"
-Sócrates, filósofo griego.
-Normas del foro

Imagen de LyingB
+1
0
-1

porque Linux le da por defeto a los usuario recursos ilimitados.

Si quieres modificar el número de procesos que pueden ejecutar los usuarios mira este post:
http://diagonalasterisco.blogspot.mx/2009/04/bombas-fork-que-son.html

+1
0
-1


Agrega al final del título del post (solucionado) si has arreglado tu problema.

Imagen de elnetotaca
+1
0
-1

lo que pasa es que pues no soy tan astuto como para desenvolverme bien con la terminal.
lo que había hecho antes entre la info que encontré fué;

ulimit -a
que me da;
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 64346
max locked memory (kbytes, -l) 64
max memory size (kbytes, -m) unlimited
open files (-n) 1024
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) 8192
cpu time (seconds, -t) unlimited
max user processes (-u) 64346
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimit

x@Hell:~$ ulimit -u
64346

pero de ahí no había encontrado nada parecído a lo que encontré en el link que me pasó LyingB!
Lo mas que encontraba era el comando sudo ulimit -u 800
pero como ya lo mencioné, no funciona.
en un link decía que había que modificar el fichero /etc/security/limits.conf, pero no daba mas pistas.
ahora lo solucioné agregandole % hard nproc 100 al final de ya mencionado fichero.

Gracias por la ayuda a ambos!

+1
0
-1

unzip; strip; touch; finger; mount; fsck; more; yes; unmount; sleep
Es lo que hago a diario....... En Linux mal pensados!

Imagen de LyingB
+1
0
-1

y no solo de la limitación del número de procesos mira el manual del fichero:

man limits.conf

+1
0
-1


Agrega al final del título del post (solucionado) si has arreglado tu problema.