jueves, 31 de julio de 2014

Buscar archivos encriptados con gpg en Linux

Veamos como encontrar archivos que estén encriptados con GPG usando la herramienta find,esto nos sirve para encontrar archivos previamente encriptados por si posterior mente queremos o intentaremos abrirlos:


Solo abrimos una terminal y ejecutamos:

find ./ -exec file {} \; | grep 'GPG\|PGP'


Esto funciona para cifrado simétrico como el que vimos en la entrada pasada.

Eso es todo :D

Leer más...

Como encriptar carpetas en Linux con GPG

En esta ocasión vamos a aprender como encriptar una carpeta en Linux,en mi caso Ubuntu 14.04 pero lo podemos hacer con cualquier distribucion de Linux,solo necesitamos tener instalada la herramienta GnuPG que quiere decir : GNU Privacy Guard.

Bien en muchos sistemas con Linux ya biene instalado pero en otros no asi que lo verificamos:

Abrimos una terminal y escribimos:

 which gpg; if [[ $? -eq 0 ]]; then echo "Instalado"; else echo "No instalado"; fi

 Si no lo tenemos instalado buscamos como instalarlo para nuestra distribución de Linux,de hecho el programa que vamos a usar es gpg-zip,que se instala junto a gpg,en sistemas como Gentoo no se si se instale por las flags usadas al compilar asi que revisar bien a la hora de instalar.

Tutorial


Vamos a ver un ejemplo,tengo un codigo en C importante:


Ahora voy a encriptar esa carpeta,en mi caso estoy usando Dolphin en mi caso este explorador de archivos cuenta con una Terminal empotrada,asi que solo la abro:



En otro caso abren una terminal y van al destino donde tienen la carpeta a encriptar:

Bien ahora encriptamos,nosotros vamos a usar una frase para volver a desencriptar(cifrado simétrico) este usa CAST5, esa opcion la llamamos con el parametro -c:

El programa,así vamos hasta el momento:

gpg-zip -c 
Ahora solo debemos mostrar el nombre de salida,al igual que otros programas usamos el parametro -o,asi:

-o salida.gpg
Y por ultimo el nombre de la carpeta,en mi caso prueba,asi queda la linea entera:

gpg-zip -c -o salida.gpg prueba
Al ejecutar esto nos pide una contraseña en GUI:


La escribimos y la reafirmamos y con eso nos crea el fichero cifrado:



Con esto podemos borrar la carpeta original,y podemos ver que es fichero cifrado:


Ahora como lo desencriptamos, con el parametro -d seguido del nombre del gpg,en este caso:

 gpg-zip -d salida.gpg
Nos pide la contraseña y vuelve a "crear" el directorio,eso es todo en este caso usamos un cifrado muy común ya que solo usamos contraseña y tar lo que seria como un comprimido con contraseña(no es asi),pero gpg va mas haya con cifrado asimétrico,firmas,etc.

Aqui un script para realizar lo que vimos en esta entrada de una manera facil:

Solo usamos,para desencriptar:

Nombre_script.sh -d nombre.gpg

Para encriptar:

Nombre_script.sh -e carpeta
No cancelar en fase de encriptacion,que borra el folder y no deja respaldo gpg.

1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
#!/bin/bash

function decripta()
{
    echo "Desencriptando $1"
    gpg-zip -d $1
    if [[ $! -eq 0 ]];
    then
        echo "Hecho"
    else
        echo "Algo salio mal :("
        exit
    fi
    rm $1
}

function encripta()
{
    echo "Encriptando $1"
    gpg-zip -c -o $1.gpg $1
    if [[ $! -eq 0 ]];
    then
        echo "Hecho"
    else
        echo "Algo salio mal :("
        exit
    fi
    rm -rf $1
}

function help()
{
    echo "Uso : $0 [-e] Encriptar
                   [-d] Desencriptar
                                     Archivo"

}

case $1 in
    -e)
        if [[ $2 == '' ]];
        then
            help;
        else
            encripta $2
        fi
    ;;
    -d)
        if [[ $2 == '' ]];
        then
            help;
        else
            decripta $2
        fi
    ;;
    '')
        help
    ;;
esac

Eso es todo :D
Leer más...

jueves, 10 de julio de 2014

Eliminar Pelota que Rebota en KDE imposible

Este tutorial es para poder eliminar el elemento de la pelota roja en el escritorio de KDE,esta pelota esta bien si queremos darle un toque colorido al escritorio,pero lo feo comienza si la configuramos así:


Con rebote automático y con mucha fuerza de rebote,y ni hablar si la encogemos a un tamaño muy pequeño.

Su eliminación es casi imposible y no solo eso,crea un loop que consume mucho cpu :O

Bien para eliminarla vamos a hacerlo desde la consola Konsole,la abrimos y escribimos:

Antes que nada cerramos lo mas importante que estemos haciendo por si algo sale mal:

Eliminamos el escritorio:

kquitapp plasma-desktop

Editamos la configuración:

Con nuestro editor de texto favorito,por ejemplo vim(desde la misma terminal):

vim ~/.kde/share/config/plasma-desktop-appletsrc

O desde un programa gráfico:

kate ~/.kde/share/config/plasma-desktop-appletsrc &

o

gedit ~/.kde/share/config/plasma-desktop-appletsrc &


Buscamos:

AutoBounceEnabled=true



Y lo cambiamos por

AutoBounceEnabled=false

Reiniciamos plama:

 plasma-desktop

Buscamos la pelota y ahora si la quitamos:


Leer más...

Previsualizar Videos y Pdfs en Dolphin Ubuntu

