Búsqueda de sitios web

Cómo tar archivos, establecer permisos de archivos y buscar archivos en Linux


Recientemente, la Linux Foundation inició la certificación LFCS (Linux Foundation Certified Sysadmin), un nuevo programa cuyo propósito es permitir a las personas realizar tareas de administración de sistemas básicas a intermedias en sistemas Linux.

Esto incluye soporte para sistemas y servicios que ya están en ejecución, junto con análisis y resolución de problemas de primer nivel, además de la capacidad de decidir cuándo derivar los problemas a los equipos de ingeniería.

La serie se titulará Preparación para el LFCS (Linux Foundation Certified Sysadmin) Partes 1 a 33 y cubrirá los siguientes temas:

Part 1

Cómo utilizar el comando 'Sed' para manipular archivos en Linux

Part 2

Cómo instalar y usar Vi/Vim en Linux

Part 3

Cómo archivar archivos, establecer permisos de archivos y buscar archivos en Linux

Part 4

Particionar dispositivos de almacenamiento, formatear sistemas de archivos y configurar la partición de intercambio

Part 5

Montar/desmontar sistemas de archivos locales y de red (Samba y NFS) en Linux

Part 6

Ensamblaje de particiones como dispositivos RAID: creación y administración de copias de seguridad del sistema

Part 7

Gestión de procesos y servicios de inicio del sistema (SysVinit, Systemd y Upstart

Part 8

Cómo administrar usuarios y grupos, permisos de archivos y acceso a Sudo

Part 9

Gestión de paquetes de Linux con Yum, RPM, Apt, Dpkg, Aptitude y Zypper

Part 10

Aprendizaje de secuencias de comandos de Shell básicas y solución de problemas del sistema de archivos

Part 11

Cómo administrar y crear LVM usando los comandos vgcreate, lvcreate y lvextend

Part 12

Cómo explorar Linux con herramientas y documentación de ayuda instaladas

Part 13

Cómo configurar y solucionar problemas de Grand Unified Bootloader (GRUB)

Part 14

Supervise el uso de recursos de los procesos de Linux y establezca límites de proceso por usuario

Part 15

Cómo configurar o modificar los parámetros de tiempo de ejecución del kernel en sistemas Linux

Part 16

Implementación de control de acceso obligatorio con SELinux o AppArmor en Linux

Part 17

Cómo configurar listas de control de acceso (ACL) y cuotas de disco para usuarios y grupos

Part 18

Instalación de servicios de red y configuración del inicio automático al arrancar

Part 19

Una guía definitiva para configurar un servidor FTP para permitir inicios de sesión anónimos

Part 20

Configure un servidor DNS de almacenamiento en caché recursivo básico y configure zonas para el dominio

Part 21

Cómo instalar, proteger y ajustar el rendimiento del servidor de base de datos MariaDB

Part 22

Cómo instalar y configurar el servidor NFS para compartir sistemas de archivos

Part 23

Cómo configurar Apache con alojamiento virtual basado en nombres con certificado SSL

Part 24

Cómo configurar un firewall de Iptables para permitir el acceso remoto a servicios en Linux

Part 25

Cómo convertir un Linux en un enrutador para manejar el tráfico de forma estática y dinámica

Part 26

Cómo configurar sistemas de archivos cifrados e intercambiarlos utilizando la herramienta Cryptsetup

Part 27

Cómo monitorear el uso del sistema, las interrupciones y solucionar problemas de servidores Linux

Part 28

Cómo configurar un repositorio de red para instalar o actualizar paquetes

Part 29

Cómo auditar el rendimiento, la seguridad y la resolución de problemas de la red

Part 30

Cómo instalar y administrar máquinas virtuales y contenedores

Part 31

Aprenda los conceptos básicos de Git para gestionar proyectos de forma eficiente

Part 32

Una guía para principiantes para configurar direcciones IPv4 e IPv6 en Linux

Part 33

Una guía para principiantes para crear enlaces y puentes de red en Ubuntu

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

Herramientas de archivo y compresión para Linux

Una herramienta de archivo de archivos agrupa un conjunto de archivos en un único archivo independiente del que podemos realizar copias de seguridad 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 el comando tar. Cuando se utiliza una utilidad de archivo junto con una herramienta de compresión, permite reducir el tamaño del disco necesario para almacenar los mismos archivos e información.

Utilidad tar de Linux

tar agrupa un grupo de archivos en un único archivo (comúnmente llamado archivo tar o tarball). El nombre originalmente significaba archivador de cintas, 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.

La sintaxis básica del comando tar es la siguiente:

tar [options] [pathname ...]

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

Comandos Tar más utilizados

Long option Abbreviation Description
 –create  c  Creates a tar archive
 –concatenate  A  Appends tar files to an archive
 –append  r  Appends files to the end of an archive
 –update  u  Appends files newer than copy in archive
 –diff or –compare  d  Find differences between archive and file system
 –file archive  f  Use archive file or device ARCHIVE
 –list  t  Lists the contents of a tarball
 –extract or –get  x  Extracts files from an archive

Modificadores de operación tar normalmente utilizados

Long option Abbreviation Description
 –directory dir  C  Changes to directory dir before performing operations
 –same-permissions  p  Preserves original permissions
 –verbose  v  Lists all files read or extracted. When this flag is used along with –list, the file sizes, ownership, and time stamps are displayed.
 –verify  W  Verifies the archive after writing it
 –exclude file  —  Excludes files from the archive
 –exclude=pattern  X  Exclude files, given as a PATTERN
 –gzip or –gunzip  z  Processes an archive through Gzip
 –bzip2  j  Processes an archive through bzip2
 –xz  J  Processes an archive through xz

Utilidades Linux Gzip, Bzip2 y Xz

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.

Las 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 extensiones .gz, .bz2 o .xz, respectivamente. En los siguientes ejemplos, usaremos estos archivos: archivo1, archivo2, archivo3, archivo4 y < fuerte>archivo5.

Comprimir archivos con gzip, bzip2 y xz

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 archivo normal). expresión para especificar qué archivos deben incluirse en el paquete (esto es para evitar que la herramienta de archivado 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]

