lunes, 26 de agosto de 2013

Establecer contraseña de root en Ubuntu, Linux Mint y distribuciones similares

Cuando se instala una distribución de Linux como Ubuntu, Linux Mint o similares; el programa de instalación nos pregunta un nombre de usuario y una contraseña para nuestra cuenta de usuario. Esta cuenta además de permitirnos el acceso al sistema es la que nos permitirá realizar labores administrativas como instalar programas, aplicar actualizaciones, editar archivos del sistema, entre otras tareas.

Los desarrolladores de estas distribuciones lo hacen con el fin de librar al usuario de tener que lidiar con la cuenta root, puesto que su objetivo es brindar la mayor usabilidad posible al usuario promedio.  Si necesitamos realizar una tarea con privilegios de root, solo basta con utilizar el comando sudo que se utiliza en la línea de comandos  o el comando gksudo que hace lo mismo pero de manera gráfica.

Una practica que suelo realizar una vez instalo un sistema operativo es establecer una contraseña a la cuenta con más privilegios del sistema (a la cuenta Administrador si es Windows o a la cuenta root si es Linux), para evitar ataques y estragos en el sistema a causa de tener dicha cuenta desprotegida.

En distribuciones como Ubuntu, Linux Mint y similares es sencillo de hacer, solo basta con ir a la línea de comando y teclear el siguiente comando para comenzar una sesión como usuario root:

sudo su

El sistema nos solicitará la contraseña de nuestra cuenta de usuario (no la del root), la tecleamos y presionamos enter; el prompt del sistema cambiará a # lo cual significa que ya estamos como root (allí tenemos total poder sobre el sistema así que debemos evitar hacer cambios que no conoczcamos). Paso seguido será cambiar la clave de la cuenta root, para eso tecleamos el siguiente comando:

passwd

Como se supone que la cuenta root no esta protegida, el sistema nos preguntará una nueva contraseña para lesta cuenta. Una vez la introduzcamos nos solicitará confirmarla y listo:

Cambiando la clave de root en Linux
Cambiando la clave de root en Linux

Una vez finalizada la tarea tecleamos exit para terminar la sesión como root y listo.

Finalmente algunas recomendaciones básicas de seguridad:
  • Nunca se debe utilizar la cuenta root para tareas del común como editar textos, navegar por internet, chatear, etc..., solo se debe utilizar para realizar tareas administrativas.
  • Una buena practica es establecer una contraseña para las cuentas de administrador una vez se instala el sistema operativo. No hacerlo podría permitir a otro usuario hacer este mismo procedimiento y se podría comprometer nuestro sistema.
  • Siendo consecuentes con el punto anterior, solo deberíamos brindarle privilegios administrativos a usuarios de confianza, así como fomentar  una buen uso de las contraseñas. Malas practicas podrían permitir a usuarios inescrupulosos hacer cambios críticos en el sistema como el cambio descrito en éste artículo.
  • La clave de root debería ser totalmente distinta a la clave de cualquiera de las otras cuentas del sistema; combinando números, letras en mayúsculas y minúsculas además de caracteres especiales.

jueves, 22 de agosto de 2013

Instalar SWI-Prolog

Por cuestiones académicas y laborales ando muy metido en el cuento de la programación lógica, razón por la cual he estado practicando mucho con el lenguaje Prolog. Después de investigar y consultar un poco opté por usar el compilador SWI-Prolog que es software libre, multiplataforma y del que se encuentra mucha documentación en la red.


Instalación en Windows

Su instalación en Windows es muy sencilla, solo basta con descargar el instalador, ejecutarlo y seguir las instrucciones.


Instalación en GNU/Linux

Para el caso de Linux (Debian, Ubuntu, Linux Mint y similares) igualmente es sencillo, primero se debe agregar el paquete a los respositorios:

sudo apt-add-repository ppa:swi-prolog/stable

El sistema nos pedirá nuestra clave de usuario, la suministramos y esperamos a que realice la descarga. Una vez termine debemos realizar una actualización a la lista de paquetes disponibles:

sudo apt-get update

Finalmente instalamos el paquete swi-prolog:

sudo apt-get install swi-prolog

Una vez instalado solo basta con ejecutar en la línea de comando la orden:

prolog

Y tendremos acceso al compilador:

SWI-Prolog en Linux
SWI-Prolog en Linux

Para consultar el soporte de otras distribuciones es recomendable consultar la sección de SWI-Prolog on Linux.


Probando nuestro primer programa en Prolog


Abrimos nuestro editor de textos favorito (bloc de notas, notepad ++, gedit, etc...) y escribimos el siguiente código:


esPerro(pluto).% Hecho 1: Pluto es un perro
esPerro(scooby).% Hecho 2: Scooby es un perro

Nos vamos al compilador y ejecutamos la orden pwd. para saber cual es el directorio de trabajo actual, y copiamos allí el archivo que creamos. Por ejemplo para mi caso el directorio de trabajo es /home/juancho por lo cual el archivo prueba.pl lo copié allí.

