Os paso un par de comandos muy útiles para realizar backups de un LDAP.
Para exportar todos los datos de LDAP en un archivo plano:
slapcat -l /ruta/archivobackup.ldif
Para importar los datos del fichero a LDAP:
slapadd -c -l backup.ldif
Reflexiones, artículos, opiniones, recomendaciones, noticias... sobre la tecnología.
Os paso un par de comandos muy útiles para realizar backups de un LDAP.
Para exportar todos los datos de LDAP en un archivo plano:
slapcat -l /ruta/archivobackup.ldif
Para importar los datos del fichero a LDAP:
slapadd -c -l backup.ldif
El comando sudo de Unix es muy útil, ya que permite ejecutar comandos de nivel de administración como si fuéramos un superusuario. Para la ejecución del comando nos solicitará la contraseña de superusuario o de algún usuario definido en el fichero /etc/sudoers, el cual define qué usuarios pueden lanzar comandos sudo.
Cuando definimos scripts, el comando sudo puede suponer un inconveniente, especialmente cuando pretendemos automatizar tareas, tales como backups, ya que precisa de una intervención del usuario para introducir la contraseña.
Para llevar a cabo esta clase de tareas sin que se requiera la contraseña de superusuario, debemos realizar modificaciones en el fichero /etc/sudoers. Pero esto no se puede hacer directamente, ya que tiene permisos de sólo lectura. Para ello, debemos ejecutar el siguiente comando:
sudo visudo
La herramienta visudo está concebida especialmente para editar con seguridad el fichero /etc/sudoers, permitiendo, además, verificar la sintaxis y los errores.
Dentro del fichero /etc/sudoers podemos definir un grupo de programas autorizados y prohibidos a ejecutar con sudo, mediante la directiva Cmnd_Alias:
Cmnd_Alias AUTORIZADO = /ruta/programa1, /ruta/programa2 Cmnd Alias PROHIBIDO = !/ruta/programa1, !/ruta/programa2 usuario ALL = (ALL) AUTORIZADO usuario ALL = PROHIBIDO
En realidad, podemos definir en un mismo grupo los programas permitidos y prohibidos. La diferencia entre ambos estaría en que los programas prohibidos deben llevar como prefijo el signo de admiración (!).
Si deseamos asignar todos los permisos sudo a un usuario específico, podríamos utilizar, directamente, una línea como ésta:
usuario ALL = (ALL) ALL
Si deseamos que, además, no requiera de contraseña, se utilizaría la siguiente línea:
usuario ALL = (ALL) NOPASSWD: ALL
Obviamente, esto no sería muy recomendado por seguridad. Podría definirse esta política de seguridad únicamente a ciertos programas:
Cmnd_Alias AUTORIZADO = /ruta/programa1, /ruta/programa2 usuario ALL = (ALL) NOPASSWD: AUTORIZADO
El archivo /etc/sudoers tiene una gran capacidad de configuración, además de lo visto anteriormente. Podemos, por ejemplo, definir alias para usuarios, así como también grupos de usuarios. Para más información, se puede consultar la ayuda que ofrece Unix:
man 8 sudo man 5 sudoers man 8 visudo
Linux (y otros sistemas operativos basados en UNIX) posee una poderosa herramienta que permite programar eventos. Gracias a ello, podremos configurar que, cada cierto tiempo, se lance algún comando o programa. Esto es realmente útil, para tareas periódicas, tales como backups o copias de seguridad, transferencia de datos de un sistema a otro, copia de ficheros entre programas, etc.
CRON es un administrador de procesos en segundo plano (o demonios), y se encarga de revisar, a cada minuto, la lista de tareas o procesos programados en el fichero crontab, el cual está ubicado en /etc/crontab. Dentro de este fichero podemos configurar el intervalo en el que se ejecutarán las tareas, automatizando éstas. Cuando CRON revisa crontab, comprueba si hay alguna tarea o proceso que ejecutar en ese momento.
Para editar el crontab, ejecutar el siguiente comando:
sudo crontab -e
Con esto, se abrirá el editor para modificar el crontab correspondiente al usuario actual.
Las líneas de este fichero tienen el siguiente formato:
m h dom mon dow [usuario] comando
donde:
Los parámetros m, h, dom, mon y dow pueden tener valores especiales:
Ejemplos:
Existen algunas plantillas que facilitan el uso de los parámetros de frecuencia:
Otros parámetros de crontab:
Para ver el log de CRON:
sudo nano /var/log/syslog
Puede ocurrir que en el log aparezca un error como éste:
CRON[8380]: (CRON) info (No MTA installed, discarding output)>/p>
Esto se debe a que CRON necesita tener configurado un servidor de correo para las notificaciones. Por ello, será necesario instalar postfix
sudo apt-get install postfix
Otra forma de evitar estos mensajes es cambiar la salida de las notificaciones, añadiendo al final de cada tarea en crontab lo siguiente:
[tarea] >/dev/null 2>&1