Mostrando las entradas para la consulta sudo ordenadas por relevancia. Ordenar por fecha Mostrar todas las entradas
Mostrando las entradas para la consulta sudo ordenadas por relevancia. Ordenar por fecha Mostrar todas las entradas

Reutilizar últimos comandos en Linux con history

Muchos de los comandos que utilizamos en Linux los solemos invocar varias veces. El propio sistema recuerda dichos comandos y podemos recorrer la lista utilizando las flechas arriba ▲ y abajo ▼ del teclado para recorrer uno por uno los que hemos utilizado últimamente.

Flechas teclado

Para obtener el historial de comandos que hemos utilizado últimamente, lo haremos con:

history

Nos mostrará un listado con un número y el comando asociado a ese número.

    1  sudo -V

    2  root@sololinux-demo:~$ sudo -V

    3  Sudo versión 1.8.21p2

    4  versión del complemento de políticas de sudoers 1.8.21p2

    5  versión de gramática del archivo Sudoers 46

    6  Sudoers I/O plugin version 1.8.21p2root@sololinux-demo:~$ sudo -V

    7  Sudo versión 1.8.21p2

    8  versión del complemento de políticas de sudoers 1.8.21p2

    9  versión de gramática del archivo Sudoers 46

   10  Sudoers I/O plugin version 1.8.21p2root@sololinux-demo:~$ sudo -V

   11  Sudo versión 1.8.21p2

   12  versión del complemento de políticas de sudoers 1.8.21p2

   13  versión de gramática del archivo Sudoers 46

   14  Sudoers I/O plugin version 1.8.21p2root@sololinux-demo:~$ sudo -V

   15  Sudo versión 1.8.21p2

   16  versión del complemento de políticas de sudoers 1.8.21p2

   17  versión de gramática del archivo Sudoers 46

   18  Sudoers I/O plugin version 1.8.21p2root@sololinux-demo:~$ sudo -V

   19  Sudo versión 1.8.21p2

   20  versión del complemento de políticas de sudoers 1.8.21p2

   21  versión de gramática del archivo Sudoers 46

   22  Sudoers I/O plugin version 1.8.21p2root@sololinux-demo:~$ sudo -V

   23  Sudo versión 1.8.21p2

   24  versión del complemento de políticas de sudoers 1.8.21p2

   25  versión de gramática del archivo Sudoers 46

   26  Sudoers I/O plugin version 1.8.21p2

   27  wget https://www.sudo.ws/sudo/dist/packages/1.9.4p2/sudo_1.9.4-3_ubu2004_amd64.deb

   28  ls

   29  sudo gdebi sudo_1.9.4-3_ubu2004_amd64.deb

   30  sudo apt install gdebi-core

   31  apt update

   32  sudo apt install gdebi-core

   33  sudo gdebi sudo_1.9.4-3_ubu2004_amd64.deb

   34  sudo -V

   35  apt update

   36  apt list --upgradable

   37  apt full-upgrade

   38  history

Si por ejemplo queremos ejecutar el comando: sudo apt install gdebi-core que corresponde a la fila 32, utilizaremos el símbolo de final de exclamación ! seguido del número de la fila.

!32

Si queremos ejecutar el último comando que tecleado utilizaremos dos finales de exclamación !!

!!

Sin embargo si queremos limitar la lista de búsqueda, utilizaremos history seguido de número de comandos que queremos visualizar

history 3

Si queremos buscar un script con una cadena de texto determinada utilizaremos history | grep seguido de aquello que queremos buscar, como por ejemplo

history | grep sudo

Si queremos borrar todo el historial de comandos utilizaremos:

 history -c

Si queremos borrar tanto el contenido de la memoria como el contenido del archivo ~/.bash_history tendremos que ejecutar el siguiente comando:

history -c && history -w 

Desde el terminal de Linux, gestión y creación de usuarios

La utilización del terminal es una herramienta muy potente, y con muy bajo coste computacional. Seguidamente enumeramos algunos ejemplos de creación de usuarios ➕, en Linux, sus comandos y opciones:

  • Crear un usuario del sistema, incluyendo su directorio personal.
    • sudo useradd -m nombre_usuario
  • Crear un usuario del sistema, sin incluir su directorio personal.
    • sudo useradd nombre_usuario
  • Crear un usuario del sistema, incluyendo su directorio personal.
    • sudo adduser nombre_usuario
  • Crear un usuario del sistema con un directorio personalizado, dentro de la carpeta home
    • sudo useradd -d /home/nombre_carpeta nombre_usuario
  • Crear un usuario con un directorio personal en una ruta específica.
    • sudo useradd -m -d /carpeta/nombre_carpeta nombre_usuario

Borrar usuarios del sistema📤:

  •  Borrar un usuario del sistema, incluyendo su directorio personal .
    • sudo userdel -r  nombre_usuario
  • Borrar un usuario del sistema, sin incluir su directorio personal.
    • sudo userdel nombre_usuario
  • Borrar un usuario del sistema, sin incluir su directorio personal.
    • sudo deluser nombre_usuario
  • Borrar un usuario del sistema de un grupo.
    • sudo deluser nombre_usuario nombre_grupo