Ahora cargamos la base de conocimiento contenida en el archivo al compilador escribiendo el nombre del archivo entre corchetes, en minúsculas, sin su extensión y con punto al final:

Primero pasos en Prolog
Primero pasos en Prolog

Como la base de conocimiento ya esta cargada, podemos comenzar a realizare preguntas; por ejemplo, podemos preguntarle quien es perro:

Primera consulta en Prolog
Primera consulta en Prolog

En el ejemplo adjunto hice la misma consulta dos veces: en la primera termino con punto indicándole al compilador que solo deseo una respuesta mientras que en la segunda termino con punto y coma indicándole que deseo obtener más información. Cuando el tiempo me lo permita, compartiré algunos manuales del lenguaje Prolog y de la programación lógica.

miércoles, 21 de agosto de 2013

Dos libros de divulgación científica que vale la pena leer


Entre la literatura que me gusta, uno de los géneros que busco leer son los libros de divulgación científica (creo que muy en el fondo soy un científico frustrado :( ). Hoy me gustaría compartir dos libros que recomiendo a todo aquel que quiere probar con este tipo de libros.

Por amor a la física - Walter Lewin (con Warren Goldstein)


Walter Lewin es un físico holandés, doctor en física nuclear y profesor por más de 30 años del prestigioso MIT, que se volvió famoso en internet por sus clases de física que han cautivado a millones de personas en todo el mundo. Lo que hace especiales sus clases además de sus explicaciones claras y practicas, son los experimentos que realiza como por ejemplo: colgarse él mismo en un péndulo (como se aprecia en la caratula del libro), colocar su cabeza delante de un martillo en movimiento o a aplicarse una sobrecarga de trescientos mil voltios para explicar los conceptos básicos de la ciencia.

Por amor a la física de Walter Lewin
Por amor a la física de Walter Lewin

Algunos de los temas tratados en el libros son el manejo de las medidas y sus impresiciones, ¿Medimos más cuando estamos acostados que cuando estamos de pie?, ¿Cómo se forman los arco iris y por qué sus colores siempre están en el mismo orden?, la física que se esconde detrás de la música,  la física de los rayos X, las maravillas de la electricida, los misterios del magnetismo, entre otros temas que seguramente nos hemos preguntado en algún momento de nuestras vidas.


Un punto a favor son las explicaciones sin el uso de complejas ecuaciones (o un uso muy “ligth”), el uso de anectotas, experiencias personales y un buen sentido del humor; además de experiencias personasles con su familia, las dificultades que pasó a causa de la segunda guerra mundial y algunos pasajes de su vida como físico pionero en la investogación de los rayos X. Lo más atractivo del libro quizás es que utiliza ejemplos muy del común que permiten una mayor comprensión de los temas tratados, y quen al final cambia la forma de ver de las cosas para muchas de las personas que lo leemos.


La física del futuro - Michio Kaku

La física del futuro por Michio Kaku
La física del futuro por Michio Kaku
Ser autor de varios Best Seller y tener multiples apariciones en programas de televisión hacen tal vez a Michio Kaku uno de los físicos más conocidos en el mundo. Dr. en física, estadounidense de ascendencia japonesa, experto en la teoría de las cuerdas, futurlogo y anfitrión de diversos programas de radio y televisión; le dan la autoridad para hablar abiertamente de lo que nos depara el futuro en el próximo siglo.


En este libro el autor nos expone lo que se prevee veremos en el transcurso del siglo XXI, clasificando dichos avances tecnológicos en tres categorias según su ocurrencia: futuro cecano (hasta el año 2030), en el mediano plazo (entre el año 2030 y el 2070) y fines del siglo (desde el año 2070 hasta el 2100); abordando temas relacionados con la computación, inteligencia artificial, medicina, nanotecnología, energía, viajes espaciales y evolución de la civilización humana hacía una civilización planetaria.

Gracias a su papel como anfitrión de diversos programas de ciencia, el Dr. Kaku ha tenido la oportunidad de conocer de primera mano los avances tecnológicos y experimentos que se han desarrollado en las más importantes universidades y laboratorios del mundo; lo cual le da las bases y fundamentos necesarios para afirmar todo lo descrito en el libro.


Entre los temas tratados se puede destacar el desarrollo de la nanotecnología, de la ingeniería genética que permitirá combatir enfermedades y alterar las características de los futuros humanos; el desarrollo de vehiculos inteligentes que se conduicrán solos; el desarrollo de la realidad aumentada; el desarrollo de los viajes espaciales mediante sondas y posibles ascensores espaciales; la regeneración de organos; la evolución de los robots entre otros temas que vale la pena leer.

martes, 30 de julio de 2013

Editar lista de arranque de GRUB desde Linux Mint

Cuando se instalan Windows y Linux en un mismo equipo lo ideal es instalar primero Windows y posteriormente Linux para que no haya conflicto en el arranque de ambos sistemas operativos. Para el caso de Linux Mint, junto con éste se instala el gestor de arranque GRUB, que se encarga de mostrar al usuario cuando  enciende el computador una lista con los sistemas operativos instalados en el equipo ofreciendo la posibilidad de elegir con cual desea trabajar.

GRUB esta configurado para esperar un determinado tiempo (por defecto 10 segundos), que una vez transcurrido procede a arrancar el sistema operativo que esta marcado por defecto (por defecto es el propio Linux).

Supongamos que por cualquier motivo se necesita cambiar el sistema operativo que esta marcado para arrancar por defecto, y que por ejemplo necesitamos marcar a Windows para que una vez transcurridos esos 10 segundos sean el sistema operativo que arranque.

Para hacerlo desde Linux Mint solo basta con ir a la línea de comandos, y abrir el archivo de configuración de GRUB (/boot/grub/grub.cfg) con el editor de textos gEdit para editarlo. Primero hacemos una copia de seguridad del archivo para evitar desatres:

sudo cp /boot/grub/grub.cfg /boot/grub/grub.cfg.backup

Ahora usamos el comando gksudo que nos permite ejecutar programas en modo gráfico con permisos de root, para poder editar cómodamente el archivo:
gksudo gedit /boot/grub/grub.cfg

Una vez abierto el archivo buscamos la siguiente línea:
set default="0"

Y sustituimos el cero por el valor de la posición que ocupa Windows en la lista de arranque de nuestro equipo contando desde cero. Por ejemplo para mi caso Windows es la quinta opción de la lista por lo cual debo colocar 4:

Arranque con GRUB 2
Arranque con GRUB 2


Si queremos cambiar los 10 segundos por más o menos tiempo, solo basta con ubicar la siguiente línea:

set timeout=10

Y sustituimos el 10 por el valor que queramos teniendo en cuenta que este tiempo está en segundos.

Una vez hechos los cambios reiniciamos y probamos. En caso de problemas solo basta con ingresar en modo recuperación y ejecutar este comando para restaurar la copia de seguridad:

sudo mv /boot/grub/grub.cfg.backup /boot/grub/grub.cfg

sábado, 27 de julio de 2013

El hombre en el laberinto [Leído]


Retomando un poco el blog me gustaría comentar uno de los últimos libros que leí, y que a pesar de sus años (se publicó originalmente en 1.969) logró cautivarme. Se trata del clásico de ciencia ficción llamado El hombre en el laberinto escrito por Robert Silverberg, de quien reconozco conocía poco o nada hasta hoy.

El Hombre En El Laberinto - Robert Silverberg
El Hombre En El Laberinto - Robert Silverberg

El libro narra una historia que se desarrolla en una época en la que la humanidad domina los viajes espaciales y ha colonizado diversos planetas en distintas galaxias. A pesar de estos avances no se ha encontrado vida inteligente en otros mundos, excepto en el misterioso planeta Beta Hydri IV. La narración se centra en la historia Muller, un aventurero y diplomático intergaláctico deseoso de viajar por las estrellas y recibir reconocimiento por sus hazañas. 


Sin embargo, luego de su viaje a Beta Hydri IV como gran embajador de la humanidad la vida de Muller cambia, pues los alienígenas de este planeta alteran su cuerpo y alma a tal punto que es repudiado por la humanos. Por esta razón decide exiliarse en Lemnos, un lejano planeta deshabitado, que está provisto de un laberinto construido por antiguas civilizaciones extraterrestres y que se encuentra lleno de trampas mortales que lo convierten en el escondite perfecto. La tierra está en peligro y se necesita de Muller, rpor la cual se envía una expedición a buscarlo para convencerle de que regrese. Esta expedición debe sortearse con los peligros que ofrece el laberinto mediante sus trampas, además de lidiar con el propio Muller.

A pesar de ser un el libro corto (256 páginas), la historia se torna interesante engancha al lector. En ella se explica el funcionamiento del laberinto, se cuentan detalles de la vida pasada de su protagonista y demás personajes, de las tecnologías y estilo de vida de la época. Al final la historia deja algunos vacíos, sin embargo no por esto dejo de recomendarlo para su lectura. Me llamó la atención ver que muchas tecnologías y artefactos que los futurologos predicen se desarrollarán durante este siglo son expuestas en este libro, elementos que nacieron de la imaginación y visión del autor.



sábado, 15 de junio de 2013

Comando básicos de GNU/Linux [Presentación]


Este documento lo construí para apoyar unas practicas de GNU/Linux en un curso que dicté en la universidad, el cual contiene una lista con los comandos más comunes de los sistemas *UNIX (enfocado a GNU/Linux). Entre ellos se pueden destacar comandos para tareas comunes como manipulación general del sistema, manipulación de usuarios, manipulación de archivos, entre otras.