Cifrar ficheros con GPG

¿Porque cifrar datos?

Principalmente es por privacidad. Cada día lanzamos a los cuatro vientos o en nuestro propia maquina tenemos información que puede ser sensible y esta expuesta.

Básicamente el cifrado de datos consiste en la utilización de alguna contraseña antes de enviarlos a su destino, de tal modo que el contenido del mismo no sea legible para los que no tengan dicha clave. Es muy útil en correos, discos y directorios, o cualquier formato de ficheros (vídeo, imagen, texto, etc).

Las contraseñas de cifrado y de descifrado pueden ser iguales (criptografía simétrica) o no (criptografía asimétrica).
GPG es una herramienta multiplataforma de cifrado/descifrado y es software libre licenciado bajo la GPL. Viene de serie en las principales distribuciones. read more

Leer más » 1 Comentario

Lo mejor de mi RSS del 2 al 8 de junio de 2014

Casi en el solsticio de verano podríamos decir que ha sido una semana bien provechosa, al menos para nosotros, en CODECTION hemos liberado nuestro primer plugin para WordPress que hemos subido al repositorio. Entre eso y otras cosas tenemos los siguientes enlaces:

La interactividad con el usuario en formularios web es básica así que esto te viene bien: Fort.js: Indicador de progreso para formularios – Kabytes Hasta que no esté consolidado no me interesara pero siempre viene bien saber que se siguen creando nuevos lenguajes: Swift, Apple lanza un nuevo lenguaje para programar en iOS y OS X – Genbeta Dev Buen ejemplo de plugin básico para WordPress muy funcional y muy bien explicado: Crea tu propio plugin SEO – Ayuda WordPress Tras Ubuntu, Linux Mint es una de las distribuciones más populares (se basa en Ubuntu por cierto):

Qué hacer después de instalar Linux Mint 17 Qiana – Desde Linux read more

Leer más » 1 Comentario

Aprende Shell de Ubuntu Linux con Explain Shell

explainshell_logo

Si alguna vez has tenido interés en conocer en profundidad los comandos de un shell pero los manuales llenos de texto te aburren, existe en internet una página llamada explainshell.com que te permite, de una manera intuitiva, aprender el significado de los comandos y cada uno de las opciones y comandos.

El método es el siguiente, copias y pegas un comando completo con sus opciones y argumentos y, a continuación, te aparecerá el significado de cada una de las partes.

Esta ayuda se basa en los manuales que ofrece Ubuntu para su línea de comandos en su terminal. read more

Leer más » 3 Comentarios

Instalar Webian Shell en Linux

Quizás no sabéis de qué estoy hablando. Webian Shell es una navegador Web, un fork ligero del proyecto Chromeless de Mozilla Labs a pantalla completa.

Sólo es eso, un navegador ligero a pantalla completa para evitar distracciones y centrarnos en los que nos gusta. La Web.

Para instalarlo en Linux aun no han sacado ningún .deb o .rpm ni se encuentra en un repositorio para APT o YUM y mantenernos actualizados. Pero no os preocupéis, bastará con descargarnos este tar.gz, descomprimirlo y lanzar el binario compilado: Webian Shell, desde consola podemos descomprimirlo así: read more

Leer más » 5 Comentarios

Programar en XQuery

XQuery

A través de esta entrada podemos ver de forma breve como escribir nuestro primer programa con XQuery y cómo ejecutarlo en nuestra máquina Linux. A raíz de aquí podremos entender los fundamentos de XQuery.

Escribir un programa “Hola Linux Hispano” en XQuery.

Creamos el programa HolaMundo usando el editor nano (mi preferido, no, no es vi), como se muestra a continuación:

ahornero@Eee:~$ nano holamundo

( : HolaMundo con XQuery : )
let $i := “Hola Linux Hispano!”
return $i

Y una versión aun más simple de HolaMundo de la siguiente manera: read more

Leer más » 7 Comentarios

10 buenos hábitos para manejar la consola (2/2)

Si el otro día os comentábamos los primeros 5 buenos hábitos para manejar la consola, hoy os traemos los siguientes 5 con lo que terminamos esta serie, que como es digo, es una traducción adaptada del original de la librería técnica de IBM.

6. Agrupa tus comandos en una lista

Muchas shells nos proporciona métodos para agrupar conjuntos de comandos juntos en una lista de forma que podamos pasar el total de la suma de sus salidas a través de pipelines o redirigir todos los flujos hacia el mismo lugar. Veamos dos formas de hacerlo.

Ejecutar una lista de comandos en una shell secundaria

Se usan paréntesis para encerrar una lista de comandos en un grupo simple. Haciéndolo de esta forma, los comandos se ejecutan en una nueva shell secundaria y te permite redirigir o si no, recoger la salida del conjunto, como en el siguiente ejemplo.

~ $ ( cd tmp/a/b/c/ || mkdir -p tmp/a/b/c && \
> VAR=$PWD; cd ~; tar xvf -C $VAR archivo.tar ) \
> | mailx admin -S "Archivo"

En este ejemplo, el contenido del archivo es extraído en el directorio tmp/a/b/c mientras que la salida de los comandos agrupados es enviada por correo al administrador.

Ejecuta una lista de comandos en la shell actual

Utiliza las llaves para marcar la lista de comandos que deben ejecutar en la shell actual. Estate seguro que incluyes espacios entre las llaves y los comandos (sino puedes tener problemas de interpretación). También, debes tener cuidado poniendo un punto y coma al final de la lista. Veamos un ejemplo para este caso:

~ $ { cp ${VAR}a . && chown -R guest.guest a && \
> tar cvf newarchive.tar a; } | mailx admin -S "Nuevo archivo"

