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.