Ricerca nel sito web

Come tarare i file, impostare i permessi dei file e trovare i file in Linux


Recentemente, la Linux Foundation ha avviato la certificazione LFCS (Linux Foundation Certified Sysadmin), un nuovissimo programma il cui scopo è consentire alle persone di eseguire attività di amministrazione di sistema di base e intermedie su sistemi Linux.

Ciò include il supporto di sistemi e servizi già in esecuzione, insieme alla risoluzione dei problemi e all'analisi di primo livello, oltre alla possibilità di decidere quando inoltrare i problemi ai team di tecnici.

La serie sarà intitolata Preparazione per le parti da 1 a 33 di LFCS (Linux Foundation Certified Sysadmin) e tratterà i seguenti argomenti:

Part 1

Come utilizzare il comando "Sed" per manipolare i file in Linux

Part 2

Come installare e utilizzare Vi/Vim in Linux

Part 3

Come archiviare file, impostare autorizzazioni file e trovare file in Linux

Part 4

Partizionamento dei dispositivi di archiviazione, formattazione dei file system e configurazione della partizione di swap

Part 5

Monta/smonta filesystem locali e di rete (Samba e NFS) in Linux

Part 6

Assemblaggio di partizioni come dispositivi RAID: creazione e gestione dei backup di sistema

Part 7