Dolphin muestra vistas previas de  varios archivos como fotos,texto,html,etc pero por defecto no muestra los Videos y PDF,por lo menos en Ubuntu 14.04 con KDE instalado,para poder ver vistas previas hay que hacer varias cosas las cuales muestro a continuación:

1.Instalar lo necesario para ver thumbviews de Vídeos y PDF:

Abrimos una terminal y escribimos:

sudo apt-get install kdegraphics-thumbnailers kffmpegthumbnailer
2. Abrimos la configuración de Dolphin:

Preferencias Dolphin->General->Vistas Previas:
Y activamos todo:


Por ultimo solo activamos el boton de vista previa del menu de Dolphin:


 Eso es todo,ejemplo :


Leer más...

martes, 10 de junio de 2014

Como automatizar nuestros scripts con cron

Este tutorial es para poder crear scripts "croneados",cron viene de chronos(tiempo),así que podríamos decir que ejecutar scripts cada cierto tiempo,pueden ser scripts en Bash,Perl,Awk o lo que sea,programas en C,C++,etc,mas que scripts son tareas o ordenes.

Por eso se llama así la entrada ya que un script son ordenes,mas que nada seria para ejecutar tareas importantes,como por ejemplo algo relacionado con apache,pero también podríamos poner recordatorios de cosas cotidianas.

Cron es un demonio,en los sistemas de tipo Unix es lo que se conoce como un proceso en segundo plano,cron estaría como "vigilando" el sistema cada cierto tiempo si es que se lo pidiéramos.

Vamos a hacer un ejemplo,tenemos que hacer algo a las cinco de la tarde,y se nos olvida :\ para eso esta cron "a pequeña escala" ya que no es un ejemplo muy bueno a menos que estemos todo el dia en la Pc,pero como podríamos crear un recordatorio en Linux?

Para empezar usamos una notificación,este script sirve:


1
2
3
4
#!/bin/bash
# Archivo :  ~/.scripts_cron/recordatorio.sh

notify-send "Recordatorio importante"

Por ejemplo lo vamos a guardar en ~/.scripts_cron/

Creamos el directorio:

Desde terminal tecleamos:

mkdir ~/.scripts_cron/

Y lo guardamos con el nombre recordatorio.sh

Le debemos dar permiso de ejecución ya que cron ejecuta ordenes(ejecutables):

chmod +x ~/.scripts_cron/recordatorio.sh

Luego como hacemos que se ejecute en una hora?

Para esto usamos crontab.

Para ello ejecutamos:

crontab -e

Nos abrirá la configuración de nuestro usuario con el editor de consola que tengamos en la variable de entorno EDITOR,para verla:

echo $EDITOR

Si no sale nada puede que el editor sea vi,para definir nano por ejemplo usamos:

export EDITOR=gedit

Si queremos que sea el editor de siempre,ejecutamos:

echo 'export EDITOR=gedit' >> ~/.bashrc


Bien,incluso creo que cron mismo da la opcion de elegir nuestro editor.

La sintaxis de cron es esta:


minuto hora dia mes dia_semana ejecutable


Explico:

minuto es en formato : 0 a 59 si desean siempre(cada minuto),usar *,si desean minutos específicos usar comas.

hora es en formato : 0 a 23 : 0 son las doce de la noche,las doce del dia son 12,ejecutar cada hora usar *,ejecutar horas seleccionadas usar comas.

dia es en formato : día de mes (1-31[dependiendo de los días del mes]),ejecutar todos los días usar *,ejecutar días seleccionados usar comas.

mes es en formato : 1 a 12 o las primeras tres letras del mes en ingles,para ejecutar todos los meses usar *,para ejecutar mas de un mes,usar comas.

dia_semana es en formato : 0 a 6 (domingo es cero,lunes 1,etc),o usar las tres primeras letras del nombre en ingles,para todos los dias usar *,para mas de un dia usar comas.

ejecutable es en formato : /ruta_ejecutable

Bien como ejecutamos el script a las 5 de la tarde,añadimos al final del archivo:

0 17 * * * /home/tu_usuario/.scripts_cron/recordatorio.sh

Eso es todo,ahora deberíamos ver el recordatorio a las cinco,antes que nos confiemos en esto vamos a probar ya que puede haber errores:


Error 1 no esta activo el demonio:

Para saber si esta activo ejecutamos en terminal:

 ps -ef | grep cron | grep -v grep

Si no muestra nada lo reiniciamos:

sudo service cron restart

Error 2 ejecutar programas con interfaz gráfica:


Si ejecutamos programas que se muestran en la pantalla debemos setear la variable de entorno DYSPLAY a :0

 env DISPLAY=:0

0 17 * * *  env DISPLAY=:0 /home/tu_usuario/.scripts_cron/recordatorio.sh

Error 3 nuestro usuario no puede ejecutar tareas con cron:

 Puede que nuestro usuario este agregado al archivo:

/etc/cron.deny
Si es así no podemos ejecutar cron,asi que editamos el archivo como root.

Por otro lado el fichero cron.allow permite a los usuarios que esten en el ejecutar cron.

Lo malo es que basado en el sistema que usemos puede que este en distintos directorios,lo buscamos con:

sudo find / -name \cron.deny -type f

Si muestra una ruta la editamos,si no no es este el problema.



Eso es todo,bueno antes de que acabe el tutorial debo aclarar que crontab tiene variables especiales,pero no es muy buena idea usarlas ya que se pueden remplazar con la sintaxis mencionada,la unica variable que no tiene remplazo es la acción de que se ejecute cada vez que se reinicie la Pc:

@reboot

Su uso es así:

@reboot script_a_ejecutar

Eso es todo :D


Leer más...