Problemas más comunes migrando a Gnu/Linux y su posible solución
Este apunte en realidad es una recopilación de muchos requerimientos que los noveles usuarios de Gnu/Linux han hecho (¡y hacen!) en los foros, especialmente el del curso básico. Hay al menos dos tipos diferentes de respuestas:
1) Aquellas que pueden ser fácilmente contestadas y comprendidas por todos.
2) Aquellas que requieren primero una comprensión, aunque sea superficial del SO. Es por este motivo que el apunte está al final del curso y no al principio. Muchas cosas que al comenzar, si se hubieran explicado no habrían comprendido y serían algo así como "magia" hoy ya se pueden comprender mejor y razonar.
De todos modos el apunte no pretende ser el final completo de este tema sino solo una introducción. Seguramente muchos temas deberán volver a verse en el curso intermedio para su mejor comprensión. De todos modos, hoy a esta altura del curso básico ya estamos en condiciones de comprender muchas cosas como para hacer una buena migración.
Entonces quiero recalcar esto: El apunte no pretende darnos detalles de cada tema sino solo introducirnos en estos. Habŕa ya en el curso intermedio y en el curso LinuxIII detalles sobre cada tema. También la sección "Documentos" de nuestra página tendrá importante material. Vaya pues, este apunte a modo de comentario inicial, para comprender un poco más qué es Linux y como podemos llevar a buen puerto una buena migración, ya sea utilizando GNU/Linux como SO único o bien compartiendo en la computadora más de un sistema.
1: No actualizar nunca el Sistema Operativo
Normalmente gnu/linux nos avisa cuando hay cambios y actualizaciones, especialmente si son actualizaciones de seguridad. Hay que recordar que un sistema puede ser más seguro que otro, pero no hay SO perfecto. Esto significa que siempre se encontrarán bugs y agujeros de seguridad, aún en GNU/Linux. Por este motivo es necesario mantenerse actualizado siempre. Esto, que es válido para otros SO también lo es para GNU/Linux.
2: Utilizar contraseñas inadecuadas o débiles, especialmente la de root.
Veamos esto en detalle: Gnu/Linux tiene un sistema de archivos con algunas particularidades de los sistema *nix. Por ejemplo no nos es posible como usuario sin permisos especiales, ingresar y modificar nada del sistema de archivos, salvo nuestro propio subdirectorio /home/[usuario]. Esto es lo que impide que cualquier cracker o aspirante a serlo, no pueda ingresar en nuestro sistema y destruirlo. Pero ¿qué hay si alguien consigue la clave de root? Seguramente estaremos en problemas porque root es quien puede ingresar y modificar cualquier parte del SO. Por este motivo, la contraseña de root debe tener las siguientes características:
a) Debe tener letras mayúsculas y minúsculas.
b) Debe tener números intercalados entre las letras.
c) Debe tener símbolos intercalados entre las letras y los números.
d) Debe tener al menos 8 dígitos.
e) No debe ser una fecha de cumpleaños, el nombre de una calle, algo sacado de un diccionario. Cuanto más original sea la contraseña mejor.
f) Debe ser cambiada al menos una vez por mes. Si por algún motivo un cracker intenta mediante "fuerza bruta" conseguir nuestra clave de root, si hemos tomado las precauciones anteriores, por buena que sea su computadora, tardará mucho tiempo en encontrar la clave, pero seguramente aún así en algún momento lo hará. Por este motivo, es fundamental cambiarla al menos una vez por mes.
La contraseña de usuario también debe cambiarse y ser segura, ya que no queremos que nadie entre en nuestro sistema, así sea en espacio asignado a nuestro usuario.
3. Evitar loguearse gráficamente como root
No debemos loguearnos como root desde el entorno gráfico, ya que esto supone dar facilidades a los atacantes que quieran obtener la contraseña de root. La mayoría de las distribuciones no lo permiten en forma predeterminada.
4: Evitar ingresar al sistema siempre como root
Es muy común escuchar a usuarios nuevos protestar por esto de tener un usuario principal o administrador (root) y luego uno o varios usuarios comunes. En más de una oportunidad, pude saber que hay quien ingresa al SO siempre como root y lo utiliza hasta para leer el correo. Esto es una grave falla de seguridad, ya que al usar siempre root es más fácil para un cracker hacerse de una clave de root y con esto destruir el sistema. Hasta es posible que el atacante cambie las claves y no podamos ingresar más, adueñándose completamente del sistema. Por este motivo, es necesario iniciar sesión siempre como usuario común y solo usar root en aquellos casos en que sean necesarias efectuar tareas administrativas que no puedan ser realizadas como usuario común. Una vez finalizadas estas tareas se debe desloguearse como root y volver al usuario común. Como se dijo antes, root debe ser usado siempre desde consola, nunca desde el entorno gráfico.
5. No tener /home en una partición aparte
Una gran ventaja es tener una partición aparte para /home es que si en algún momento deseamos reinstalar el SO podremos mantener esta partición sin formatear conservando toda la info que hay dentro. Por ejemplo los datos del correo electrónico, nuestros apuntes, y datos personales.
6. No usar la consola y hacer todo desde el entorno gráfico
Quienes en algún momento han usado DOS no tendrán tantos reparos en usar la consola de GNU/Linux, pero si solo han usado el ratón en algún botón tipo "Next", "Next" en el sistema de "las ventanas"...la cosa se complica.
Para entender esto un poco mejor, hay que desterrar un preconcepto:
"En el anterior SO no usábamos línea de comandos". ¿Es esto cierto? Depende. Los usuarios que no son administradores pueden manejarse muy bien con entorno gráfico. Esto es válido para casi todos los SO incluyendo GNU/Linux. Per ¿qué pasa cuando queremos trabajar rápido y preciso aún en el sistema de las ventanas? Es muy sencillo, entramos al sistema desde Inicio ==>Ejecutar ==>y en la ventanita que aparece escribimos "cmd" ¿cmd? ¿qué quiere decir cmd? Simplemente "command" en inglés o sea ¡línea de comandos!. ¿O sea que el sistema de las ventanas tiene línea de comandos? Claro que lo tiene, como todo SO, que se precie de tal. Al dar "Enter" aparecerá una ventana negra con letras blancas, que resultará muy familiar para aquellos que han conocido DOS.
Simplemente puedo decir por experiencia que "10 dedos, pueden más que un ratón". O sea que la rapidez y flexibilidad obtenidos desde línea de comandos, en cualquier SO, es siempre muy superior a lo que podremos lograr con un ratón.
La consola puede resultar mucho más rápida, más precisa (no necesito 10 clic de ratón para hacer algo sino que voy directo al grano), y más segura que cualquier escritorio.
No es que todo deba ser hecho desde consola (aunque hay quién se maneja así), pero al menos las tareas administrativas y aquellas para las que el entorno gráfico no tiene gran desarrollo pueden ser hechas con ventajas desde la línea de comandos. Así que aprender algo de "bash" es casi una obligación de un buen usuario de GNU/Linux. ¡Fuerza que no es tan difícil!
7: No tener un kernel de backup
No es común en gnu/linux, pero ¿qué pasa si el kernel deja de funcionar? Taql vez un programa con algún bug, un ataque exterior, algún borrado accidental como root, etc. Simplemente debemos desde un live cd intentar la recuperación. Pero hay una forma todavía más fácil: Utilizar un kernel anterior que sepamos funciona, como backup. De esta forma desde el booteo podemos seleccionar el kernel anterior y solucionar los problemas con el kernel actual. Tener otro kernel de versión cercana al que estamos usando (por ejemplo la versión anterior) es casi una obligación si queremos tener nuestro sistema asegurado.
8: No hacer backups de archivos críticos
Muchas veces cambiamos la configuración de ciertos archivos, o simplemente los actualizamos y luego...¡sorpresa! el sistema no funciona. Para solucionar estos problemas, antes de realizar cambios al sistema conviene hacer un backup de los archivos de configuración anteriores, de forma que si todo funciona mal, podamos volver a nuestra antigua configuración con facilidad
9. No entender los permisos
Más de una vez como usuarios comunes encontraremos cartelitos que nos dicen "usted no puede modificar, o borrar tal o cual archivo, porque no tiene permisos". Los que están algo familirizados con la consola, muchas veces cambian el dueño de un determinado archivo/directorio o simplemente le dan permisos 777 (permisos para todo) a todo el mundo. Esto es una gran falla de seguridad. Debemos saber usar y modificar los permisos, pero siempre trabajar para que no cualquiera pueda acceder a nuestros archivos. Los permisos constan de tres tipos r (lectura), w (escritura) y x (ejecución). En lugar de rwx se puede usar 777 (el primer 7 es la suma de r (4) + w (2) + x (1) (=7). Si quisieramos un permiso de solo lectura colocaríamos solamente 4, mientras que el 7 por ser la suma de 4 +2+1 es de lectura, escritura y ejecución. Pero...¿porqué hay 3 números y no uno solo? Simplemente porque los permisos se asignan en primer lugar para el usuario, luego para el grupo y finalmente para el resto del mundo. Por ejemplo si tengo un usuario root con permisos totales, un grupo de usuarios con permisos de solo lectura y el resto del mundo nada, escribiría: 740. ¿No lo entiendes? bueno, pues trata de entenderlo, mira bien los apuntes, y sobre todo no intentes cambiar un permiso, al menos mientras no lo entiendas.
10: Ignorar archivos de logs
Vamos a suponer que tienes un niño recién nacido y que no sabe hablar, pero ¿se comunica con nosotros verdad? ¡Vaya si lo hace!. Cuando tiene hambre o quiere que lo cambien, pegará unos alaridos...y seguirá así hasta que se ocupen de él. Con el SO pasa lo mismo, y el sistema permanente nos está diciendo cosas ¿donde? pues en los logs. Por esto es muy importante leerlos, aunque puedan resultarnos largos y tediosos. Aquí podremos detectar problemas de seguridad, errores de booteo, de programas con problemas (bugs), etc. Todo esto puede verse dentro del directorio /var/ subdirectorio /log, o sea /var/log. Es una buena idea darse una pasada por allí de vez en cuando.
Problemas más comunes y su posible solución:
El orden en que se encuentran estos problemas no representa la gravedad o la estadística de problemas más comunes, simplemente se han enumerado en una forma completamente sujetiva y por comodidad, sin embargo estoy seguro que estos son los problemas más comunes y que alguno de ellos nos ha pasado a todos alguna vez.
Primero que todo ¡calma! es solo cuestión de paciencia, verás que hay todo lo que necesitas y si no lo encuentras hay emuladores para poder usar tus programas preferidos de otros SO (pero verás que esto último rara vez es necesario). Cuantas más "horas de vuelo" tenemos con nuestro anterior SO , más nos acostumbramos a ciertos usos ("y yo diría abusos") existentes en otros SO. Debemos tener una mente abierta, ya que para hacer la misma cosa, hay siempre diferentes caminos, aferrarnos a un tipo determinado de programa y a su interfaz gráfica puede ser la mejor manera de fracasar como noveles usuarios de nuestro nuevo SO.
Una alternativa para encontrar el programa que estamos buscando es ir a:
http://www.linuxrsp.ru/win-lin-soft/index-spanish.html
La Tabla de equivalencias / reemplazos / de software análogo a Windows® en Linux.
Por ejemplo en la sesion Redes y Comunicación de la tabla presente encontramos:
| Descripción del programa, tareas ejecutadas | Windows | Linux |
| Administración Remota | VNC, Administrador Remoto, Asistencia Remota, Symantec pcAnywhere, Windows Terminal Server, Rdesktop, Radmin | 1) VNC. 2) ssh / openssh. 3) Remote management is built-in in XFree86. 4) Rdesktop Client. 5) freeS/WAN |
De esta forma es fácil encontrar el programa que estamos buscando y luego bajarlo de Internet o buscar la forma de hacerlo con nuestro gestor de descargas que ya viene incluido en nuestra distribución.
Otra forma de descarga es mediante
desde su buscador es posible encontrar lo que estamos buscando. Para quienes se encuentran un poco "perdidos" dentro de la estructura de freshmeat, existe

