LFCS: Com arxivar/comprimir fitxers i directoris, configurar els atributs dels fitxers i trobar fitxers a Linux - Part 3


Recentment, la Linux Foundation va iniciar la certificació LFCS (Linux Foundation Certified Sysadmin), un nou programa que té com a finalitat permetre que persones de tots els racons del món tinguin accés a un examen que, si s'aprova, certifica que la persona té coneixements per realitzar-lo. tasques bàsiques a intermèdies d'administració de sistemes en sistemes Linux. Això inclou el suport de sistemes i serveis que ja estan en funcionament, juntament amb la resolució de problemes i l'anàlisi de primer nivell, a més de la capacitat de decidir quan escalar els problemes als equips d'enginyeria.

Si us plau, mireu el vídeo següent que dóna una idea sobre el programa de certificació de la Fundació Linux.

Aquesta publicació és la part 3 d'una sèrie de 10 tutorials, aquí en aquesta part tractarem com arxivar/comprimir fitxers i directoris, establir els atributs de fitxers i trobar fitxers al sistema de fitxers, que són necessaris per a l'examen de certificació LFCS.

Eines d'arxiu i compressió

Una eina d'arxiu de fitxers agrupa un conjunt de fitxers en un únic fitxer autònom del qual podem fer una còpia de seguretat a diversos tipus de suports, transferir-los a través d'una xarxa o enviar per correu electrònic. La utilitat d'arxivament utilitzada amb més freqüència a Linux és tar. Quan s'utilitza una utilitat d'arxiu juntament amb una eina de compressió, permet reduir la mida del disc que es necessita per emmagatzemar els mateixos fitxers i informació.

tar agrupa un grup de fitxers en un únic arxiu (normalment anomenat fitxer tar o tarball). El nom originalment significava arxivador de cintes, però hem de tenir en compte que podem utilitzar aquesta eina per arxivar dades a qualsevol tipus de suport escrivible (no només a cintes). El tar s'utilitza normalment amb una eina de compressió com ara gzip, bzip2 o xz per produir un tarball comprimit.

# tar [options] [pathname ...]

On representa l'expressió utilitzada per especificar sobre quins fitxers s'ha d'actuar.

Gzip és l'eina de compressió més antiga i proporciona la menor compressió, mentre que bzip2 proporciona una compressió millorada. A més, xz és el més nou però (normalment) proporciona la millor compressió. Aquests avantatges de la millor compressió tenen un preu: el temps que triga a completar l'operació i els recursos del sistema utilitzats durant el procés.

Normalment, els fitxers tar comprimits amb aquestes utilitats tenen extensions .gz, .bz2 o .xz, respectivament. En els exemples següents farem servir aquests fitxers: fitxer1, fitxer2, fitxer3, fitxer4 i fitxer5.

Agrupeu tots els fitxers del directori de treball actual i comprimiu el paquet resultant amb gzip, bzip2 i xz (tingueu en compte l'ús d'un expressió per especificar quins fitxers s'han d'incloure al paquet; això és per evitar que l'eina d'arxivar agrupi els fitxers arxius creats als passos anteriors).

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

Llista el contingut d'un fitxer tarball i mostra la mateixa informació que una llista llarga de directoris. Tingueu en compte que les operacions d'actualització o afegir no es poden aplicar directament als fitxers comprimits (si necessiteu actualitzar o afegir un fitxer a un fitxer tar comprimit, haureu de descomprimir el fitxer tar i actualitzar-lo/afegir-hi, després comprimir-lo de nou).

# tar tvf [tarball]

Executeu qualsevol de les ordres següents:

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

Aleshores

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

i

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

Finalment,

# tar tvf [tarball] #again

i compareu la data i l'hora de modificació del fitxer4 amb la mateixa informació que es mostra anteriorment.

