LFCS: Cómo archivar / comprimir archivos y directorios, establecer atributos de archivo y encontrar archivos en Linux - Parte 3


Recientemente, la Linux Foundation inició la certificación LFCS (Linux Foundation Certified Sysadmin), un programa completamente nuevo cuyo propósito es permitir que personas de todos los rincones del mundo tengan acceso a un examen, que si se aprueba, certifica que la persona tiene conocimientos para realizar Tareas de administración del sistema básicas a intermedias en sistemas Linux. Esto incluye la compatibilidad con sistemas y servicios que ya están en ejecución, junto con la resolución de problemas y el análisis de primer nivel, además de la capacidad de decidir cuándo escalar los problemas a los equipos de ingeniería.

Mire el video a continuación que brinda una idea sobre el programa de certificación de The Linux Foundation.

Esta publicación es la Parte 3 de una serie de 10 tutoriales, aquí, en esta parte, cubriremos cómo archivar/comprimir archivos y directorios, establecer atributos de archivo y encontrar archivos en el sistema de archivos, que son necesarios para el examen de certificación LFCS.

Herramientas de archivo y compresión

Una herramienta de archivo de archivos agrupa un conjunto de archivos en un solo archivo independiente que podemos respaldar en varios tipos de medios, transferir a través de una red o enviar por correo electrónico. La utilidad de archivo más utilizada en Linux es tar . Cuando se utiliza una utilidad de archivo junto con una herramienta de compresión, permite reducir el tamaño del disco que se necesita para almacenar los mismos archivos e información.

tar agrupa un grupo de archivos en un solo archivo (comúnmente llamado archivo tar o tarball). El nombre originalmente significaba archivador de cinta, pero debemos tener en cuenta que podemos usar esta herramienta para archivar datos en cualquier tipo de medio grabable (no solo en cintas). Tar se utiliza normalmente con una herramienta de compresión como gzip , bzip2 o xz para producir un tarball comprimido.

# tar [options] [pathname ...]

Donde representa la expresión utilizada para especificar sobre qué archivos se debe actuar.

Gzip es la herramienta de compresión más antigua y proporciona la menor compresión, mientras que bzip2 proporciona una compresión mejorada. Además, xz es el más nuevo pero (normalmente) proporciona la mejor compresión. Estas ventajas de la mejor compresión tienen un precio: el tiempo que lleva completar la operación y los recursos del sistema utilizados durante el proceso.

Normalmente, los archivos tar comprimidos con estas utilidades tienen las extensiones .gz , .bz2 o .xz , respectivamente. En los siguientes ejemplos utilizaremos estos archivos: archivo1, archivo2, archivo3, archivo4 y archivo5.

Agrupe todos los archivos en el directorio de trabajo actual y comprima el paquete resultante con gzip , bzip2 y xz (tenga en cuenta el uso de un expresión para especificar qué archivos deben incluirse en el paquete; esto es para evitar que la herramienta de archivo agrupe los archivos comprimidos creados en los pasos anteriores).

# tar czf myfiles.tar.gz file[0-9]
# tar cjf myfiles.tar.bz2 file[0-9]
# tar cJf myfile.tar.xz file[0-9]

Enumere el contenido de un tarball y muestre la misma información que una lista larga de directorios. Tenga en cuenta que las operaciones actualizar o agregar no se pueden aplicar directamente a los archivos comprimidos (si necesita actualizar o agregar un archivo a un tarball comprimido, debe descomprimir el archivo tar y actualizar/adjuntarlo, luego comprimir nuevamente).

# tar tvf [tarball]

Ejecute cualquiera de los siguientes comandos:

# gzip -d myfiles.tar.gz	[#1] 
# bzip2 -d myfiles.tar.bz2	[#2] 
# xz -d myfiles.tar.xz 		[#3] 

Luego

# tar --delete --file myfiles.tar file4 (deletes the file inside the tarball)
# tar --update --file myfiles.tar file4 (adds the updated file)

y

