Bien vamos a dar mi opinion como usuario de GNU/Linux Debian.
****Advierto: SE HARA LARGO.
Esta opinion es tan valida como cualquiera otra, no es mi intencion general ningun flame ni parecido pero vamos a tratar eso de los virus y GNU/Linux.
¿Existen los virus en GNU/Linux?, claro que si, y root kits, troyanos, etc... todo en mayor o menor medida, pero eso de que no los hay tantos por lo de la cuota domestica, bien veamos...
Los troyanos van dirigidos en el 90% de casos para atacar servidores, y que cuota tienen GNU/Linux y OpenBSD en los servidores?, pues conociendo el tandem LAMP (Linux, Apache, Mysql y Php) es casi del 75%, seguido de un WAMP (Windows, Apache, Mysql y PHP), y en menor medida de Windows+IIS.
Sobre los virus: Si existen, ahi uno llamado bliss si no recuerdo mal, este virus se exige que se ejecute como administrador...
Bien realizamos un bliss --help y que encontramos?...
--unistall-desinfecting
Realmente no es que no los haya, que los hay, y tambien hay muchos crackers dispuestos a desarrollarlos para _putear_ e hacker's para experimental pero ¿por que no tienen el mismo impacto que en Windows?... dejando aparte debates GNU/Linux vs Windows (es cierto que en algunos medios cada fallo es _exagerado_ por los usuarios fanaticos), yo no soy ningun fanatico, o no me lo considero.
Otra cosa a tener en cuenta son los permisos: Una mascara que va desde el 000 al 777.
Todo archivo tiene 5 estados: L, D, R,W y X
Realizando un ls -l podemos ver un archivo asi:
-rw-r--r-- 1 root root 20k jun 11 07:28 fichero
R -> Read (Lectura)
W -> Write (Escritura)
X -> Ejecutable
L -> Link (enlace)
D -> Directory (Directorio)
L y D estan siempre en el primer guion (en el caso de arriba al ser un archivo y no un link o directorio pone un -)
Luego ahi 9 parametros que pueden ser "-, w, r, x" cada fichero pertenece a un usuario y a un grupo:
rwxr-xr--
El primer campo: rwx
El segundo campo: r-x
El tercer campo: r--
Eso se define con el comando chmod y una mascara desde 000 a 777 el primer numero es para el usuario, el segundo para el grupo y el tercero para los otros:
1=Solo ejeucion
2=Solo modificacion
3=modificacion+lectura
4=solo lectura
5=lectura+ejecucion
6=lectura+modificacion
7=lectura+modificacion+ejecucion
Luego aparte, un programa tiene asignado una zona de memoria (creo que era paginacion en base a 4kb) esto ultimo entre comillas no lo tengo claro, asi que dejadlo como _no-del-todo-claro_ bien a que viene todo esto ?
Las distribuciones por defecto tienen permisos mas o menos reestrictivos, los directorios raiz (/), de configuracion (/etc), etc etc todos los que forman _el_sistema_ suelen tener permisos tipo 774 o parecido siendo del root, por lo que cualquier usuario ejecutando un virus solo podria ejecutar cargarse los ficheros a los que tuviera permisos (obviamente si haceis un "chmod 777 / -R" se os va todo a la M*****).
Recuerdo que me llamo la atencion dos frases en contra de esto que me hiciero dudar: "Si si, para que un virus funcione tienes que ejecutarlo como root, pero para instalarlo (make install) hay que ser root": Correcto, pero no es lo mismo instalar que ejecutar.
Otra cosa es que me comentaban que "que gracia daba, ya que lo mas importante es siempre tu directorio en /home, el unico que se pueden cargar los virus"... bien como en casi todo en GNU/Linux hay soluciones; Se programa a CRON (Un "digamos" administrador de tareas) para que cada 24h copie /home/tu_usuario a por ejemplo /root/backup con todos los permisos seteados a 0 automaticamente por root.
O si no quereis usar cron, algo tipo un shellscript (que es lo que yo usaba antes):
-------------------------------------------
#!/usr/bin/bash
cp /home/ /root/backup -RF
chmod 000 /root/backup -R
echo -e "Copia de seguridad realizada y seteada a 000"
-------------------------------------------
Se guarda este shellscript, se le da permisos (771) se le sube a /etc/init.d y se ejecuta como root un "update-rc.d nombre_script stop" y cada vez que se apague la maquina se hara la copia de seguridad, esto es un ejemplo MUY basico, si os fijais esto tiene algunos problemas como ejemplo 100% practico no es, deberia usarse cron para hacerlo cada 24 horas, o en su defecto al apagarse (ideal para el usuario domestico) solo que con la salvedad de una variable que sume +1 ($var=$var+1 o ++) asi la cosa siempre seria backup00 backup01, etc...
Que quiere decir todo este texto? Bien que virus salvo que se ejecuten como root, NA-NAI. otra cosa es los virus usando fallos de seguridad... estos se usan una vez, se corrige el fallo y ya no vuelven a funcionar asi que no es que sean muy interesante dedicarse a los virus en GNU/Linux...
Y por ultimo... creo que es injusto considerar un bug en GNU/Linux o en Windows por CANTIDAD... bugs en GNU/Linux hay MAS que en Windows pero ¿que es un bug? para Debian un bug es por ejemplo una falta de ortografia, que el programa haga una pregunta inecesaria para configurar algo, etc...
Y puestos a eso, Debian en su vr woody tiene 8000 paquetes, ¿es justo comparar con numero fallos (sin contar graves) en windows (que realmente, tiene lo basico, navegador, cliente de correo, algunos juegos y la mayoria es heredado (esto ya lo explicare algun dia, pero vamos, herramientas 100% utiles por defecto... 40 a lo maximo)) con un sistema operativo que es gestionado por personas y sobretodo que gestiona 8000 paquetes? (Un paquete puede ser una libreria o un programa... y ambos pueden tener bugs)...
Los virus y troyanos eso si siempre han sido famosos por explotar vulnerabilidades en 3 cosas: Nucleo (pocas veces), BIND y sendmail.
Ni GNU/Linux es mejor ni peor que Windows, simplemente su metodo de desarrollo (Desarrollo!, nada de "el sistema en si" hace que sea MUY dificil hacer un virus que tenga "impacto" a nivel mundial, quiza se aproveche de una vulnerabilidad y cada X pille a mas de uno en bragas pero es realmente dificil, sobretodo si con un solo comando y conexion a internet se puede actualizar TODO un sistema operativo (Si tienes 8000 paquetes, te actualiza 8000, si tienes 200, te actualiza 200) eso solo si tienen agujeros de seguridad, si no no se actualizan...