Suposem que voleu fer una còpia de seguretat dels directoris inici de l'usuari. Una bona pràctica de l'administrador del sistema seria (també es pot especificar per les polítiques de l'empresa) excloure tots els fitxers de vídeo i àudio de les còpies de seguretat.

Potser el vostre primer enfocament seria excloure de la còpia de seguretat tots els fitxers amb una extensió .mp3 o .mp4 (o altres extensions). Què passa si teniu un usuari intel·ligent que pot canviar l'extensió a .txt o .bkp, el vostre enfocament no us servirà de res. Per detectar un fitxer d'àudio o vídeo, heu de comprovar el seu tipus de fitxer amb fitxer. El següent script de shell farà la feina.

#!/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/*

A continuació, podeu restaurar la còpia de seguretat al directori inicial de l'usuari original (user_restore en aquest exemple), conservant els permisos, amb l'ordre següent.

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

Llegiu també:

  1. 18 exemples d'ordres tar a Linux
  2. Dtrx: una eina d'arxiu intel·ligent per a Linux

Utilitzant l'ordre find per cercar fitxers

L'ordre trobar s'utilitza per cercar recursivament a través dels arbres de directoris fitxers o directoris que coincideixin amb determinades característiques, i després pot imprimir els fitxers o directoris coincidents o realitzar altres operacions sobre les coincidències.

Normalment, cercarem per nom, propietari, grup, tipus, permisos, data i mida.

# trobar [directory_to_search] [expressió]

Trobeu tots els fitxers (-f) al directori actual (.) i 2 subdirectoris a continuació (-maxdepth 3 inclou el directori de treball actual i 2 nivells més avall) la mida del qual (-mida) és superior a 2 MB.

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

Els fitxers amb permisos 777 de vegades es consideren una porta oberta als atacants externs. De qualsevol manera, no és segur deixar que ningú faci res amb els fitxers. Prenem un enfocament força agressiu i els suprimirem! (‘{}+ s'utilitza per \recollir els resultats de la cerca).

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

Cerqueu fitxers de configuració a /etc als quals s'ha accedit (-atime) o modificat (-mtime) més (+180) o menys (-180) que fa 6 mesos o fa 6 exactament (180) .

Modifiqueu l'ordre següent segons l'exemple següent:

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

Llegiu també: 35 exemples pràctics de l'ordre find de Linux

Permisos de fitxer i atributs bàsics

Els primers 10 caràcters de la sortida de ls -l són els atributs del fitxer. El primer d'aquests caràcters s'utilitza per indicar el tipus de fitxer:

  1. : un fitxer normal
  2. -d : un directori
  3. -l : un enllaç simbòlic
  4. -c : un dispositiu de caràcters (que tracta les dades com un flux de bytes, és a dir, un terminal)
  5. -b : un dispositiu de bloc (que gestiona dades en blocs, és a dir, dispositius d'emmagatzematge)

Els nou caràcters següents dels atributs del fitxer s'anomenen mode de fitxer i representen la lectura (r), l'escriptura (w) i l'execució (x) permisos del propietari del fitxer, el propietari del grup del fitxer i la resta d'usuaris (normalment anomenats \el món).

Mentre que el permís de lectura d'un fitxer permet obrir-lo i llegir-lo, el mateix permís en un directori permet llistar el seu contingut si també s'estableix el permís d'execució. A més, el permís d'execució en un fitxer permet gestionar-lo com a programa i executar-lo, mentre que en un directori permet gravar-hi el mateix.

Els permisos dels fitxers es canvien amb l'ordre chmod, la sintaxi bàsica de la qual és la següent:

# chmod [new_mode] file

On new_mode és un nombre octal o una expressió que especifica els nous permisos.

El nombre octal es pot convertir a partir del seu equivalent binari, que es calcula a partir dels permisos de fitxer desitjats per al propietari, el grup i el món, de la manera següent:

La presència d'un determinat permís equival a una potència de 2 (r=22, w=21, x=20 >), mentre que la seva absència equival a 0. Per exemple:

Per establir els permisos del fitxer com a anterior en forma octal, escriviu:

# chmod 744 myfile

També podeu definir el mode d'un fitxer mitjançant una expressió que indiqui els drets del propietari amb la lletra u, els drets del propietari del grup amb la lletra g i la resta amb o. Totes aquestes \individus es poden representar alhora amb la lletra a. Els permisos es concedeixen (o es revoquen) amb el + o signes , respectivament.

Com hem explicat anteriorment, podem revocar un determinat permís anteposant-lo amb el signe menys i indicant si cal revocar-lo per al propietari, el propietari del grup o tots els usuaris. La línia d'una línia següent es pot interpretar de la següent manera: Canvia el mode per a tots els usuaris (a), revoca () el permís d'execució (x) .

# chmod a-x backup.sh

Concedir permisos de lectura, escriptura i execució d'un fitxer al propietari i al propietari del grup, i permisos de lectura per a tot el món.

Quan utilitzem un nombre octal de 3 dígits per establir permisos per a un fitxer, el primer dígit indica els permisos per al propietari, el segon dígit per al propietari del grup i el tercer dígit per a tots els altres:

  1. Propietari: (r=22 + w=21 + x=20 = 7)
  2. Propietari del grup: (r=22 + w=21 + x=20 = 7)
  3. Món: (r=22 + w=0 + x=0 = 4),

# chmod 774 myfile

Amb el temps, i amb la pràctica, podreu decidir quin mètode per canviar un mode de fitxer us funciona millor en cada cas. Una llista llarga de directoris també mostra el propietari del fitxer i el propietari del seu grup (que serveixen com a control d'accés rudimentari però efectiu als fitxers d'un sistema):

La propietat del fitxer es canvia amb l'ordre chown. El propietari i el propietari del grup es poden canviar al mateix temps o per separat. La seva sintaxi bàsica és la següent:

# chown user:group file

On almenys l'usuari o el grup han d'estar presents.

Canviar el propietari d'un fitxer a un usuari determinat.

# chown gacanepa sent

Canviar el propietari i el grup d'un fitxer a un parell usuari:grup específic.

# chown gacanepa:gacanepa TestFile

Canviar només el propietari del grup d'un fitxer a un grup determinat. Anoteu els dos punts abans del nom del grup.

# chown :gacanepa email_body.txt

Conclusió

Com a administrador del sistema, heu de saber com crear i restaurar còpies de seguretat, com trobar fitxers al vostre sistema i canviar-ne els atributs, juntament amb alguns trucs que us poden facilitar la vida i evitaran problemes futurs.

Espero que els consells proporcionats en aquest article us ajudin a assolir aquest objectiu. No dubteu a afegir els vostres propis consells i idees a la secció de comentaris per al benefici de la comunitat. Gràcies per endavant!

  1. Sobre l'LFCS
  2. Per què obtenir una certificació de la Fundació Linux?
  3. Registreu-vos a l'examen LFCS