Establecer una contraseña a un usuario del sistema
  • sudo passwd nombre_usuario
Dar permisos de superusuario, sudo, a un usuario 🔐
  • sudo usermod -a -G sudo nombre_usuario
Cambiar el nombre de un usuario
  • sudo usermod --login nuevo_nombre nombre_usuario
Listar usuarios en Linux

Navegador Brave. Te mereces un Internet mejor.

Brave es un navegador web, multiplataforma, de código abierto basado en Chromium, creado por la compañía Brave Software en el año 2016, fundada por el cofundador del Proyecto Mozilla y creador de JavaScript, Brendan Eich.2

Al estar basado en Chromium nos permite la instalación de extensiones creadas para Chrome al igual que nos ocurre con Vivaldi


Brave, el nuevo internet


Un navegador que nos ofrece privacidad real y más velocidad al bucear en la red de redes. Y lo consigue bloqueando todos los anuncios y rastreadores dañinos que aparecen mientras realizamos nuestras visitas a páginas web. También incorpora para nuestra privacidad y seguridad, el modo incógnito con navegación a través de la red TOR, de la hemos hablado en otro post.


Importación y configuración


Pero lo que hace diferente a Brave de otros navegadores que nos ofrecen lo mismo, es la posibilidad, si queremos, de que nos paguen por anuncios. Si os habéis frotado las manos, y pensais en cambiar vuestra residencia a Andorra, que sepáis que  no es tan simple como 10 anuncios un euro. 

Elegimos cuantos anuncios, no invasivos queremos que se nos muestre a la hora. Y dependiendo de cuantos anuncios visitemos obtendremos un número determinado de Tokens de Atención Básica (BAT) que suponen el 70% de los ingresos publicitarios con los que trabaja la compañia.


Brave Rewards

Brave Rewards


Brave Rewards

Acumula tokens mientras navegas

Activa Brave Rewards para acumular tokens mientras navegas por ver anuncios que respetan la privacidad. Puedes configurar el número de anuncios que ves por hora. Actualmente puedes apoyar a tus creadores web favoritos con tus tokens; pero pronto podrás utilizar tokens para acceder a contenido premium, tarjetas de regalo y mucho más. 

 

Estas ganancias las podremos transferir a nuestra carteras virtuales o donar una parte de ellas a los desarrolladores de las páginas, blogs, o servicios de redes sociales o videos que visites; siempre y cuando el desarrollador se encuentre registrado en Brave Rewards

Como he dicho es multiplataforma y actualmente se encuentra disponible para:


La instalación en sistemas Linux basados en Debian:

sudo apt install apt-transport-https curl

sudo curl -fsSLo /usr/share/keyrings/brave-browser-archive-keyring.gpg https://brave-browser-apt-release.s3.brave.com/brave-browser-archive-keyring.gpg

echo "deb [signed-by=/usr/share/keyrings/brave-browser-archive-keyring.gpg arch=amd64] https://brave-browser-apt-release.s3.brave.com/ stable main"|sudo tee /etc/apt/sources.list.d/brave-browser-release.list

sudo apt update

sudo apt install brave-browser

 

Para sistemas Fedora 28+, CentOS/RHEL 8+

sudo dnf install dnf-plugins-core

sudo dnf config-manager --add-repo https://brave-browser-rpm-release.s3.brave.com/x86_64/

sudo rpm --import https://brave-browser-rpm-release.s3.brave.com/brave-core.asc

sudo dnf install brave-browser

 

Y los comandos para la instalación en OpenSUSE 15+

sudo zypper install curl

sudo rpm --import https://brave-browser-rpm-release.s3.brave.com/brave-core.asc

sudo zypper addrepo https://brave-browser-rpm-release.s3.brave.com/x86_64/ brave-browser

sudo zypper install brave-browser

¿Una propina 😋🙏? 

Añadir botón apagado encendido Raspberry

Raspberry es un pequeño ordenador, de bajo coste que podemos utilizar como PC  de sobremesa o como servidor, sin necesidad de conectarle ningún periférico (pantalla, teclado, ratón). En este último caso, la labor de apagado solo es posible desconectando la corriente, con el consabido riesgo de pérdida de datos, y creamos archivos corruptos que impidan y/o dificulten su posterior encendido. También es posible que dañemos la tarjeta SD y debemos sustituirla o formatearla y volver a volcar el sistema operativos e instalar servicios que teníamos instalados y configurarlos otra vez.

Una forma de evitar este tedioso proceso es incluir un botón de apagado, que también nos será válido para volver a encenderlo si lo dejamos en stand-by.


Para ello utilizaremos el interfaz I/O del que dispone la Raspberry



El interfaz GPIO dispone de unos terminal macho numerados. Disponiendo las Raspberry en esta posición su disposición sera de izquierda a derecha y de arriba abajo empezando del 1 al 40


En nuestro caso utilizaremos los pines 4 y 6 donde colocaremos nuestro botón para realizar el apagado de nuestro pequeño ordenador. 

Realizaremos un pequeño bricolaje. La manera más sencilla sería con la utilización de dos cables que en una de sus puntas se encuentran una punteras hembras aisladas y en la otra punta de los cables soldar un pequeño pulsador. También podremos utilizar una placa de pruebas para, más adelante poder ampliar nuestros proyectos.


