LFCS: Hvordan arkivere/komprimere filer og kataloger, angi filattributter og finne filer i Linux – Del 3


Nylig startet Linux Foundation LFCS (Linux Foundation Certified Sysadmin)-sertifiseringen, et helt nytt program hvis formål er å gi enkeltpersoner fra alle verdenshjørner tilgang til en eksamen, som hvis den er godkjent, bekrefter at personen er kunnskapsrik i å utføre grunnleggende til middels systemadministrasjonsoppgaver på Linux-systemer. Dette inkluderer støtte for allerede kjørende systemer og tjenester, sammen med førstenivå feilsøking og analyse, pluss muligheten til å bestemme når problemer skal eskaleres til ingeniørteam.

Se videoen nedenfor som gir ideen om The Linux Foundation Certification Program.

Dette innlegget er del 3 av en serie med 10 opplæringsprogrammer, her i denne delen vil vi dekke hvordan du arkiverer/komprimerer filer og kataloger, setter filattributter og finner filer på filsystemet som kreves for LFCS-sertifiseringseksamenen.

Arkiverings- og komprimeringsverktøy

Et filarkiveringsverktøy grupperer et sett med filer i en enkelt frittstående fil som vi kan sikkerhetskopiere til flere typer medier, overføre over et nettverk eller sende via e-post. Det mest brukte arkiveringsverktøyet i Linux er tar. Når et arkiveringsverktøy brukes sammen med et komprimeringsverktøy, lar det redusere diskstørrelsen som er nødvendig for å lagre de samme filene og informasjonen.

tar pakker en gruppe filer sammen til et enkelt arkiv (ofte kalt en tar-fil eller tarball). Navnet sto opprinnelig for tape archiver, men vi må merke oss at vi kan bruke dette verktøyet til å arkivere data til alle slags skrivbare medier (ikke bare til bånd). Tar brukes vanligvis med et komprimeringsverktøy som gzip, bzip2 eller xz for å produsere en komprimert tarball.

# tar [options] [pathname ...]

Hvor ... representerer uttrykket som brukes for å spesifisere hvilke filer som skal reageres på.

Gzip er det eldste komprimeringsverktøyet og gir minst komprimering, mens bzip2 gir forbedret komprimering. I tillegg er xz den nyeste, men gir (vanligvis) den beste komprimeringen. Disse fordelene med best komprimering har en pris: tiden det tar å fullføre operasjonen, og systemressurser som brukes under prosessen.

Normalt har tar-filer komprimert med disse verktøyene henholdsvis .gz, .bz2 eller .xz utvidelser. I de følgende eksemplene vil vi bruke disse filene: fil1, fil2, fil3, fil4 og fil5.

Grupper alle filene i gjeldende arbeidskatalog og komprimer den resulterende pakken med gzip, bzip2 og xz (vær oppmerksom på bruken av en vanlig uttrykk for å spesifisere hvilke filer som skal inkluderes i pakken – dette er for å forhindre at arkiveringsverktøyet grupperer tarballene opprettet i tidligere trinn).

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

List innholdet i en tarball og vis den samme informasjonen som en lang katalogoppføring. Merk at oppdater eller tilføy-operasjoner ikke kan brukes på komprimerte filer direkte (hvis du trenger å oppdatere eller legge til en fil til en komprimert tarball, må du dekomprimere tar-filen og oppdater/legg til den, og komprimer den igjen).

# tar tvf [tarball]

Kjør en av følgende kommandoer:

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

Deretter

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

og

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

Til slutt,

# tar tvf [tarball] #again

og sammenligne endringsdato og -klokkeslett for fil4 med samme informasjon som vist tidligere.

Anta at du vil ta en sikkerhetskopi av brukerens hjemmekataloger. En god systemadministratorpraksis vil være (kan også spesifiseres av selskapets retningslinjer) å ekskludere alle video- og lydfiler fra sikkerhetskopier.

Kanskje din første tilnærming ville være å ekskludere fra sikkerhetskopien alle filer med en .mp3 eller .mp4 filtype (eller andre utvidelser). Hva om du har en smart bruker som kan endre utvidelsen til .txt eller .bkp, vil tilnærmingen din ikke hjelpe deg mye. For å oppdage en lyd- eller videofil, må du sjekke filtypen med fil. Følgende shell-script vil gjøre jobben.

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

Du kan deretter gjenopprette sikkerhetskopien til den opprinnelige brukerens hjemmekatalog (user_restore i dette eksemplet), og bevare tillatelser, med følgende kommando.

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

Les også:

  1. 18 tar-kommandoeksempler i Linux
  2. Dtrx – Et intelligent arkivverktøy for Linux

Bruke Find Command for å søke etter filer

Kommandoen finn brukes til å søke rekursivt gjennom katalogtrær etter filer eller kataloger som samsvarer med visse egenskaper, og kan deretter enten skrive ut de samsvarende filene eller katalogene eller utføre andre operasjoner på treffene.

Vanligvis vil vi søke etter navn, eier, gruppe, type, tillatelser, dato og størrelse.

# finn [katalog_å_søke] [uttrykk]

Finn alle filene (-f) i gjeldende katalog (.) og 2 underkataloger nedenfor (-maxdepth 3 inkluderer gjeldende arbeidskatalog og 2 nivåer ned) hvis størrelse (-størrelse) er større enn 2 MB.

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

