domingo, 25 de marzo de 2018

Error al encender Ubuntu y Linux Mint con Initramfs

Es un error bastante común, que al intentar arrancar nuestro sistema ubuntu, linuxmint o cualquiera de sus derivados la pantalla no arranque en modo gráfico y se quede en terminal con el texto “initramfs”.
Este error aparece justamente después del grup y se refiere a un error en la partición de arranque de nuestro linux.
La solución es bien sencilla.

Inserta el cd o usb de instalación y arranca desde el mismo en modo live.
Una vez en el sistema abre la consola / terminal y escribe:

Aparecerá algo similar a:
Observamos que linux esta instalado en la partición:

Escribe de nuevo en la consola:
Con este comando iniciamos la reparación de la partición.
Cuando termine el proceso, que puede ser mas o menos largo… procede a reiniciar tu linux y veras como inicia correctamente.

Fuente: https://www.sololinux.es/error-al-encender-ubuntu-y-linux-mint-con-initramfs/

martes, 21 de noviembre de 2017

OWASP TOP 10 2017 vs 2013

OWASP TOP 10 2017 vs 2013


Conoce los cambios del nuevo TOP 10 de OWASP, actualizado el día de ayer. OWASP TOP 10 2017.


viernes, 4 de agosto de 2017

dpkg: error al procesar “paquete” (–configure)

dpkg: error al procesar “paquete” (–configure)


dpkg: error al procesar (–configure)
es un error que se da en debian y derivados como ubuntu cuando se rompe un paquete y no se puede eliminar. Para solucionarlo seguimos estos pasos:
En una consola y ponemos:
cd /var/lib/dpkg/info
después
ls |grep “nombre del paquete roto sin comillas” ej: ls |grep nvidia
depués sudo rm “el pakete.postinst”
ej sudo rm nvidia.postinst
luego sudo apt-get update y listo!

fuente: http://srinuxubuntu.homelinux.com/index.php/dpkg-error-al-procesar-acpid-configure/

domingo, 7 de agosto de 2016

Procesando parámetros en la línea de comando en Python

Procesando parámetros en la línea de comando en Python

argparser-01
Seguramente tarde o temprano te llegará el día donde tu script creado en python requiera de uno o varios parámetros en la línea de comandos y entonces pegas el grito en el cielo y sales corriendo a contárselo a tu mejor amigo (claro si tienes amigos!).

Así que manos a la obra…

Leyendo los parámetros

En el siguiente código muestro como leer todo lo que se escriba después del nombre del script
1
2
3
4
5
6
7
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import sys
print "Número de parámetros: ", len(sys.argv)
print "Lista de argumentos: ", sys.argv
Así de simple, y el resultado es algo como lo siguiente:
1
2
3
4
5
6
7
$ python parametros-basico.py
Número de parámetros:  1
Lista de argumentos:  ['parametros-basico.py']
$ python parametros-basico.py -a ALL file1 file2
Número de parámetros:  5
Lista de argumentos:  ['parametros-basico.py', '-a', 'ALL', 'file1', 'file2']
$
Esto ya es pan comido, fué una concha!

Procesando parámetros

Al revisar varias de las opciones, parece que lo más recomendado es usar argparse, así que primero un ejemplo simple, procesando la opción -h o –help.
1
2
3
4
5
6
7
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import argparse
parser = argparse.ArgumentParser()
parser.parse_args()
Y así de simple (esto es la fortaleza de python!), pero y el resultado del código se ve así:
1
2
3
4
5
6
7
8
9
10
11
12
13
$ python argparse-basico.py
$ python argparse-basico.py -h
usage: argparse-basico.py [-h]
optional arguments:
  -h, --help  show this help message and exit
$ python argparse-basico.py --help
usage: argparse-basico.py [-h]
optional arguments:
  -h, --help  show this help message and exit
Ahora veamos algo un poco más complicado, quiero adicionar la clásica opción -v para depurar el proceso, lo que se haría como sigue:
1
2
3
4
5
6
7
8
9
10
11
12
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import argparse
parser = argparse.ArgumentParser()
parser.add_argument("-v", "--verbose", help="Mostrar información de depuración", action="store_true")
args = parser.parse_args()
# Aquí procesamos lo que se tiene que hacer con cada argumento
if args.verbose:
    print "depuración activada!!!"
Y el resultado es:
1
2
3
4
5
6
7
8
9
10
11
12
$ python argparse-mas-una-opcion.py  -h
usage: argparse-mas-una-opcion.py [-h] [-v]
optional arguments:
  -h, --help     show this help message and exit
  -v, --verbose  Mostrar información de depuración
$ python argparse-mas-una-opcion.py  -v
depuración activada!!!
$ python argparse-mas-una-opcion.py  --verbose
depuración activada!!!
Así que ya está más que listo, pero falta el ejemplo avanzado, que tal una opción del tipo “-f filename”, mi lǵica me dice que tiene que ser algo como:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import argparse
parser = argparse.ArgumentParser()
parser.add_argument("-v", "--verbose", help="Mostrar información de depuración", action="store_true")
parser.add_argument("-f", "--file", help="Nombre de archivo a procesar")
args = parser.parse_args()
# Aquí procesamos lo que se tiene que hacer con cada argumento
if args.verbose:
    print "depuración activada!!!"
if args.file:
    print "El nombre de archivo a procesar es: ", args.file
Y el resultado se veee asíiii:
1
2
3
4
5
6
7
8
9
10
$ python argparse-mas-una-opcion-mas-valor.py -h
usage: argparse-mas-una-opcion-mas-valor.py [-h] [-v] [-f FILE]
optional arguments:
  -h, --help            show this help message and exit
  -v, --verbose         Mostrar información de depuración
  -f FILE, --file FILE  Nombre de archivo a procesar
$ python argparse-mas-una-opcion-mas-valor.py -f agenda.txt
El nombre de archivo a procesar es:  agenda.txt
Excelente, la lógica del módulo funciona como se espera y tal es el caso que no he tenido que revisar documento para escribir el último ejemplo, posiblemente Tú también hayas llegado al mismo código.
Así que ahora ya no hay pretexto para no incluir cuando menos un -h en sus códigos heeeee!