Dependendiendo del sistema operativo que utilicemos, es posible que tengamos que realizar la instalación de ciertas librerías para que los scripts de Python funcionen correctamente

sudo apt-get install python-is-python3

sudo apt-get -y install python3-rpi.gpio

Los siguientes scripts que manejan los eventos provocados por la pulsación del botón colocado entre el pin 5 y 6 han sido copiados de la página 

Soloelectronicos.com

 Crearemos un archivo ejecutable para Python que llamaremos listen-for-shutdown.py

sudo nano listen-for-shutdown.py

Copiaremos el siguiente script el archivo que hemos creado y guardaremos su contenido


#!/usr/bin/env python


import RPi.GPIO as GPIO

import subprocess



GPIO.setmode(GPIO.BCM)

GPIO.setup(3, GPIO.IN, pull_up_down=GPIO.PUD_UP)

GPIO.wait_for_edge(3, GPIO.FALLING)


subprocess.call(['shutdown', '-h', 'now'], shell=False)

 

Seguidamente moveremos el archivo a la carpeta /usr/local/bin/

sudo mv listen-for-shutdown.py /usr/local/bin/

Y le daremos atributos de ejecución

sudo chmod +x /usr/local/bin/listen-for-shutdown.py

Si tenemos nuestra Raspberry en stand-by, bien por que la hemos apagado desde la línea de comandos o desde nuestro botón de apagado. También es posible encenderlo desde el mismo botón, para ello crearemos un nuevo archivo. 

sudo nano listen-for-shutdown.sh

Y copiaremos y guardaremos el siguiente código:


 #! /bin/sh


### BEGIN INIT INFO

# Provides:          listen-for-shutdown.py

# Required-Start:    $remote_fs $syslog

# Required-Stop:     $remote_fs $syslog

# Default-Start:     2 3 4 5

# Default-Stop:      0 1 6

### END INIT INFO


# If you want a command to always run, put it here


# Carry out specific functions when asked to by the system

case "$1" in

  start)

    echo "Starting listen-for-shutdown.py"

    /usr/local/bin/listen-for-shutdown.py &

    ;;

  stop)

    echo "Stopping listen-for-shutdown.py"

    pkill -f /usr/local/bin/listen-for-shutdown.py

    ;;

  *)

    echo "Usage: /etc/init.d/listen-for-shutdown.sh {start|stop}"

    exit 1

    ;;

esac


exit 0

 

Una vez guardado moveremos el archivo a la carpeta  /etc/init.d/

sudo mv listen-for-shutdown.sh /etc/init.d/

Y le concederemos privilegios de ejecución:

 sudo chmod +x /etc/init.d/listen-for-shutdown.sh

Ahora registramos la secuencia de comandos para ejecutar en el arranque y le pasaremos el parámetros de arranque con los dos siguientes comandos.

sudo update-rc.d listen-for-shutdown.sh defaults

sudo /etc/init.d/listen-for-shutdown.sh start

En mi caso tenia instalado Ubuntu Server como sistema operativo. Y es posible que al ejecutar el script te aparezcan uno o varios mensajes de error. Si es asi te dejo los articulos que publique para solucionarlos, y que vuestro botón de apagado funcione correctamente.

Mensaje de error /usr/bin/env: ‘python’: No such file or directory

Mensaje de error import RPi.GPIO as GPIO ModuleNotFoundError: No module named 'RPi'


Instalar servidor MiniDLNA

Vamos a instalar un servidor DLNA en, por ejemplo Raspberry, para utilizarla de servidor multimedia para poder ver nuestros archivos en nuestra SmartTV. La tecnología DLNA es admitida por la mayoría de dispositivos multimedia actuales, a diferencia de utilizar un servidor PLEX en la que tenemos que instalar la APP en nuestra SmartTV y registrándose en su plataforma.

Es un servidor muy sobrio y de un consumo de recursos muy reducido, el aspecto es el de un explorador de archivos, y su reproductor multimedia muy simple. Pero cumple su función de servidor de videos, música e imágenes en nuestra red local.

También podríamos instalar nuestro servidor DLNA en un viejo ordenador en el que hubiéramos instalado un Linux con alguna de las múltiples distribuciones basadas en Debian.

Accedemos a nuestra Raspberry o nuestro servidor casero a traves de SSH e instalamos con privilegios de root la aplicación MiniDLNA también conocida como ReadyMedia

sudo apt-get install minidlna

 Iniciaremos el servicio:

sudo service minidlna start

Y habilitaremos minidlna para que el servicio sea levantado cuando iniciemos nuestro servidor local 

sudo service minidlna enable

Deberemos acceder al archivo de configuración para indicarle, entre otras cosas, la ruta donde se encuentran los archivos que queremos mostrar en nuestra LAN. Estos se pueden encontrar en un disco duro externo que habremos conectado a través del puerto USB de nuestro servidor doméstico.

sudo nano /etc/minidlna.conf

Accederemos a un archivo de texto plano donde cambiaremos

  • Ubicación de los archivos de video
