15 mar 2017

Copia de seguridad de Ubuntu en Windows

En una entrada anterior vimos el uso del comando mount. Con él, vamos a crear un script que nos permitirá realizar copias de seguridad en Windows, almacenando la fecha del backup. Esto es muy útil si automatizamos la ejecución del script con el cron.

Lo primero que debemos hacer es crear un directorio en la raíz al que llamaremos scripts y al que daremos permisos totales de forma recursiva, para todos los usuarios.
|| sudo mkdir scripts
|| sudo chmod 777 -R scripts

Yo ya tengo creado el script, por lo que mostraré el código y su funcionamiento:
|| sudo nano backup.sh

|| sudo ./backup.sh

La copia se realiza correctamente.

Alias

Los alias son herramientas muy útiles que sirven para crear comandos personalizados. Consiste en darle un valor a una orden para escribir este valor en lugar de la orden original.

Se pueden crear 2 tipos de alias:
1. Sólo en lo que dura la sesión.
|| alias comandoinventado=”comando original”
Ej. alias actualizar=”sudo apt-get update"


2. Si queremos que el alias quede permanentemente lo añadiremos en el fichero:
|| ~/.bashrc

Listas de Control de Acceso - ACL

Una lista de control de acceso añade un nivel mayor de seguridad, permitiendo personalizar permisos de lectura, escritura o ejecución a usuarios específicos o a grupos. Lo primero es instalar la aplicación ACL
|| sudo apt-get install acl

La instalación montará ACL en nuestras unidades existentes.

Para ver nuestros discos duros (unidades), utilizamos el siguiente comando:
|| df

Podemos comprobar si está montado en la unidad con el siguiente comando
|| sudo tune2fs -l /dev/sda1 | grep “Default mount options”


Comprobamos que sí, en la unidad sda1 está montado ACL


Para dar permisos a un usuario de lectura, escritura o ejecución lo haremos del siguiente modo.:
|| sudo setfacl -m u:usuario:rwx /ruta/nombrearchivo

Para ver la lista de permisos de un archivo: test.txt
|| sudo getfacl /home/test.txt


Si tratamos de acceder con un usuario que no tiene permisos se mostrará el mensaje permission denied.

Para dar permisos de forma recursiva a un directorio y a todo su contenido añadimos el parámetro -R
|| sudo setfacl -R -m u:usuario:rwx /ruta/nombrearchivo

Para quitar permisos, a grupos, usuarios…
|| sudo setafcl -b /home/test.txt

Si sólo queremos modificar los permisos tenemos que darlos de nuevo, no se pueden eliminar parcialmente con este método.

IMPORTANTE→ si queremos dar, por ejemplo, permisos de lectura y escritura, se indica como r-x. El campo w no queda vacío, se indica con guión.

El parámetro -d deja los permisos que estaban por defecto.
|| sudo setfacl -d -m g:grupo:rw /ruta/nombrearchivo

Comando cut

Sirve para cortar caracteres y campos, con la posibilidad de usar delimitadores u otras opciones, para finalmente poder extraer las partes seleccionadas de cada fichero.
  • -d → indica qué delimitador utilizamos
  • -f → indica el contenido entre qué delimitadores se va a mostrar

Nomenclatura
Se puede utilizar de dos modos diferentes
  1. cat /etc/passwd | cut -d “:” -f1
  2. cut -d “:” -f1 /etc/passwd

Esto puede utilizarse, por ejemplo, para mostrar los usuarios o los grupos del sistema.
  • Los usuarios se almacenan en /etc/passwd
  • Los grupos se almacenan en /etc/group

Podemos ver que las separaciones de los parámetros es el símbolo de dos puntos (:). Por tanto, este será el delimitador.

Si quisiéramos mostrar los usuarios del sistema por terminal:
cut -d ":" -f1 /etc/passwd
 
Esto puede ser útil para volcar diferentes salidas a un archivo mediante redireccionamientos. Así observaríamos los cambios de usuarios del sistema a lo largo del tiempo.

Programación de tareas

En Ubuntu al igual que en Windows podemos automatizar tareas. Estas tareas se configuran en una utilidad llamada cron.

Para editarlo y añadir tareas
|| sudo nano /etc/crontab


Las columnas son, por orden:
  • minuto (0-56)
  • hora (0-23)
  • día del mes (0-31)
  • mes (0-12)
  • día de la semana (0-6), siendo 0 el domingo
  • usuario
  • comando

Algunos valores se pueden representar de diversos modos, pero no entraremos a detallarlos.
Por otra parte hay valores especiales:
  • Guión (-): Sirve para separar un intervalo. Ej. 1-20 tomará todos los valores intermedios, incluidos los indicados.
  • Coma (,): Sirve para concretar valores específicos. Ej. 1,4,6
  • Asterisco: Sirve para indicar todos los valores aceptados

El usuario es a través de quién se ejecutan las instrucciones, utilizando sus permisos. Lo normal es utilizar al usuario root, aunque pueden aparecer otros.

El comando es la orden que ejecutamos. Por ejemplo, una tarea que nos apague el equipo: shutdown now


Aquí se muestra una tarea que apagaría el equipo de lunes a viernes a las 14:30