# gzip myfiles.tar		[ if you choose #1 above ]
# bzip2 myfiles.tar		[ if you choose #2 above ]
# xz myfiles.tar 		[ if you choose #3 above ]

Finalmente,

# tar tvf [tarball] #again

y compare la fecha y hora de modificación del archivo4 con la misma información que se mostró anteriormente.

Suponga que desea realizar una copia de seguridad de los directorios de inicio del usuario. Una buena práctica de administrador de sistemas sería (también puede ser especificada por las políticas de la empresa) excluir todos los archivos de video y audio de las copias de seguridad.

Quizás su primer enfoque sería excluir de la copia de seguridad todos los archivos con una extensión .mp3 o .mp4 (u otras extensiones). ¿Qué pasa si tiene un usuario inteligente que puede cambiar la extensión a .txt o .bkp , su enfoque no le servirá de mucho. Para detectar un archivo de audio o video, debe verificar su tipo de archivo con file. El siguiente script de shell hará el trabajo.

#!/bin/bash
# Pass the directory to backup as first argument.
DIR=$1
# Create the tarball and compress it. Exclude files with the MPEG string in its file type.
# -If the file type contains the string mpeg, $? (the exit status of the most recently executed command) expands to 0, and the filename is redirected to the exclude option. Otherwise, it expands to 1.
# -If $? equals 0, add the file to the list of files to be backed up.
tar X <(for i in $DIR/*; do file $i | grep -i mpeg; if [ $? -eq 0 ]; then echo $i; fi;done) -cjf backupfile.tar.bz2 $DIR/*

Luego, puede restaurar la copia de seguridad en el directorio de inicio del usuario original (user_restore en este ejemplo), conservando los permisos, con el siguiente comando.

# tar xjf backupfile.tar.bz2 --directory user_restore --same-permissions

Leer también :

  1. 18 tar Command Examples in Linux
  2. Dtrx – An Intelligent Archive Tool for Linux

Uso del comando buscar para buscar archivos

El comando buscar se utiliza para buscar de forma recursiva a través de árboles de directorios archivos o directorios que coincidan con ciertas características, y luego puede imprimir los archivos o directorios coincidentes o realizar otras operaciones en las coincidencias.

Normalmente, buscaremos por nombre, propietario, grupo, tipo, permisos, fecha y tamaño.

# buscar [directorio_para_búsqueda] [expresión]

Busque todos los archivos ( -f ) en el directorio actual (. ) y 2 subdirectorios a continuación ( -maxdepth 3 incluye el directorio de trabajo actual y 2 niveles hacia abajo) cuyo tamaño ( tamaño ) es superior a 2 MB .

# find . -maxdepth 3 -type f -size +2M

Los archivos con permisos 777 a veces se consideran una puerta abierta a atacantes externos. De cualquier manera, no es seguro permitir que nadie haga nada con los archivos. ¡Adoptaremos un enfoque bastante agresivo y los eliminaremos! (‘ {} + se utiliza para "recopilar" los resultados de la búsqueda).

# find /home/user -perm 777 -exec rm '{}' +

Busque archivos de configuración en /etc a los que se haya accedido ( -atime ) o modificado ( -mtime ) más ( +180 ) o menos ( -180 ) que hace 6 meses o hace exactamente 6 meses ( 180 ) .

Modifique el siguiente comando según el ejemplo siguiente:

# find /etc -iname "*.conf" -mtime -180 -print

Lea también : 35 ejemplos prácticos del comando "buscar" de Linux

Permisos de archivos y atributos básicos

Los primeros 10 caracteres en la salida de ls -l son los atributos del archivo. El primero de estos caracteres se utiliza para indicar el tipo de archivo:

  1. : a regular file
  2. -d : a directory
  3. -l : a symbolic link
  4. -c : a character device (which treats data as a stream of bytes, i.e. a terminal)
  5. -b : a block device (which handles data in blocks, i.e. storage devices)

Los siguientes nueve caracteres de los atributos del archivo se denominan modo de archivo y representan la lectura ( r ), la escritura ( w ) y la ejecución ( x ) permisos del propietario del archivo, el propietario del grupo del archivo y el resto de usuarios (comúnmente conocido como "el mundo").

Mientras que el permiso de lectura en un archivo permite que el mismo se abra y lea, el mismo permiso en un directorio permite que se enumere su contenido si también se establece el permiso de ejecución. Además, el permiso de ejecución en un archivo permite que se maneje como un programa y se ejecute, mientras que en un directorio permite que el mismo se inserte en él.

Los permisos de archivo se cambian con el comando chmod , cuya sintaxis básica es la siguiente:

# chmod [new_mode] file

Donde nuevo_modo es un número octal o una expresión que especifica los nuevos permisos.

El número octal se puede convertir a partir de su equivalente binario, que se calcula a partir de los permisos de archivo deseados para el propietario, el grupo y el mundo, de la siguiente manera:

La presencia de un permiso determinado equivale a una potencia de 2 ( r u003d 22 , w u003d 21 , x u003d 20 ), mientras que su ausencia equivale a 0 . Por ejemplo:

Para configurar los permisos del archivo como arriba en forma octal, escriba:

# chmod 744 myfile

También puede establecer el modo de un archivo utilizando una expresión que indique los derechos del propietario con la letra u , los derechos del propietario del grupo con la letra g y el resto con o . Todos estos " individuos " se pueden representar al mismo tiempo con la letra a . Los permisos se otorgan (o revocan) con los signos + o - , respectivamente.

Como explicamos anteriormente, podemos revocar cierto permiso anteponiéndolo con el signo menos e indicando si es necesario revocarlo para el propietario, el propietario del grupo o todos los usuarios. La frase a continuación se puede interpretar de la siguiente manera: Cambiar modo para todos ( a ) usuarios, revocar ( - ) permiso de ejecución ( x ) .

# chmod a-x backup.sh

Otorgar permisos de lectura, escritura y ejecución para un archivo al propietario y al propietario del grupo, y permisos de lectura para todo el mundo.

Cuando usamos un número octal de 3 dígitos para establecer permisos para un archivo, el primer dígito indica los permisos para el propietario, el segundo dígito para el propietario del grupo y el tercer dígito para todos los demás:

  1. Owner: (r=22 + w=21 + x=20 = 7)
  2. Group owner: (r=22 + w=21 + x=20 = 7)
  3. World: (r=22 + w=0 + x=0 = 4),
# chmod 774 myfile

Con el tiempo y con la práctica, podrá decidir qué método para cambiar un modo de archivo funciona mejor para usted en cada caso. Una lista de directorio larga también muestra el propietario del archivo y el propietario del grupo (que sirven como un control de acceso rudimentario pero efectivo a los archivos en un sistema):

La propiedad del archivo se cambia con el comando chown . El propietario y el propietario del grupo se pueden cambiar al mismo tiempo o por separado. Su sintaxis básica es la siguiente:

# chown user:group file

Donde al menos un usuario o grupo debe estar presente.

Cambiar el propietario de un archivo a un determinado usuario.

# chown gacanepa sent

Cambiar el propietario y el grupo de un archivo a un usuario específico: par de grupo.

# chown gacanepa:gacanepa TestFile

Cambiar solo el propietario del grupo de un archivo a un grupo determinado. Tenga en cuenta los dos puntos antes del nombre del grupo.

# chown :gacanepa email_body.txt

Conclusión

Como administrador de sistemas, necesita saber cómo crear y restaurar copias de seguridad, cómo encontrar archivos en su sistema y cambiar sus atributos, junto con algunos trucos que pueden hacer su vida más fácil y evitarán que tenga problemas en el futuro.

Espero que los consejos proporcionados en el presente artículo lo ayuden a lograr ese objetivo. Siéntase libre de agregar sus propios consejos e ideas en la sección de comentarios para beneficio de la comunidad. ¡Gracias por adelantado!

  1. About the LFCS
  2. Why get a Linux Foundation Certification?
  3. Register for the LFCS exam

Todos los derechos reservados © Linux-Console.net • 2019-2021