media_dir=V,/media/downloads/videos
  • Ubicación de los archivos de música: 
media_dir=A,/media/downloads/musica
  • Ubicación de los archivos de imagen
media_dir=P,/media/downloads/fotos

  • Ubicación de la base de datos que almacenará los archivos que se mostraran
db_dir=/var/cache/minidlna

  •  Si queréis almacenar logs de lo que pasa en el servidor tienen que descomentar esta línea. Los logs los podréis encontrar en la ubicación.
log_dir=/var/log

  •  Puerto en el que escuchara el pequeño servidor web, que nos mostrara una pequeña información de nuestro servidor. No podremos realizar ninguna acción, como por ejemplo la de configuración
port=8200


MiniDLNA status

  •  Nombre con el que se anunciara en nuestros clientes multimedia
friendly_name=Pi

  • Seleccionamos la opción yes. De este modo, cuando se borre o copie contenido del servidor se actualizará la información de la base de datos

inotify=yes

  •  Definimos los nombres que deben tener las caratulas de un audio o vídeo. Si queremos definir una caratula para una película podemos hacerlo guardando una imagen con el nombre cover.jpg o Cover.jpg en la carpeta que contiene la película. El tamaño recomendado es de 160×160 pixeles
album_art_names=cover.jpg/cover.jpg

  • En esta linea configuramos el intervalo de segundos que nuestro servidor anunciara su presencia en la red. Un buen intervalo serian cada 60 segundos
notify_interval=60

Una vez modificado el archivo a nuestro gusto, lo guardaremos y reiniciaremos el demonio para que la nueva configuración tenga efecto:

sudo service minidlna restart

MiniDLNA usa la propiedad del Kernel inotify para detectar las modificaciones en cada una de las carpetas que almacena contenido. Al detectarse una modificación se actualiza el contenido de la base de datos /var/cache/minidlna/files.db.


Para que inotify pueda monitorizar las modificaciones tendremos que cambiar sus límites. Para fijar un nuevo límite ejecutaremos el siguiente comando:

sudo echo 65538 > /proc/sys/fs/inotify/max_user_watches 

sudo service minidlna restart

Si por alguna razón deseamos reconstruir la base de datos:

sudo service minidlna force-reload

Y listo ya tendríamos un servidor multimedia en nuestra red local y podríamos ver nuestros videos en nuestro:

  • SmartTV
Botón Source, Entrada externa o Fuente

 


  • En otros dispositivos podemos utilizar el reproductor multimedia VLC 
Accederemos a Plug’n’Play Universal y esperamos a que VLC encuentre nuestro servidor miniDLNA y nos permita reproducir su contenido.

Como resolver dependencias rotas

Como resolver dependencias rotas de una instalación basada en Debian.

En una entrada anterior intentaba solucionar la instalación fallida de un paquete:

Resolver dependencias al instalar un paquete

Pero al desinstalar o purgar una aplicación, puede que por error se borró alguna librería de la que dependa otro programa o servicio. Una de las formas que nos recomienda el propio sistema es la ejecución del script:


sudo apt --fix-broken install


Dependencias rotas

 


Si no ha habido éxito, como fue mi caso ejecutaremos los siguientes comandos

Lo primero que haremos es intentar configurar paquetes que han sido desempaquetados, pero no configurados. Para ello ejecutaremos el siguiente comando en la terminal:


sudo dpkg --configure -a


Seguidamente limpiaremos la cache local de paquetes .deb 


sudo apt-get clean && sudo apt-get autoclean


Regeneramos la caché de los repositorios con el parámetro –fix-missing. De este modo intentaremos detectar y reparar problemas de dependencias en nuestro sistema operativo.


sudo apt-get update --fix-missing


Corregiremos las dependencias rotas. Para ello ejecutaremos el siguiente comando en la terminal: 


sudo apt-get install -f

 

En este punto mi problema se solucionó, restaurando el sistema y pudiendo ejecutar


sudo apt-get dist-upgrade


Para poder actualizar el sistema. 

Montar disco duro usb en linux

En está ocasión quería montar un servidor dlna en una Raspberry. Para ello tenía que montar un disco duro externo en un sistema basado en Linux.
Antes de nada hay actualizar nuestro sistema para que reconozca el sistema de archivos utilizado por Windows NTFS, por que es el sistema en el que esta formateado mi disco duro y no quiero formatearlo para no perder datos.

sudo apt-get install ntfs-3g

Luego deberemos averiguar si nuestro sistema ha reconocido nuestro disco duro y donde se encuentra localizado para poder montarlo

sudo blkid

/dev/sda2: LABEL="Seagate Expansion Drive" UUID="9026****626679C4A" TYPE="ntfs" PARTLABEL="Basic data partition" PARTUUID="74fd**27-****-483e-bc23-******0"

/dev/mmcblk0: PTUUID="b78***38" PTTYPE="dos"

/dev/sda1: PARTLABEL="Microsoft reserved partition" PARTUUID="fca0fbe2-***-49b4-8e51-***ec23"

En mi caso el disco duro se encuentra en el directorio:

/dev/sda2

Crearemos un directorio donde montaremos nuestra unidad usb y donde accederemos a su contenido.