7. Utiliza xargs además de find

Utiliza xargs como filtro para hacer un mejor uso de la salida de la orden find. De esta forma, podemos hacer algo con la salida de find. La estructura básica es la siguiente:

~ $ find criterio-búsqueda-archivos ruta | \
> xargs acción-a-realizar-con-salida

Podríamos usarlo por ejemplo para borrar todos los ficheros MP3 de un directorio en particular:

find /tmp -maxdepth 1 -name '*.mp3' -maxdepth 1 | xargs rm

Por ejemplo, los del directorio temporal sin mirar en subdirectorios (maxdepth es1).

8. Aprende a conocer cuando grep debería hacer la cuenta

Aunque con el parámetro -c le indicamos a grep que nos devuelva la cantidad de ocurrencias, no siempre funciona de forma correcta porque devuelve una salida por cada fichero, que a su vez muestra en diferentes líneas.

Para ello usamos:

~ $ grep -o and ruta | wc -l
3402

Siendo 3402, para este ejemplo, el número de ocurrencias.

9. Compara algunos campos en la salida, no sólo las líneas al completo

Para búsquedas en las que queremos definir que sólo haga comparaciones para ciertos campos, deberemos utilizar awk en lugar de grep. Veamos un ejemplo muy claro: estamos buscando ficheros cuya última modificación fue en diciembre. Sin embargo, tenemos un fichero de nombre “December”, aunque la modificación no sea en diciembre sí aparecería en el resultado usando grep.

~/tmp $ ls -l /tmp/a/b/c | grep Dec -rw-r--r-- 7 joe joe 12043 Jan 27 20:36 December_Report.pdf -rw-r--r-- 1 root root 238 Dec 03 08:19 README -rw-r--r-- 3 joe joe 5096 Dec 14 14:26 archive.tar ~/tmp $ read more

Leer más » 10 Comentarios

10 buenos hábitos para manejar la consola (1/2)

Esta serie de buenos hábitos al manejar la consola son una traducción adaptada aoriginal titulado: UNIX tips: Learn 10 good UNIX usage habits, aparecido en la parte de desarrolladores del portal de IBM.

1. Crea árboles de directorios de un sólo golpe

En vez de hacer:

~ $ mkdir tmp
~ $ cd tmp
~/tmp $ mkdir a
~/tmp $ cd a
~/tmp/a $ mkdir b
~/tmp/a $ cd b
~/tmp/a/b/ $ mkdir c
~/tmp/a/b/ $ cd c
~/tmp/a/b/c $

Podemos hacer directamente:

~ $ mkdir -p tmp/a/b/c

E incluso podemos hacer árboles definiendo más de una rama por nivel, con las llaves definimos más de un hijo por nivel:

~ $ mkdir -p project/{lib/ext,bin,src,doc/{html,info,pdf},demo/stat/a}

2. Descomprime indicando la ruta, no muevas primero el fichero y luego lo descomprimas
Imaginad que queremos descomprimir el fichero newarc.tar.gz en el directorio tmp/a/b/c pero tenemos dicho fichero en un directorio que no es ése. La solución más típica es mover el fichero y luego descomprimirlo. Esto supone una carga extra que en el caso de ficheros muy grandes supone un problema. Con el parámetro “-C” de tar le podemos indicar la ruta de descompresión:

~ $ tar xvf -C tmp/a/b/c newarc.tar.gz

3. Combina tus comandos con operadores de control
En una misma línea podemos utilizar más de un comando. La forma más simple de hacerlo es con el punto y coma “;”. El problema deriva cuando los comandos que ejecutas dependen el uno del otro, si el primero falla, afecta a los siguientes.

Veamos cómo solucionarlo.

Ejecuta el comando sólo si el anterior ha devuelto un cero (se ha ejecutado de forma exitosa)
Para este caso tenemos el operador &&:

~ $ cd tmp/a/b/c && tar xvf ~/archive.tar

Caso contrario
Si queremos controlar el caso en que el primer comando falle tenemos el operador :

~ $ cd tmp/a/b/c || mkdir -p tmp/a/b/c

Tenemos la opción de controlar ambos casos de una vez:

~ $ cd tmp/a/b/c || mkdir -p tmp/a/b/c && tar xvf -C tmp/a/b/c ~/archive.tar

4. Utiliza las comillas cuando trabajes con variables
Si utilizas variables, al asignarles valores alfanuméricos, texto; deberías utilizar siempre comillas dobles (a no ser que tengas razones para no hacerlo). También puedes poner el nombre de la variable entre llaves para asegurarte que se ejecutan bien las llamadas.

Veamos una serie de ejemplos y casos diferentes, con sus respectivas salidas:

~ $ ls tmp/ a b ~ $ VAR="tmp/*" ~ $ echo $VAR tmp/a tmp/b ~ $ echo "$VAR" tmp/* ~ $ echo $VARa ~ $ echo "$VARa" ~ $ echo "${VAR}a" tmp/*a ~ $ echo ${VAR}a tmp/a read more

Leer más » 8 Comentarios

Matar un proceso por su nombre en Ubuntu

Existen muchas maneras de matar un proceso si sólo sabes el nombre del proceso. Aquí se supone que el proceso se llama ‘programa’, sólo tienes que cambiarlo por el nombre del proceso que quieras eliminar. Aquí están las posibilidades:

 killall -v programa

 pkill programa

 kill $(pgrep programa) 
kill `ps -ef | grep programa | grep -v grep | awk ‘{print $2}’`

Estas técnicas pueden ser útiles en los scripts para el shell en donde puedes no saber el ID del proceso y necesitas eliminarlo por su nombre.

Leer más » 5 Comentarios