Otra forma de obtener paquetes en forma muy sencilla es mediante el proyecto klik. Este, no es solo un repositorio de paquetes sino que cuenta con su propio instalador. Desde su página:

http://dosydoscuatro.wordpress.com/2007/01/19/klik-el-almacen-masivo/
También resultará de utilidad el artículo de ubuntu:
http://www.ubuntu-es.org/index.php?q=node/10733
Finalmente puede suceder (aunque cada vez menos) que la utilidad que buscamos no se encuentre en el repositorio de nuestra distribución preferida, ni en alguna de las alternativas mostradas anteriormente y ¿en ese caso qué hacer?
Podemos utilizar productos emuladores como CrossOver (www.codeweavers.com/products) que permitirán correr en gnu/linux programas que originalmente fueron diseñados para correr en otros Sistemas. Hemos visto correr Dreamweaver®, Flash® de Macromedia-Adobe®; también juegos, etc. sin inconvenientes. Este producto es propietario, y aunque muy barato, no es gratuito.
De todas formas tenemos emuladores como Wine que también funcionarán muy bien y son gratuitos. (www.winhq.com)

http://dosemu.sourceforge.net/

Como vemos las opciones son muchas. Posiblemente al primer contacto con gnu/linux nos de la impresión que no hay utilidades o que las mismas por ser gratuitas son de mala calidad. Nada más lejos de la realidad, el software libre cuenta con una nueva manera de creación de programas y de distribución que lo hace insuperable, no solo en la cantidad de programas disponibles sino también en su calidad como hemos visto en parte en el curso básico y veremos en detalle en el próximo curso intermedio al que te invito muy especialmente.
2) ¿Porqué la distribución gnu/linux elegida funciona tan lento en mi máquina?
Seguramente tu afirmación parte de una comparación. Por ejemplo si tenemos Windows XP® instalado en nuestra máquina tal vez comparemos con nuestro Mandriva Kde de última generación y entonces...¿ De qué año es Windows XP®? Del año 2000 y aquí está un punto que debemos tomar en cuenta. Posiblemente si eligiesemos (¡no lo hagas por favor es solo un ejemplo!) una distribución de gnu/linux del año 2000 correría aún más rápida que nuestos otro SO, pero cada vez que un sistema se actualiza requiere más y más recursos. Entonces es lógico pensar que nuestra misma máquina funcione más ràpido con un sistema más viejo.
Pero por otro lado ¿qué hace mejor un sistema actualizado? Contiene más cantidad de servicios y ha solucionado numerosos problemas de seguridad. Si bien los sistemas antiguos se pueden ir actualizando, siempre los recursos requeridos por una versión más nueva del sistema operativo resultarán ser mayores.
¿Y entonces...cómo lo soluciono?
En principio tomar en cuenta que una máquina nueva y potente no notará la diferencia entre Sistemas Operativos sencillamente porque su capacidad es mayor, pero esto por sí solo no significa que tengas que cambiar tu computadora cada vez que se actualiza el SO. Veremos unas cuantas cosas que podemos hacer:
A.) Optimizar la lectura/escritura del disco rígido (disco duro).
Para esto podemos habilitar ya sea desde la BIOS el acceso Ultra DMA o bien hacerlo directamente desde línea de comandos como root o en su defecto para los usuarios de Ubuntu, como usuarios comunes anteponiendo el comando sudo.
# hdparm -d1 /dev/hda
Pero esto de escribir un comando "que me dijo un amigo me sirve" parece más bien "magia" y no queremos eso ¿verdad?, así que deberíamos saber qué estamos haciendo y ¡¡¡muy especialmente cuando se trata de nuestro disco duro!!!. Entonces antes de hacer nada sería bueno escribir en línea de comandos lo siguiente:
$ man hdparm
para obtener información del propio manual en línea del comando "htparm"
B. ¿Qué servicios tengo habilitados?
Y esto nos lleva a encarar dos problemas:
ISi simplemente se trata de una computadora de escritorio, debemos tener una Swap que sea el doble del tamaño de la RAM. Pero si en nuestra máquina también está trabajando algún servidor web o de una base de datos, o algo que requiera muchos recursos, conviene que la partición Swap sea lo más grande posible (y por supuesto también la memoria RAM)
II) ¿Porqué tengo corriendo en mi sistema cosas como MySql, Apache, Sendmail, Bin, etc? ¿Realmente los uso o me los instaló la distribución sin que les esté dando uso realmente?
Toda aplicación que no se use y se mantenga instalada en el sistema, además de mantener puertos abiertos y ser motivo de posibles ataques, consume recursos que podrían utilizarse en otra cosa. Por este motivo es necesario ver qué servicios están corriendo y eliminar los que no se van a usar. Esto hará que nuestra partición Swap tenga "menos trabajo" y el sistema pueda asignar recursos a otras cosas lo que hará que todo funcione más rápido.
III) El truco de mantener programas residentes, puede ser un arma de doble filo. Supongamos que colocamos residente la suite Open Office , por poner solo un ejemplo. En ese caso veremos qué rápido que abren sus programas, pero...¿cuantas veces al día abrimos programas de la suite? Si estamos en una oficina su uso tal vez sea permanente y entonces sí es una buena idea tenerlo residente. Pero si solo lo usamos un par de minutos al día, estamos sacrificando valiosos recursos, haciendo que todo el sistema corra más lento para acelerar una aplicación que casi no usamos. Por este motivo es importante saber qué programas corren en background y eliminar los residentes que no usemos.
IV) Usar los programas que ocupen menos recursos. Por ejemplo en lugar de utilizar el escritorio KDE que consume muchos recursos, podemos pensar en usar Gnome que consume menos. También es posible utilizar programas que consuman menos recursos como Abiword que funciona muy bien en lugar de otros muy buenos pero no adecuados para equipos con problemas de recursos. Esto no es tomar partido por Gnome, ya que es probable que nuestra computadora esté funcionando perfecto y entonces no tengamos necesidad de cambiar Kde, pero si hay problemas de velocidad es bueno considerar la opción de cambiarlo por algo menos pesado (aunque tal vez menos lindo en cuanto a gráfica).
Finalmente si con todo esto, seguimos viendo el sistema 'leeentooo', tal vez entonces sí ha llegado la hora de considerar una actualización del hardware. Lo primero que haremos será saber con cuanta memoria libre contamos. Esto es fundamental, siempre debe haber algo de memoria sin usar en nuestra máquina.
Una buena opción desde el mundo gráfico es utilizar el monitor de Sistema, lo que nos permitirá ver el funcionamiento del microprocesador, la memoria RAM, etc.