sudo mkdir /media/discousb

Le indicaremos a nuestro sistema operativo que monte de forma automática nuestro disco duro en la carpeta que hemos creado. Para ello deberemos editar el archivo fstab que se encuentra en el directorio etc

sudo nano /etc/fstab

Lynx navegador web para terminal

Lynx aparte de ser un lince es un navegador web y cliente de gopher en modo texto, que podremos utilizar en nuestro terminal.

Es muy común que para aliviar la carga de potencia sea necesario prescindir del entorno gráfico. Pero que a la vez tengamos que consultar manuales o artículos de ayuda accediendo a páginas web que se encuentran en internet. Para estos casos podremos utilizar Lynx, el entorno es muy simple y en modo texto, aunque si que podremos visualizar imágenes accediendo a los hiperenlaces.



Para poder instalar Lynx:

Ubuntu  

sudo apt install lynx

 

Debian

 sudo apt-get install lynx


 Arch Linux

 sudo pacman -S lince


 Fedora

sudo dnf instalar lynx


 OpenSUSE

 sudo zypper instalar lynx


MS-DOS

 http://ftp.gnu.org/pub/gnu/gzip/gzip-1.2.4.msdos.exe

Una vez instalado el funcionamiento es muy simple, solo tendremos que invocar al navegador y la dirección que deseamos visitar. En este caso si queremos acceder a enfaseterminal.com utilizariamos secuencia de comando:

lynx enfaseterminal.com


 Para navegar utilizaremos las teclas ⇑⇓ o la barra de espaciadora para ver la siguiente página

Para visitar el hipervínculo utilizar

Para volver hacia atrás 

Para poder salir de la navegación utilizar Q

Recuerda que es un navegador simple y no soporta los nuevos estándares multimedia

El navegador que está utilizando no es compatible con las últimas tecnologías web (HTML5 y CSS3) necesarias para el funcionamiento correcto de este sitio web. Para conseguir una plena compatibilidad le recomendamos estos otros navegadores: Chrome, Firefox, Safari e Internet Explorer (en sus dos últimas versiones y con la vista de compatibilidad desactivada).

 

En caso de necesitar ayuda utlizar el comando

lynx

 

Cómo cambiar el idioma del teclado en terminal Linux

 

Teclado en ingles

Al realizar una instalación en Linux es posible configurar el tipo de teclado utilizado y la configuración regional, para que podamos las características del idioma castellano. Pero si no ha sido posible, podremos configurarlo a posteriori. Este artículo y el anterior están muy relacionados, o sugiero echar un vistado para una correcta configuración Cambio de idioma y caracteres a español terminal Linux

El comando que utilizaremos será

setxkbmap

Pero para ello deberemos tener instalado la libreria x11-xkb-utils

sudo apt-get install x11-xkb-utils

Y ahora si cambiaremos la configuración de distribución del teclado español

sudo setxkbmap es

o

sudo setxkbmap -layout 'es,es' -model pc105

 

Para que esta nueva configuración tenga efecto deberemos reiniciar el sistema

Instalar servidor base de datos MariaDB

Uno de los primeros gestores de bases de datos con licencia GNU GPL que utilice, en un proyecto anterior, fue MySQL. En aquel entonces cree una pagina web dinámica, programada en PHP que obtenía los datos, utilizando SQL. Aquella idea quedó aparcada por falta de tiempo, pero ahora quería retomar parte de aquel antiguo proyecto.
Años después me he encontrado que los creadores de MySQL abandonaron la compañía para crear una nueva, MariaDB. Un nuevo gestor que evolucionó y han mejoró con respecto al su predecesor.


MySql vs MariaDB
Para instalar el servidor MariaDB podemos descargarla de la página oficial. Pero también se encuentra en los repositorios oficiales:

sudo apt install mariadb-server mariadb-client
 
Con este script instalaremos el servidor y el cliente del gestor. Seguidamente arrancaremos el servicio

sudo systemctl start mariadb.service

Y lo habilitamos para que cuando lo haga el sistema.

sudo systemctl enable mariadb.service

 Una vez instalada el servidor y el cliente en nuestra distribución. Aseguramos la instalación lanzando el comando:

sudo mysql_secure_installation 

 Enter current password for root (enter for none): Pulsa enter Introduzca la contraseña actual para root (ingrese para none): Pulse Enter
 Set root password? [Y/n]: Y ¿Establecer contraseña del root? [Y/n]: Y
 New password: Enter password Nueva contraseña: Introduzca contraseña
 Re-enter new password: Repeat password Reescribir nueva contraseña: Repetir contraseña
 Remove anonymous users? [Y/n]: Y¿ Borrar usuarios anónimos? [Y/n]: Y
 Disallow root login remotely? [Y/n]: Y¿No permitir el acceso al root desde remoto? [Y/n]: Y
 Remove test database and access to it? [Y/n]:  Y ¿Borrar Bases de datos Test y su acceso? [Y/n]: Y
 Reload privilege tables now? [Y/n]:  Y ¿Recargar privilegios a las tablas ahora? [Y/n]: Y



En este caso solo le vamos a permitir el acceso al administrador solo en local. De forma predeterminada no esta permitida el acceso en remoto a ningún usuario. Si tenemos la necesidad de hacerlo en este post te explico como.


