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.