Crear BBDD en MySQL, y dar permisos a un usuario

Para crear una base de datos en mysql se utiliza la siguiente sentencia:

mysql> CREATE DATABASE NombreBaseDeDatos;

Para dar permisos a un usuario para que use la base de datos, se utiliza el siguiente comando:

mysql> GRANT ALL ON NombreBaseDeDatos.* TO el_usuario@localhost IDENTIFIED BY "la_password";
mysql> FLUSH privileges;

También hay más formas de hacerlo:

# mysql -u root -p
mysql> CREATE DATABASE moodle;
mysql> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,INDEX,ALTER ON moodle.*
TO moodleuser@localhost IDENTIFIED BY 'yourpassword';
mysql> quit
# mysqladmin -p reload

La diferencia es que la primera forma da todos los privilegios al usuario, y en la segunda se va especificando uno a uno los privilegios que le quieres dar al usuario sobre la BBDD. Además en la primera se aplican los cambios con la sentencia flush y en la segunda con un reload de la BBDD.

Autenticación web con Apache

Para realizarla autenticaciónde usuarios a través de Apache, hay que añadir las siguientes directivas en el fichero de configuración de Apache (por defecto /etc/httpd/httpd.conf).

<Files "mailgraph.cgi">
AuthUserFile /var/www/mailgraph/.htpasswd
AuthName "Mailgraph"
AuthType Basic
require valid-user
</Files>

Con esto se consigue que se compruebe el usuario al acceder al fichero «mailgraph.cgi» en función de los usuarios provisionados en el fichero /var/www/mailgraph/.htpasswd

Para provisionar usuarios en este fichero, se utiliza el siguiente comando:

/usr/sbin/htpasswd /usr/share/mailgraph/.htpasswd nombreUsuario

Comandos Unix para administrar sistemas

Hoy he descubiertos dos nuevos comandos para Unix bastante útiles a la hora de la administración de un sistema:

  • pstree -cpal: Muestra de forma jerárquica los procesos que tiene el sistema corriendo.
  • pstree -p 2323: Muestra la jerarquía de procesos a partir del proceso 2323.
  • lsof: (ls Open Files) Muestra los descriptores de fichero que tiene el sistema abiertos, ya sean descriptores de ficheros, o conexiones de red… que UNIX las trata también como descriptores de fichero.
  • watch -d: Ejecuta un comando cada X segundos, y muestra la diferencia de la salida por pantalla con respecto a la iteración anterior.

Más información: watch, lsof, pstree.

Warning en postfix

Hoy he visto el warning.log que genera Postfix, y me he encontrado la siguiente línea:

Sep  1 01:30:49 apaair postfix/smtpd[23271]: warning: database /etc/postfix/aliases.db is older than source file /etc/postfix/aliases

Esto indica que se ha actualizado el fichero /etc/postfix/aliases y no se ha actualizado un base de datos que utiliza Postfix.

Para solucionarlo, basta con ejecutar lo siguiente:

postalias /etc/postfix/aliases

Importar datos de MySQL de latin1 a UTF8

Hoy me he topado con un pequeño incoveniente al intentar importar una base de datos que estaba en un equipo con MySQL 12.21, y la quería copiar a un equipo que tenía MySQL 14.12.
El problema residía en que la base de datos origen tenía un tipo de carácteres distintos (latin1) a la base de datos destino (UTF8).

La solución fue la siguiente:

mysql -uusername -p dbname --default-character-set=latin1 < bbdd_original.sql

Así conseguí que se exportaran los datos sin problemas de codificación de los carácteres.

Enlace

Comando find de Unix (GNU/Linux)

Existe un comando en sistemas Unix muy útil para poder encontrar ficheros con determinadas
características, es el comando find.

  • Para buscar los ficheros más grandes del sistema:
    find / -size +100000k -exec ls -lh '{}' ;
  • Para buscar los ficheros modificados recientemente (Último día):
    find / -mtime 0 -exec ls -lh '{}' ;
  • Para buscar los ficheros modificados recientemente (Último minuto):
    find / -mmin 0 -exec ls -lh '{}' ;

Para buscar ficheros de una fecha especifica, se puede intentar con lo siguiente:

$ ls -l | grep “`date ‘+%b %d’` 09:[1-5][0-9]“

que buscaría los ficheros modificados hoy entre las 9.00 y las 9.59… aunque seguro que hay alguna forma mejor de hacer esto. ¿A alguien se le ocurre?

Curriculum Vitae Profesional con LaTeX

He encontrado un paquete llamado moderncv que ofrece una plantilla bastante profesional para realizar un curriculum vitae.

Para instalarla:

sudo apt-get install texlive-latex-extra texlive-fonts-recommended lmodern

  • texlive-latex-extra: contiene el paquete moderncv y muchos más.
  • texlive-fonts-recommended: contiene las fuentes marvosym necesarias para el funcionamiento de moderncv.
  • lmodern: contiene las fuentes lmodern.

Enlace

Instalar Latex en Ubuntu

Para instalar LaTeX en tu Ubuntu, debes de instalar los siguientes paquetes:

sudo apt-get install texlive-latex-base

si necesitáis más paquetes para LaTeX como ifpdf, podéis instalarlo así:

sudo apt-get install texlive-latex-recommended

Para instalar la fuente marvosym tienes que instalar lo siguiente:

sudo apt-get install ttf-marvosym

Para instalar el paquete ldesc2e.sty, primero nos debemos descargar el fichero, y luego guardarlo en el siguiente directorio:

/usr/share/texmf-texlive/tex/latex/ldesc2e

/usr/share/texlive/texmf/tex/latex/ldesc2e

para que se guarden los cambios, ejecutaremos

sudo texhash

Manual para instalación

Y para posteriormente crear ficheros en PDF, te puede ayudar este documento.

Configurar Ubuntu

Primero, instalamos las aplicaciones necesarias, para ello quizás tengamos que añadir estas líneas en el fichero /etc/sources.list:

deb http://archive.ubuntu.com/ubuntu/ hardy main universe multiverse restricted
deb-src http://archive.ubuntu.com/ubuntu/ hardy main universe multiverse restricted

ó simplemente con actualizar los repositorios a través de apt-get valdría:

sudo apt-get update

ahora ya podemos instalar las aplicaciones:

sudo aptitude install thunderbird ssh wireshark vim-full tilda htop screenlets netspeed sensors-applet samba traceroute unrar

También sería interesante habilitar la cuenta de root.