Comprobaremos que funciona accediendo con el mismo cliente que hemos instalado:

sudo mariadb
 

Accediendo al gestor MariaDB

 



No tiene suficiente espacio libre en /var/cache/apt/archives/

 No tiene suficiente espacio libre en /var/cache/apt/archives/


sudo du -sh /var/cache/apt/archives

Quedarse sin espacio no es lo más habitual si utilizas grandes computadoras. Pero es problema muy común en ordenadores antiguos, o como es el caso en una Raspberry a la hora de actualizar el sistema operativo.

Primero vamos a averiguar que cantidad de memoria está ocupando los archivos en la caché. Utilizaremos el comando du (Uso de Disco) con el argumento -sh

  • -s, pantalla Resumir sólo un total para cada argumento.
  • -h, tamaños de impresión. Formato legible por el hombre (por ejemplo, 1K 234M 2G)

sudo du -sh /var/cache/apt/archives


sudo apt clean

En mi caso el espacio ocupado por la caché de los repositorios es de 85Mb. Y después de utilizar el comando apt clean reducimos al tamaño de una carpeta vacía.
sudo apt clean

sudo apt-get clean

 

 




Conectar a servidor base de datos MariaDB

Puede ser el caso que además de gestionar una base de datos SQL en local, necesitamos gestionarla en remoto. En la mayoría de los servidores de hospedaje web, no nos permiten conectarnos a la servidor de base de datos en remoto, tenemos que hacerlo en local. Una de las herramientas más utilizadas es PhpMyAdmin. Este caso en concreto he instalado un servidor de base de datos MariaDB Server en una Raspberry. Tengo muy oxidado el lenguaje SQL como para acceder al servidor a través de SSL y realizar todas las tareas de instalación de rablas y mantenimiento desde el cliente de MariaDB. Quiero gestionarla en un entorno más amigable, pero no quiero instalar a mayores un servidor Apache con PHP para poder utilizar PhpMyAdmin.

Logo MariaDBMariaDB  es un sistema de gestión de bases de datos derivado de MySQL con licencia GPL (General Public License). Es desarrollado por Michael (Monty) Widenius —fundador de MySQL—, la fundación MariaDB y la comunidad de desarrolladores de software libre.1​ Introduce dos motores de almacenamiento nuevos, uno llamado Aria —que reemplaza a MyISAM— y otro llamado XtraDB —en sustitución de InnoDB—. Tiene una alta compatibilidad con MySQL ya que posee las mismas órdenes, interfaces, API y bibliotecas, siendo su objetivo poder cambiar un servidor por otro directamente.
Aunque el tutorial es para MariaDB, este puede ser extensible si así fuera un servidor de MySQL.

De forma predeterminada y por seguridad no permiten el acceso remoto, solo se permite acceso atraves de localhost.

Una vez instalada el servidor y el cliente en nuestra distribución. Aseguramos la instalación lanzando el comando:

sudo mysql_secure_installation 

Enter current password for root (enter for none): Pulsa enter
 Introduzca la contraseña actual para root (ingrese para none): Pulse Enter
 Set root password? [Y/n]: Y
 ¿Establecer contraseña del root? [Y/n]: Y
 New password: Enter password
 Nueva contraseña: Introduzca contraseña
 Re-enter new password: Repeat password
 Reescribir nueva contraseña: Repetir contraseña
 Remove anonymous users? [Y/n]: Y
¿ Borrar usuarios anónimos? [Y/n]: Y
 Disallow root login remotely? [Y/n]: Y
¿No permitir el acceso al root desde remoto? [Y/n]: Y
 Remove test database and access to it? [Y/n]:  Y
 ¿Borrar Bases de datos Test y su acceso? [Y/n]: Y
 Reload privilege tables now? [Y/n]:  Y
 ¿Recargar privilegios a las tablas ahora? [Y/n]: Y

No vamos a permitir al root acceder desde remoto, no es considerado de una buena praxis de seguridad que el administrador se pueda conectar en remoto. Por el contrario vamos a crear un usuario nuevo y le vamos a dar privilegios de acceso desde remoto. En este caso indicaremos que el usuario se puede conectar desde cualquier equipo de nuestra LAN. Con 192.168.100 indicamos que subred se puede conectar usando el carácter % como comodín para indicarle que cualquier equipo de esta. También podríamos limitar aun más indicando la dirección ip del equipo desde el que únicamente puede acceder en remoto. Creando un entorno aun más seguro

CREATE USER 'nuevo usuario'@'192.168.100.%';
 
GRANT ALL PRIVILEGES ON *.* TO 'nuevo usuario'@'192.168.100.%' IDENTIFIED BY 'nueva contraseña' WITH GRANT OPTION;

Seguidamente configuraremos de forma manual, no solo el acceso en local, si no el acceso en remoto.
Deberemos localizar los archivos de configuración de MySQL o de MariaDB.
  • /etc/my.cnf                         
  • $MYSQL_HOME/my.cnf
  • /etc/mysql/my.cnf                      
  • SYSCONFDIR/my.cnf                     
  • DATADIR\my.ini                           Windows