Filer med 777-tillatelser anses noen ganger som en åpen dør for eksterne angripere. Uansett er det ikke trygt å la noen gjøre noe med filer. Vi vil ta en ganske aggressiv tilnærming og slette dem! (‘{}+ brukes til å \samle inn» resultatene av søket).

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

Søk etter konfigurasjonsfiler i /etc som har blitt åpnet (-atime) eller modifisert (-mtime) mer (+180) eller mindre (-180) enn 6 måneder siden eller nøyaktig 6 måneder siden (180) .

Endre følgende kommando i henhold til eksemplet nedenfor:

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

Les også: 35 praktiske eksempler på Linux 'finn'-kommandoer

Filtillatelser og grunnleggende attributter

De første 10 tegnene i utdataene til ls -l er filattributtene. Det første av disse tegnene brukes til å indikere filtypen:

  1. : en vanlig fil
  2. -d : en katalog
  3. -l : en symbolsk lenke
  4. -c : en tegnenhet (som behandler data som en strøm av byte, dvs. en terminal)
  5. -b : en blokkeringsenhet (som håndterer data i blokker, dvs. lagringsenheter)

De neste ni tegnene i filattributtene kalles filmodus og representerer lese (r), skrive (w) og utføre (x >) tillatelser til filens eier, filens gruppeeier og resten av brukerne (ofte referert til som «verden»).

Mens lesetillatelsen på en fil tillater at den samme kan åpnes og leses, tillater den samme tillatelsen på en katalog at innholdet vises hvis utføringstillatelsen også er satt. I tillegg tillater utføringstillatelsen i en fil at den kan håndteres som et program og kjøres, mens den i en katalog tillater at den samme blir cd-innlagt i den.

Filtillatelser endres med kommandoen chmod, hvis grunnleggende syntaks er som følger:

# chmod [new_mode] file

Hvor new_mode er enten et oktalt tall eller et uttrykk som spesifiserer de nye tillatelsene.

Det oktale tallet kan konverteres fra dets binære ekvivalent, som beregnes fra de ønskede filtillatelsene for eieren, gruppen og verden, som følger:

Tilstedeværelsen av en viss tillatelse tilsvarer en potens på 2 (r=22, w=21, x=20 >), mens fraværet tilsvarer 0. For eksempel:

For å angi filens tillatelser som ovenfor i oktal form, skriv inn:

# chmod 744 myfile

Du kan også angi en fils modus ved å bruke et uttrykk som indikerer eierens rettigheter med bokstaven u, gruppeeierens rettigheter med bokstaven g, og resten med o. Alle disse \individene kan representeres samtidig med bokstaven a. Tillatelser gis (eller tilbakekalles) med + eller tegn, henholdsvis.

Som vi forklarte tidligere, kan vi tilbakekalle en viss tillatelse ved å sette minustegnet på den og angi om den må tilbakekalles for eieren, gruppeeieren eller alle brukerne. One-liner nedenfor kan tolkes som følger: Endre modus for alle (a) brukere, tilbakekall () kjøringstillatelse (x) .

# chmod a-x backup.sh

Tildeling av lese-, skrive- og utføringstillatelser for en fil til eieren og gruppeeieren, og lesetillatelser for hele verden.

Når vi bruker et 3-sifret oktaltall for å angi tillatelser for en fil, indikerer det første sifferet tillatelsene for eieren, det andre sifferet for gruppeeieren og det tredje sifferet for alle andre:

  1. Eier: (r=22 + w=21 + x=20 = 7)
  2. Gruppeeier: (r=22 + w=21 + x=20 = 7)
  3. Verden: (r=22 + w=0 + x=0 = 4),

# chmod 774 myfile

Med tiden, og med øvelse, vil du kunne bestemme hvilken metode for å endre en filmodus som fungerer best for deg i hvert enkelt tilfelle. En lang katalogoppføring viser også filens eier og dens gruppeeier (som fungerer som en rudimentær, men effektiv tilgangskontroll til filer i et system):

Fileierskap endres med kommandoen chown. Eier og gruppeeier kan endres samtidig eller hver for seg. Dens grunnleggende syntaks er som følger:

# chown user:group file

Der minst bruker eller gruppe må være tilstede.

Endre eieren av en fil til en bestemt bruker.

# chown gacanepa sent

Endre eieren og gruppen av en fil til et spesifikt bruker:gruppe-par.

# chown gacanepa:gacanepa TestFile

Endre bare gruppeeieren av en fil til en bestemt gruppe. Legg merke til kolon før gruppens navn.

# chown :gacanepa email_body.txt

Konklusjon

Som systemadministrator må du vite hvordan du oppretter og gjenoppretter sikkerhetskopier, hvordan du finner filer i systemet ditt og endrer attributtene deres, sammen med noen få triks som kan gjøre livet ditt enklere og hindre deg i å støte på fremtidige problemer.

Jeg håper at tipsene i denne artikkelen vil hjelpe deg med å nå det målet. Legg gjerne til dine egne tips og ideer i kommentarfeltet til fordel for fellesskapet. Takk på forhånd!

  1. Om LFCS
  2. Hvorfor få en Linux Foundation-sertifisering?
  3. Registrer deg for LFCS-eksamenen