Listar contenidos y actualizar/añadir archivos Tar Archive

Enumere el contenido de un archivo tar y muestre la misma información que una lista larga de directorio. Tenga en cuenta que las operaciones actualizar o añadir no se pueden aplicar directamente a archivos comprimidos.

Descomprimir archivos tar

Si necesita actualizar o agregar un archivo a un tarball comprimido, debe descomprimir el archivo tar y actualizarlo/agregarlo, luego comprimirlo 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] 

Eliminar o agregar archivos al archivo Tar

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.

Excluir archivos de las copias de seguridad

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

Tal vez 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 tienes un usuario inteligente que puede cambiar la extensión a .txt o .bkp? Tu enfoque no te servirá de mucho.

Para detectar un archivo de audio o video, debe verificar su tipo de archivo con un archivo. 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/*

Restaurar copia de seguridad con permisos de conservación de Tar

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

Uso del comando Buscar para buscar archivos

El comando de búsqueda se utiliza para buscar recursivamente 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.

La sintaxis básica del comando buscar es la siguiente:

find [directory_to_search] [expression]

Buscar archivos de forma recursiva según el tamaño

Busque todos los archivos (-f) en el directorio actual (.) y los subdirectorios 2 a continuación (-max Depth 3 incluye el directorio de trabajo actual y 2 niveles hacia abajo) cuyo tamaño (-size) sea mayor que 2 MB.

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

Buscar y eliminar archivos que coincidan con ciertos criterios

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 '{}' +

Encontrar archivos basados en marcas de tiempo

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 exactamente hace 6 meses (180) .

Modifique el siguiente comando según el siguiente ejemplo:

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

Establecer 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:

  • -: un archivo normal
  • -d: un directorio
  • -l: un enlace simbólico
  • -c: un dispositivo de caracteres (que trata los datos como un flujo de bytes, es decir, un terminal)
  • -b: un dispositivo de bloque (que maneja datos en bloques, es decir, dispositivos de almacenamiento)

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

Mientras que el permiso de lectura en un archivo permite abrirlo y leerlo, el mismo permiso en un directorio permite enumerar su contenido si también se establece el permiso de ejecución. Además, el permiso de ejecución en un archivo permite manejarlo como un programa y ejecutarlo, mientras que en un directorio permite grabarlo en un CD.

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

chmod [new_mode] file

Donde new_mode 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 cierto permiso equivale a una potencia de 2 (r=22, w=21, x=20 ), mientras que su ausencia equivale a 0. Por ejemplo:

Para configurar los permisos del archivo como se indica arriba en formato octal, escriba:

chmod 744 myfile

También puedes configurar el modo de un archivo usando una expresión que indica 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 conceden (o revocan) con los signos + o -, respectivamente.

Eliminar el permiso de ejecución en un script para todos los usuarios

Como explicamos anteriormente, podemos revocar un determinado 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 siguiente línea se puede interpretar de la siguiente manera: Cambiar el modo para todos (a) usuarios, revocar (-) el 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:

  • Propietario: (r=22 + w=21 + x=20=7)
  • Propietario del grupo: (r=22 + w=21 + x=20=7)
  • Mundo: (r=22 + w=0 + x=0=4),
chmod 774 myfile

Con el tiempo, y con práctica, podrás decidir qué método para cambiar el modo de un archivo te funciona mejor en cada caso. Una larga lista de directorios también muestra el propietario del archivo y el propietario de su 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.

Ejemplos de comandos Chown

Cambiar el propietario de un archivo a un usuario determinado.

chown gacanepa sent

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

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 hacerle la vida más fácil y evitarán que tenga problemas en el futuro.

Espero que los consejos proporcionados en el presente artículo le ayuden a lograr ese objetivo. No dude en agregar su propia información e ideas en la sección de comentarios para beneficio de la comunidad. ¡Gracias de antemano!

El libro electrónico LFCS ya está disponible para su compra. ¡Solicite su copia hoy y comience su viaje para convertirse en un administrador certificado de sistemas Linux!

Product Name Price Buy
The Linux Foundation’s LFCS Certification Preparation Guide $19.99 [Buy Now]

Por último, pero no menos importante, considere comprar su vale de examen utilizando los siguientes enlaces para ganarnos una pequeña comisión, que nos ayudará a mantener este libro actualizado.