Editando el archivo de configuración /etc/mysql/my.cnf

sudo nano /etc/mysql/my.cnf
 

# The MariaDB configuration file
#
# The MariaDB/MySQL tools read configuration files in the following order:
# 1. "/etc/mysql/mariadb.cnf" (this file) to set global defaults,
# 2. "/etc/mysql/conf.d/*.cnf" to set global options.
# 3. "/etc/mysql/mariadb.conf.d/*.cnf" to set MariaDB-only options.
# 4. "~/.my.cnf" to set user-specific options.
#
# If the same option is defined multiple times, the last one will apply.
#
# One can use all long options that the program supports.
# Run program with --help to get a list of available options and with
# --print-defaults to see which it would actually understand and use.

#
# This group is read both both by the client and the server
# use it for options that affect everything
#
[client-server]

# Import all .cnf files from configuration directory
!includedir /etc/mysql/conf.d/
!includedir /etc/mysql/mariadb.conf.d/

Nos indica los directorios donde se encuetra el archivo que estamos buscando para editarlo. 50-server.cnf

sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf

Buscaremos la sección [mysqld]  donde editaremos los valores que nos permitan conexiones externas. Este es un ejemplo real de configuración que me ha permitido conectarme al servidor desde otro equipo.

[mysqld]

#
# * Basic Settings
#
user                    = mysql
pid-file                = /run/mysqld/mysqld.pid
socket                  = /run/mysqld/mysqld.sock
port                    = 3306
basedir                 = /usr
datadir                 = /var/lib/mysql
tmpdir                  = /tmp
lc-messages-dir         = /usr/share/mysql
#skip-external-locking

# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
#bind-address            = 127.0.0.1
bind-address            = 0.0.0.0

.......................................................

 # * Security Features
#
# Read the manual, too, if you want chroot!
#chroot = /var/lib/mysql/
#
# For generating SSL certificates you can use for example the GUI tool "tinyca".
#
#ssl-ca = /etc/mysql/cacert.pem
#ssl-cert = /etc/mysql/server-cert.pem
#ssl-key = /etc/mysql/server-key.pem
#
# Accept only connections using the latest and most secure TLS protocol version.
# ..when MariaDB is compiled with OpenSSL:
ssl-cipher = TLSv1.2
# ..when MariaDB is compiled with YaSSL (default in Debian):
#ssl = on

Te explico de forma más detallada las lineas a editar para un correcto funcionamiento. 

  •  port                    = 3306 Es el puerto por defecto, no es necesario cambiarlo, pero si fuera necesario podríamos especificar otro puerto de accesos.
  • #skip-external-locking Comentamos esta linea para permitir que el servidor sea accesible desde el exterior. Comentamos añadiendo el carácter #
  • #bind-address            = 127.0.0.1 Tambien aañadimso el caracter # para comentar esta linea.
  • bind-address            = 0.0.0.0 Añadiremos una linea con los parametros indicados.
  • ssl-cipher = TLSv1.2 Esta parte hay que tenerla en cuenta si tenemos problemas a la hora de concetar con los certificados. Al utilizar OpenSSL descomentamos esta linea
  • #ssl = on Y comentamos esta otra. Que era la que estaba activa de forma predeterminada pero, que en mi caso no me permitía conectarme.
Una vez modificado las lineas señalas. Guardamos y salimos del editor de textos. Y reiniciamos el servicio.

sudo systemctl restart mariadb.service

Tenemos que tener en cuenta, si en nuestro servidor, tenemos instalado y corriendo un cortafuegos, debemos permitir las conexiones a través del puerto 3306, si lo hemos dejado por defecto, o el puerto que asignemos al servicio. Para añadir el permiso abrir el mencionado puerto utlizando ufw seria:

sudo ufw allow 3306/tcp

Y si solo vamos a permitir el acceso en remoto a un equipo, con una dirección ip en concreto:

 sudo ufw allow from 192.168.100.2 to any port 3306

GImageReader lector OCR simple y ligero

El reconocimiento óptico de caracteres expresado con frecuencia con la sigla OCR (del inglés Optical Character Recognition), es un proceso dirigido a la digitalización de textos desde una imagen o por ejemplo de un PDF. En muchos casos tenemos una imagen o un PDF que contiene texto, bien obtenido desde una fotografía, o de un escaneo de un documento, y nuestra intención es obtener ese texto para poder ser usado en: un articulo, o en los apuntes de la escuela. Para evitar mecanografiar la fotografía, hay programas que son capaces de reconocer el texto que contiene el archivo gráfico, capturarlo y así poder ser exportado a otro documento, o permitir un copia-pega.


GImageReader es un lector OCR simple, ligero, gratuito y multi-plataforma para ordenador que nos facilitara la tarea de obtener texto de imágenes o de archivos PDF.

Las funciones que esta aplicación permite realizar son las siguientes:

  • Importar documentos PDF e imágenes desde el disco, dispositivos de escaneado, porta papeles y capturas de pantalla.
  • Procesar múltiples imágenes y documentos de una sola vez
  • Definir del área de reconocimiento manual o automática
  • Reconocer a texto sin formato o documentos hOCR
  • Mostrar el texto reconocido directamente junto a la imagen
  • Procesar el texto reconocido, incluida la revisión ortográfica
  • Importar documentos o imágenes cuyo texto se encuentre en diferentes idiomas
  • Generar documentos PDF a partir de documentos hOCR