Gestione dei processi e dei servizi di avvio del sistema (SysVinit, Systemd e Upstart

Part 8

Come gestire utenti e gruppi, autorizzazioni file e accesso Sudo

Part 9

Gestione dei pacchetti Linux con Yum, RPM, Apt, Dpkg, Aptitude e Zypper

Part 10

Apprendimento degli script di shell di base e della risoluzione dei problemi del file system

Part 11

Come gestire e creare LVM utilizzando i comandi vgcreate, lvcreate e lvextend

Part 12

Come esplorare Linux con la documentazione e gli strumenti della Guida installati

Part 13

Come configurare e risolvere i problemi di Grand Unified Bootloader (GRUB)

Part 14

Monitora l'utilizzo delle risorse dei processi Linux e imposta i limiti dei processi in base al singolo utente

Part 15

Come impostare o modificare i parametri di runtime del kernel nei sistemi Linux

Part 16

Implementazione del controllo degli accessi obbligatorio con SELinux o AppArmor in Linux

Part 17

Come impostare elenchi di controllo di accesso (ACL) e quote disco per utenti e gruppi

Part 18

Installazione dei servizi di rete e configurazione dell'avvio automatico all'avvio

Part 19

Una guida definitiva per configurare il server FTP per consentire accessi anonimi

Part 20

Configura un server DNS di memorizzazione nella cache ricorsiva di base e configura le zone per il dominio

Part 21

Come installare, proteggere e ottimizzare le prestazioni del server database MariaDB

Part 22

Come installare e configurare il server NFS per la condivisione del file system

Part 23

Come configurare Apache con hosting virtuale basato sul nome con certificato SSL

Part 24

Come configurare un firewall Iptables per abilitare l'accesso remoto ai servizi in Linux

Part 25

Come trasformare un Linux in un router per gestire il traffico in modo statico e dinamico

Part 26

Come impostare filesystem crittografati e scambiare utilizzando lo strumento Cryptsetup

Part 27

Come monitorare l'utilizzo del sistema, le interruzioni e la risoluzione dei problemi dei server Linux

Part 28

Come configurare un repository di rete per installare o aggiornare i pacchetti

Part 29

Come controllare le prestazioni, la sicurezza e la risoluzione dei problemi della rete

Part 30

Come installare e gestire macchine virtuali e contenitori

Part 31

Impara le basi di Git per gestire i progetti in modo efficiente

Part 32

Una guida per principianti alla configurazione degli indirizzi IPv4 e IPv6 in Linux

Part 33

Una guida per principianti alla creazione di collegamenti e bridging di rete in Ubuntu

Questo post è la parte 3 di una serie di 33 tutorial, qui in questa parte tratteremo come archiviare/comprimere file e directory, impostare attributi di file e trovare file sul filesystem, necessari per LFCS< esame di certificazione.

Strumenti di archiviazione e compressione per Linux

Uno strumento di archiviazione file raggruppa una serie di file in un unico file autonomo di cui possiamo eseguire il backup su diversi tipi di supporti, trasferire su una rete o inviare tramite e-mail.

L'utilità di archiviazione utilizzata più frequentemente in Linux è il comando tar. Quando un'utilità di archiviazione viene utilizzata insieme a uno strumento di compressione, consente di ridurre la dimensione del disco necessaria per archiviare gli stessi file e informazioni.

Utilità tar di Linux

tar raggruppa un gruppo di file in un unico archivio (comunemente chiamato file tar o tarball). Il nome originariamente stava per tape archiver, ma dobbiamo tenere presente che possiamo utilizzare questo strumento per archiviare dati su qualsiasi tipo di supporto scrivibile (non solo su nastri).

Tar viene normalmente utilizzato con uno strumento di compressione come gzip, bzip2 o xz per produrre un file tar compresso.

La sintassi di base del comando tar è la seguente:

tar [options] [pathname ...]

Dove ... rappresenta l'espressione utilizzata per specificare su quali file si deve agire.

Comandi Tar più comunemente usati

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

Modificatori delle operazioni tar normalmente utilizzati

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

Utilità Linux Gzip, Bzip2 e Xz

Gzip è lo strumento di compressione più vecchio e fornisce la compressione minima, mentre bzip2 fornisce una compressione migliorata. Inoltre, xz è il più recente ma (di solito) fornisce la migliore compressione.

I vantaggi della migliore compressione hanno un prezzo: il tempo necessario per completare l'operazione e le risorse di sistema utilizzate durante il processo.

Normalmente, i file tar compressi con queste utilità hanno rispettivamente le estensioni .gz, .bz2 o .xz. Negli esempi seguenti, utilizzeremo questi file: file1, file2, file3, file4 e file5.

Compressione di file con gzip, bzip2 e xz

Raggruppa tutti i file nella directory di lavoro corrente e comprimi il pacchetto risultante con gzip, bzip2 e xz (nota l'uso di un normale espressione per specificare quali file devono essere inclusi nel bundle – questo per evitare che lo strumento di archiviazione raggruppi i tarball creati nei passaggi precedenti).

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

Elenca contenuti e aggiorna/aggiungi file all'archivio Tar

Elenca il contenuto di un file tar e visualizza le stesse informazioni come un lungo elenco di directory. Tieni presente che le operazioni di aggiornamento o aggiunta non possono essere applicate direttamente ai file compressi.

Decomprimere i file Tar

Se è necessario aggiornare o aggiungere un file a un file tar compresso, è necessario decomprimere il file tar e aggiornarlo/aggiungerlo, quindi comprimerlo nuovamente.

tar tvf [tarball]

Esegui uno dei seguenti comandi:

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

Elimina o aggiungi file all'archivio Tar

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

E

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

e confrontare la data e l'ora di modifica del file4 con le stesse informazioni mostrate in precedenza.

Escludi file dai backup

Supponiamo di voler eseguire un backup delle directory home dell'utente. Una buona pratica dell'amministratore di sistema sarebbe (potrebbe anche essere specificata dalle politiche aziendali) escludere tutti i file video e audio dai backup.

Forse il tuo primo approccio sarebbe quello di escludere dal backup tutti i file con estensione .mp3 o .mp4 (o altre estensioni). E se hai un utente intelligente che può cambiare l'estensione in .txt o .bkp, il tuo approccio non ti servirà a molto.

Per rilevare un file audio o video, è necessario verificarne il tipo con un file. Il seguente script di shell farà il lavoro.

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

Ripristina il backup con i permessi di conservazione di Tar

Puoi quindi ripristinare il backup nella directory home dell'utente originale (user_restore in questo esempio), preservando le autorizzazioni, con il comando seguente.

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

Utilizzo del comando Trova per cercare file

Il comando find viene utilizzato per cercare ricorsivamente negli alberi di directory file o directory che corrispondono a determinate caratteristiche e quindi può stampare i file o le directory corrispondenti o eseguire altre operazioni sulle corrispondenze.

Normalmente, cercheremo per nome, proprietario, gruppo, tipo, autorizzazioni, data e dimensione.

La sintassi di base del comando trova è la seguente:

find [directory_to_search] [expression]

Trovare i file in modo ricorsivo in base alle dimensioni

Trova tutti i file (-f) nella directory corrente (.) e nelle 2 sottodirectory sottostanti (-max Depth 3 include la directory di lavoro corrente e 2 livelli sotto) la cui dimensione (-size) è maggiore di 2 MB.

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

Trovare ed eliminare file che corrispondono a determinati criteri

I file con autorizzazioni 777 sono talvolta considerati una porta aperta agli aggressori esterni. In ogni caso, non è sicuro permettere a nessuno di fare qualcosa con i file. Adotteremo un approccio piuttosto aggressivo e li elimineremo! ('{}' + viene utilizzato per “raccogliere” i risultati della ricerca).

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

Ricerca di file in base ai timestamp

Cerca i file di configurazione in /etc a cui è stato effettuato l'accesso (-atime) o modificato (-mtime) altri (+180) o meno (-180) di 6 mesi fa o esattamente 6 mesi fa (180) .

Modificare il seguente comando come nell'esempio seguente:

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

Imposta i permessi dei file e gli attributi di base

I primi 10 caratteri nell'output di ls -l sono gli attributi del file. Il primo di questi caratteri viene utilizzato per indicare il tipo di file:

  • -: un file normale
  • -d : una directory
  • -l : un collegamento simbolico
  • -c : un dispositivo a caratteri (che tratta i dati come un flusso di byte, cioè un terminale)
  • -b : un dispositivo a blocchi (che gestisce i dati in blocchi, ovvero dispositivi di archiviazione)

I successivi nove caratteri degli attributi file sono chiamati modalità file e rappresentano lettura (r), scrittura (w) ed esecuzione (x) autorizzazioni del proprietario del file, del proprietario del gruppo del file e del resto degli utenti (comunemente indicato come "il mondo").

Mentre il permesso di lettura su un file permette di aprire e leggere lo stesso, lo stesso permesso su una directory permette di elencarne il contenuto se è impostato anche il permesso di esecuzione. Inoltre, il permesso di esecuzione in un file consente di gestirlo come un programma ed eseguirlo, mentre in una directory consente di inserire lo stesso in un cd.

I permessi dei file vengono modificati con il comando chmod, la cui sintassi di base è la seguente:

chmod [new_mode] file

Dove new_mode è un numero ottale o un'espressione che specifica le nuove autorizzazioni.

Il numero ottale può essere convertito dal suo equivalente binario, che viene calcolato dai permessi file desiderati per il proprietario, il gruppo e il mondo, come segue:

La presenza di determinati permessi equivale a una potenza di 2 (r=22, w=21, x=20 ), mentre la sua assenza equivale a 0. Per esempio:

Per impostare i permessi del file come sopra in forma ottale, digita:

chmod 744 myfile

Puoi anche impostare la modalità di un file utilizzando un'espressione che indica i diritti del proprietario con la lettera u, i diritti del proprietario del gruppo con la lettera g e il resto con o.

Tutti questi “individui” possono essere rappresentati contemporaneamente con la lettera a. Le autorizzazioni vengono concesse (o revocate) rispettivamente con i segni + o -.

Rimuovere l'autorizzazione di esecuzione su uno script a tutti gli utenti

Come abbiamo spiegato in precedenza, possiamo revocare un determinato permesso anteponendovi il segno meno e indicando se deve essere revocato per il proprietario, per il proprietario del gruppo o per tutti gli utenti. La riga seguente può essere interpretata come segue: Cambia modalità per tutti gli utenti (a), revoca (-) il permesso di esecuzione (x) .

chmod a-x backup.sh

Concessione di autorizzazioni di lettura, scrittura ed esecuzione per un file al proprietario e al proprietario del gruppo, nonché autorizzazioni di lettura per tutto il mondo.

Quando utilizziamo un numero ottale a 3 cifre per impostare i permessi per un file, la prima cifra indica i permessi per il proprietario, la seconda cifra per il proprietario del gruppo e la terza cifra per tutti gli altri:

  • Proprietario: (r=22 + w=21 + x=20=7)
  • Proprietario del gruppo: (r=22 + w=21 + x=20=7)
  • Mondo: (r=22 + w=0 + x=0=4),
chmod 774 myfile

Col tempo e con la pratica sarai in grado di decidere quale metodo per modificare la modalità di un file funziona meglio per te in ciascun caso. Un lungo elenco di directory mostra anche il proprietario del file e il proprietario del gruppo (che fungono da controllo di accesso rudimentale ma efficace ai file in un sistema):

La proprietà del file viene modificata con il comando chown. Il proprietario e il proprietario del gruppo possono essere modificati contemporaneamente o separatamente. La sua sintassi di base è la seguente:

chown user:group file

Dove deve essere presente almeno un utente o un gruppo.

Esempi di comandi Chown

Modifica del proprietario di un file in un determinato utente.

chown gacanepa sent

Modifica del proprietario e del gruppo di un file in una specifica coppia utente:gruppo.

chown gacanepa:gacanepa TestFile

Modificare solo il proprietario del gruppo di un file in un determinato gruppo. Nota i due punti prima del nome del gruppo.

chown :gacanepa email_body.txt
Conclusione

In qualità di amministratore di sistema, devi sapere come creare e ripristinare i backup, come trovare file nel tuo sistema e modificarne gli attributi, insieme ad alcuni trucchi che possono semplificarti la vita e impedirti di incorrere in problemi futuri.

Spero che i suggerimenti forniti nel presente articolo ti aiuteranno a raggiungere questo obiettivo. Sentiti libero di aggiungere le tue informazioni e idee nella sezione commenti a beneficio della comunità. Grazie in anticipo!

L'eBook LFCS è ora disponibile per l'acquisto. Ordina la tua copia oggi e inizia il tuo viaggio per diventare un amministratore di sistema Linux certificato!

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

Ultimo ma non meno importante, considera l'acquisto del voucher per l'esame utilizzando i seguenti collegamenti per guadagnarci una piccola commissione, che ci aiuterà a mantenere aggiornato questo libro.