Si nuestra distribución no cuenta con una herramienta como la anterior, tenemos algo más humilde pero igualmente efectivo. Desde línea de comandos escribimos
# free
y aparecerá algo como lo que vemos a continuación:
-/+ buffers/cache: 305196 694088
Swap: 2016116 0 2016116
También contamos con el comando "top" que nos dará muchos más datos que el comando anterior, ya que además del uso de la memoria, nos dará los procesos abiertos, el uso del microprocesador, etc.
Si vemos que la memoria RAM libre es inferior a 30 MB y/o el micro tiene un porcentaje promedio de uso superior al 50% (un uso correcto puede tener en algún momento hasta el 100%, pero luego se estabilizará en valores menores al 50%) entonces será el momento de pensar en cambiar o actualizar ambas piezas. Lo más importante es la memoria, así que si hay algún slot vacío tal vez nuestro problema se solucione agregando memoria RAM. En cuanto al micro, normalmente su cambio supone también la sustitución del motherboard, así que ese ya será un trabajo para pensarlo antes. Pero si vamos a comprar un conjunto mother/micro/memoria, no solo pensemos en que sea nuevo y de la mejor calidad, sino también que sea compatible con Gnu/LInux. De ahora en adelante, cada vez que nos acerquemos a una tienda de venta de hardware exijamos al vendedor que nos provea productos de calidad y con soporte para gnu/lilnux.
La comunidad Linux ha crecido lo suficiente como para exigir estas cosas, y de esa manera lograr que cada vez tengamos menos problemas con el hardware que nos venden.
Antes de comprar hardware visita el siguiente sitio:
http://www.fsf.org/campaigns/hardware.html