- Generar documentos PDF desde el documento hOCR

  • Ubuntu

    Ubuntu: Disponible en ppa:sandromani/gimagereader
Se encuentra disponible en los repositorios de las principales distribuciones linux, y es posible instalarlo desde terminal:
  • Fedora:
yum install  tesseract tesseract-langpack-es gimagereader

  • Aprcity o derivados de Arch

yaourt -S gimagereader

  Si no tenemos tesseract instalado, toca ejecutar:

sudo pacman -S tesseract tesseract-data-eng tesseract-data-spa

    •  En Ubuntu y derivadas como Linux Mint

    sudo add-apt-repository ppa:sandromani/gimagereader

    sudo apt-get update

    sudo apt-get install gimagereader tesseract-ocr tesseract-ocr-spa tesseract-ocr-eng

     El funcionamiento, como ya he dicho, es muy simple. En este caso vamos a hacer una captura de pantalla que contiene texto e imágenes, y vamos a digitalizar el texto para exportarlo a un PDF.

    Pegar imagen que ha sido copiada y capturada en el navegador

    Añadimos un archivo, pegamos una imagen o realizamos una captura de pantalla
    Se nos mostrara el documento seleccionado
    Podemos ajustar de forma manual el área que queremos capturar o dejar que el programa haga su magia y reconozca los textos que contiene.
    Si fuera necesario podemos manipular la imagen para aumentar o disminuir el brillo, contraste, resolución de pantalla, o invertir los colores.
    Una vez se muestran las áreas que contienen el o los texto que queremos digitalizar, le indicaremos en que idioma se encuentra escrito, gImageReader reconocerá el texto y nos mostrará a continuación los textos que ha reconocido. 
    Podremos copiarlo o guardarlo en en un archivo de texto plano, que nos permitirá manipular más tarde.
    En este caso te he descrito los pasos para una imagen, pero el potencial de la aplicación va más allá por que es capaz de digitalizar documentos PDF que no sean editable y exportarlo a un PDF que puedas modificar.
    Vista rápida de la captura de texto de una imagen

    Servicio multimedia con Plex

    Una alternativa para organizar nuestros archivos multimedia es instalando un servidor Plex. Plex es un software privativo, que podremos utilizar de forma gratuita con algunas limitaciones, para embellecer nuestra bibilioteca multimedia y añadir portadas y metadatos, que si utilizamos un servidor DLNA Por ejemplo en el cliente para Smartphone solo nos permite ver un minuto en streaming. En este caso vamos a instalar su servidor en una Raspberry en la que hemos conectado un disco duro, donde se encuentran alojados nuestros archivos. Pero también podremos instalarlo en nuestro ordenador o en un NAS. Esta aplicación es multiplataforma y es posible instalar el servidor y/o su cliente en múltiples dispositivos y plataformas. La APP se encuentra disponible en el catálogo de las principales Smart TV.




    Para tener la garantía de que nuestro servidor se encuentre actualizado en todo momento, añadiremos su repositorio en en nuestra lista.

    echo deb https://downloads.plex.tv/repo/deb public main | sudo tee /etc/apt/sources.list.d/plexmediaserver.list

    Añadiremos las fimras del nuevo repositorio
     
    curl https://downloads.plex.tv/plex-keys/PlexSign.key | sudo apt-key add

    Refrescaremos las lista de repositorios:

     sudo apt-get update

    Y una vez que acabe la operación de actualización realizaremos la instalación de nuestro servidor Plex

     sudo apt-get install plexmediaserver

    Instalar Plex server
     
    Al final de la instalación nos pedira confirmación para reescribir el archivo que hemos creado al principio donde incluimos donde se encuentra los repositorios de Plex. Confirmaremos la acción por omisión que sera N.

    Y ya tendremos  instalado nuestro servidor multimedia. La configuración la realizaremos desde el servicio web creado por le servidor.


    En tudireccionip pondremos la dirección ip donde hemos instalado nuestro servidor multimedia Plex.



     La utilización de Plex requiere el registro de una cuenta. Si disponemos de ella podemos vincularlo a nuestro servidor, si no es asi deberemos crear una cuenta nueva.




    Nos recuerdan que podremos aumentar las prestaciones si pagamos por el servicio premium.




    Daremos nombre a nuestro servidor y añadiremos bibliotecas vinculadas a las carpetas donde se encuentren nuestros archivos mutiltimedia. Caundo más organicemos seamos más elegante será nuestra biblioteca y más facil sera acceder a aquello que queremos reproducir.




    Hay muchas opciones de configuración, que resulta muy interesante de investigar para sacarle el maximo rendimiento. Al vincular nuestra cuenta si queremos volver a la configuración de nuestro servidor, podemos volver desde el navegador a través de l a dirección web

     
    Ya solo nos quedaría instalar el cliente de Plex en nuestro reporductor multimedia y disfrutar de nuestra biblioteca.