Website-Suche

So tarieren Sie Dateien, legen Dateiberechtigungen fest und finden Dateien unter Linux


Vor kurzem hat die Linux Foundation die LFCS-Zertifizierung (Linux Foundation Certified Sysadmin) gestartet, ein brandneues Programm, das es Einzelpersonen ermöglichen soll, grundlegende bis mittlere Systemverwaltungsaufgaben auf Linux-Systemen durchzuführen.

Dazu gehören die Unterstützung bereits laufender Systeme und Services sowie die Fehlerbehebung und Analyse der ersten Ebene sowie die Möglichkeit, zu entscheiden, wann Probleme an die Entwicklungsteams weitergeleitet werden sollen.

Die Serie trägt den Titel Vorbereitung auf die LFCS (Linux Foundation Certified Sysadmin) Teile 1 bis 33 und behandelt die folgenden Themen:

Nein.Titel
Teil 1So verwenden Sie den Befehl 'sed', um Dateien unter Linux zu manipulieren
Teil 2So installieren und verwenden Sie Vi/Vim unter Linux
Teil 3Archivieren von Dateien, Festlegen von Dateiberechtigungen und Suchen von Dateien unter Linux
Teil 4Partitionieren von Speichergeräten, Formatieren von Dateisystemen und Konfigurieren von Auslagerungspartitionen
Teil 5Mounten/Unmounten von lokalen und Netzwerk-Dateisystemen (Samba & NFS) unter Linux
Teil 6Partitionen als RAID-Geräte zusammenstellen – Erstellen und Verwalten von System-Backups
Teil 7Verwalten von Systemstartprozessen und -diensten (SysVinit, systemd und upstart)
Teil 8Verwalten von Benutzern und Gruppen, Dateiberechtigungen und Sudo-Zugriff
Teil 9Linux-Paketverwaltung mit Yum, RPM, Apt, Dpkg, Aptitude und Zypper
Teil 10Erlernen grundlegender Shell-Skripterstellung und Fehlerbehebung bei Dateisystemen
Teil 11Verwalten und Erstellen von LVM mit den Befehlen vgcreate, lvcreate und lvextend
Teil 12So erkunden Sie Linux mit installierten Hilfedokumentationen und Tools
Teil 13Konfigurieren und Beheben von Problemen mit Grand Unified Bootloader (GRUB)
Teil 14Überwachen Sie die Ressourcennutzung von Linux-Prozessen und legen Sie Prozesslimits pro Benutzer fest
Teil 15Festlegen oder Ändern von Kernel-Laufzeitparametern in Linux-Systemen
Teil 16Implementierung einer obligatorischen Zugriffskontrolle mit SELinux oder AppArmor unter Linux
Teil 17Festlegen von Zugriffssteuerungslisten (Access Control Lists, ACLs) und Festplattenkontingenten für Benutzer und Gruppen
Teil 18Installieren von Netzwerkdiensten und Konfigurieren des automatischen Starts beim Booten
Teil 19Eine ultimative Anleitung zum Einrichten eines FTP-Servers, um anonyme Anmeldungen zu ermöglichen
Teil 20Richten Sie einen grundlegenden DNS-Server für rekursives Caching ein und konfigurieren Sie Zonen für die Domäne
Teil 21Installieren, Sichern und Optimieren der Leistung des MariaDB-Datenbankservers
Teil 22Installieren und Konfigurieren des NFS-Servers für die gemeinsame Nutzung von Dateisystemen
Teil 23So richten Sie Apache mit namensbasiertem virtuellem Hosting mit SSL-Zertifikat ein
Teil 24So richten Sie eine iptables-Firewall ein, um den Fernzugriff auf Dienste unter Linux zu ermöglichen
Teil 25So verwandeln Sie ein Linux in einen Router, um den Datenverkehr statisch und dynamisch zu verarbeiten
Teil 26So richten Sie verschlüsselte Dateisysteme ein und tauschen sie mit dem Cryptsetup-Tool aus
Teil 27Überwachen der Systemauslastung, Ausfälle und Fehlerbehebung bei Linux-Servern
Teil 28Einrichten eines Netzwerk-Repositorys zum Installieren oder Aktualisieren von Paketen
Teil 29Prüfen der Netzwerkleistung, -sicherheit und -problembehandlung
Teil 30Installieren und Verwalten von virtuellen Maschinen und Containern
Teil 31Lernen Sie die Grundlagen von Git kennen, um Projekte effizient zu verwalten
Teil 32Ein Leitfaden für Anfänger zur Konfiguration von IPv4- und IPv6-Adressen unter Linux
Teil 33Ein Leitfaden für Anfänger zum Erstellen von Netzwerkbindung und -bridging in Ubuntu

Dieser Beitrag ist Teil 3 einer 33-teiligen Tutorial-Reihe, hier in diesem Teil behandeln wir, wie man Dateien und Verzeichnisse archiviert/komprimiert, Dateiattribute setzt und Dateien im Dateisystem findet, die für die LFCS-Zertifizierungsprüfung erforderlich sind.

Archivierungs- und Komprimierungstools für Linux

Ein Dateiarchivierungstool gruppiert eine Reihe von Dateien in einer einzigen eigenständigen Datei, die wir auf verschiedenen Medientypen sichern, über ein Netzwerk übertragen oder per E-Mail versenden können.

Das am häufigsten verwendete Archivierungsprogramm unter Linux ist der tar-Befehl. Wenn ein Archivierungsprogramm zusammen mit einem Komprimierungstool verwendet wird, ermöglicht es die Reduzierung der Festplattengröße, die zum Speichern derselben Dateien und Informationen erforderlich ist.

Linux tar-Dienstprogramm

tar bündelt eine Gruppe von Dateien in einem einzigen Archiv (allgemein als tar-Datei oder Tarball bezeichnet). Der Name stand ursprünglich für Tape Archiver, aber wir müssen beachten, dass wir dieses Tool verwenden können, um Daten auf jede Art von beschreibbaren Medien (nicht nur auf Bänder) zu archivieren.

Tar wird normalerweise mit einem Komprimierungstool wie gzip, bzip2 oder xz verwendet, um einen komprimierten Tarball zu erzeugen.

Die grundlegende Syntax des tar-Befehls lautet wie folgt:

# tar [options] [pathname ...]

Dabei ist ... der Ausdruck, der verwendet wird, um anzugeben, auf welche Dateien reagiert werden soll.

Die am häufigsten verwendeten tar-Befehle

Lange OptionAbkürzungBeschreibung
 –schaffen c Erstellt ein tar-Archiv
 –verbinden Ein Hängt tar-Dateien an ein Archiv an
 –anfügen r Hängt Dateien an das Ende eines Archivs an
 –aktualisieren u Hängt Dateien an, die neuer sind als die Kopie im Archiv
 –diff oder –compare d Unterschiede zwischen Archiv und Dateisystem finden
 –Datei-Archiv f Archivdatei oder Gerät verwenden ARCHIV
 –Liste t Listet den Inhalt eines Tarballs auf
 –extract oder –get x Extrahiert Dateien aus einem Archiv

Normalerweise verwendete tar-Betriebsmodifikatoren

Lange OptionAbkürzungBeschreibung
–Verzeichnis Verzeichnis C Änderungen am Verzeichnisverzeichnis vor dem Ausführen von Vorgängen
–gleiche-Berechtigungen p behält die ursprünglichen Berechtigungen bei
–ausführlich v Listet alle gelesenen oder extrahierten Dateien auf. Wenn dieses Flag zusammen mit –list verwendet wird, werden die Dateigrößen, der Besitz und die Zeitstempel angezeigt.
–überprüfen W Überprüft das Archiv nach dem Schreiben
–Datei ausschließen — Schließt Dateien aus dem Archiv aus
–exclude=Muster X Dateien ausschließen, die als PATTERN angegeben sind
 –gzip oder –gunzip z Verarbeitet ein Archiv über Gzip
–bzip2 j Verarbeitet ein Archiv über bzip2
–xz J Verarbeitet ein Archiv über xz

Linux-Dienstprogramme Gzip, Bzip2 und Xz

Gzip ist das älteste Komprimierungswerkzeug und bietet die geringste Komprimierung, während bzip2 eine verbesserte Komprimierung bietet. Darüber hinaus ist xz das neueste, bietet aber (normalerweise) die beste Komprimierung.

Die Vorteile der besten Komprimierung haben ihren Preis: die Zeit, die benötigt wird, um den Vorgang abzuschließen, und die Systemressourcen, die während des Prozesses verwendet werden.

Normalerweise haben tar-Dateien, die mit diesen Dienstprogrammen komprimiert wurden, die Erweiterungen .gz, .bz2 oder .xz. In den folgenden Beispielen verwenden wir die folgenden Dateien: file1, file2, file3, file4 und file5.

Komprimieren von Dateien mit gzip, bzip2 und xz

Gruppieren Sie alle Dateien im aktuellen Arbeitsverzeichnis und komprimieren Sie das resultierende Bundle mit gzip, bzip2 und xz (bitte beachten Sie die Verwendung eines regulären Ausdrucks, um anzugeben, welche Dateien in das Bundle aufgenommen werden sollen – dies soll verhindern, dass das Archivierungstool die in den vorherigen Schritten erstellten Tarballs gruppiert).

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

Inhalt auflisten und Dateien aktualisieren/anhängen tar Archiv

Listen Sie den Inhalt eines Tarballs auf, und zeigen Sie die gleichen Informationen wie in einer langen Verzeichnisliste an. Beachten Sie, dass Aktualisierungs- oder Anfügevorgänge nicht direkt auf komprimierte Dateien angewendet werden können.

Dekomprimieren von Tar-Dateien

Wenn Sie eine Datei aktualisieren oder an einen komprimierten Tarball anhängen müssen, müssen Sie die TAR-Datei dekomprimieren, aktualisieren/anhängen und dann erneut komprimieren.

# tar tvf [tarball]

Führen Sie einen der folgenden Befehle aus:

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

Löschen oder Hinzufügen von Dateien zum Tar-Archiv

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

und

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

Endlich

# tar tvf [tarball] #again

und vergleichen Sie das Änderungsdatum und die Uhrzeit von Datei4 mit den gleichen Informationen wie zuvor gezeigt.

Ausschließen von Dateien aus Backups

Angenommen, Sie möchten eine Sicherung der Basisverzeichnisse des Benutzers durchführen. Eine gute Sysadmin-Praxis wäre (kann auch durch Unternehmensrichtlinien festgelegt werden), alle Video- und Audiodateien von Backups auszuschließen.

Vielleicht wäre Ihr erster Ansatz, alle Dateien mit einer .mp3 oder .mp4 Erweiterung (oder anderen Erweiterungen) von der Sicherung auszuschließen. Was ist, wenn Sie einen cleveren Benutzer haben, der die Erweiterung in .txt oder .bkp ändern kann, wird Ihnen Ihr Ansatz nicht viel nützen.

Um eine Audio- oder Videodatei zu erkennen, müssen Sie den Dateityp mit einer Datei überprüfen. Das folgende Shell-Skript erledigt die Aufgabe.

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

Wiederherstellen der Sicherung mit Tar-Beibehaltungsberechtigungen

Mit dem folgenden Befehl können Sie dann die Sicherung im Basisverzeichnis des ursprünglichen Benutzers wiederherstellen (user_restore in diesem Beispiel), wobei die Berechtigungen beibehalten werden.

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

Verwenden des Befehls "Suchen" zum Suchen nach Dateien

Der Befehl find wird verwendet, um rekursiv in Verzeichnisbäumen nach Dateien oder Verzeichnissen zu suchen, die bestimmten Merkmalen entsprechen, und kann dann entweder die übereinstimmenden Dateien oder Verzeichnisse drucken oder andere Operationen für die Übereinstimmungen ausführen.

Normalerweise suchen wir nach Name, Besitzer, Gruppe, Typ, Berechtigungen, Datum und Größe.

Die grundlegende Syntax des Befehls find lautet wie folgt:

# find [directory_to_search] [expression]

Rekursives Suchen von Dateien nach Größe

Sucht alle Dateien (-f) im aktuellen Verzeichnis (.) und 2 Unterverzeichnissen darunter (-maxdepth 3 enthält das aktuelle Arbeitsverzeichnis und 2 Ebenen darunter), deren Größe (-size) größer als 2 MB ist.

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

Suchen und Löschen von Dateien, die bestimmte Kriterien erfüllen

Dateien mit 777-Berechtigungen werden manchmal als offene Tür für externe Angreifer angesehen. In jedem Fall ist es nicht sicher, irgendjemanden irgendetwas mit Dateien machen zu lassen. Wir werden einen ziemlich aggressiven Ansatz wählen und sie löschen! ('{}' + wird verwendet, um die Ergebnisse der Suche zu "sammeln").

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

Suchen von Dateien anhand von Zeitstempeln

Suchen Sie nach Konfigurationsdateien in /etc, auf die mehr (-atime) zugegriffen (-atime) oder die geändert (-mtime) mehr (+180) oder weniger (-180) als vor 6 Monaten oder vor genau 6 Monaten (180) wurden.

Ändern Sie den folgenden Befehl wie im folgenden Beispiel:

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

Festlegen von Dateiberechtigungen und grundlegenden Attributen

Die ersten 10 Zeichen in der Ausgabe von ls -l sind die Dateiattribute. Das erste dieser Zeichen wird verwendet, um den Dateityp anzugeben:

  • - : eine reguläre Datei
  • -d : ein Verzeichnis
  • -l : ein symbolischer Link
  • -c : ein Zeichengerät (das Daten als einen Strom von Bytes behandelt, d.h. ein Terminal)
  • -b : ein Blockgerät (das Daten in Blöcken verarbeitet, d.h. Speichergeräte)

Die nächsten neun Zeichen der Dateiattribute werden als Dateimodus bezeichnet und stellen die Lese- (r), Schreib- (w) und Ausführungsberechtigungen (x) des Dateieigentümers, des Gruppenbesitzers der Datei und der übrigen Benutzer (allgemein als "die Welt" bezeichnet) dar.

Während die Leseberechtigung für eine Datei das Öffnen und Lesen einer Datei erlaubt, ermöglicht die gleiche Berechtigung für ein Verzeichnis, dass dessen Inhalt aufgelistet wird, wenn die Ausführungsberechtigung ebenfalls festgelegt ist. Darüber hinaus ermöglicht die Ausführungsberechtigung in einer Datei, dass sie als Programm behandelt und ausgeführt wird, während sie in einem Verzeichnis erlaubt, dasselbe in das Verzeichnis zu importieren.

Dateiberechtigungen werden mit dem Befehl chmod geändert, dessen grundlegende Syntax wie folgt lautet:

# chmod [new_mode] file

Dabei ist new_mode entweder eine Oktalzahl oder ein Ausdruck, der die neuen Berechtigungen angibt.

Die Oktalzahl kann wie folgt aus ihrem binären Äquivalent konvertiert werden, das aus den gewünschten Dateiberechtigungen für den Besitzer, die Gruppe und die Welt berechnet wird:

Das Vorhandensein einer bestimmten Berechtigung entspricht einer Potenz von 2 (r=22, w=21, x=20), während ihre Abwesenheit 0 entspricht. Zum Beispiel:

Geben Sie Folgendes ein, um die Berechtigungen der Datei wie oben in oktaler Form festzulegen:

# chmod 744 myfile

Sie können den Modus einer Datei auch mit einem Ausdruck festlegen, der die Rechte des Eigentümers mit dem Buchstaben u, die Rechte des Gruppenbesitzers mit dem Buchstaben g und den Rest mit o angibt.

Alle diese "Individuen" können gleichzeitig mit dem Buchstaben a dargestellt werden. Berechtigungen werden mit dem Zeichen "+" bzw. "-" erteilt (oder widerrufen).

Entfernen der Ausführungsberechtigung für ein Skript für alle Benutzer

Wie bereits erläutert, können wir eine bestimmte Berechtigung widerrufen, indem wir ihr das Minuszeichen voranstellen und angeben, ob sie für den Besitzer, den Gruppenbesitzer oder alle Benutzer widerrufen werden muss. Der folgende Einzeiler kann wie folgt interpretiert werden: Modus für alle (a) Benutzer ändern, Widerruf (-) Ausführungsberechtigung (x).

# chmod a-x backup.sh

Erteilen von Lese-, Schreib- und Ausführungsberechtigungen für eine Datei an den Besitzer und Gruppenbesitzer sowie Leseberechtigungen für die ganze Welt.

Wenn wir eine 3-stellige Oktalzahl verwenden, um Berechtigungen für eine Datei festzulegen, gibt die erste Ziffer die Berechtigungen für den Eigentümer, die zweite Ziffer für den Gruppenbesitzer und die dritte Ziffer für alle anderen an:

  • Besitzer: (r=22 + w=21 + x=20=7)
  • Gruppenbesitzer: (r=22 + w=21 + x=20=7)
  • Welt: (r=22 + w=0 + x=0=4),
# chmod 774 myfile

Mit der Zeit und mit etwas Übung werden Sie in der Lage sein, zu entscheiden, welche Methode zum Ändern eines Dateimodus für Sie jeweils am besten geeignet ist. Eine lange Verzeichnisliste zeigt auch den Eigentümer der Datei und ihren Gruppenbesitzer an (die als rudimentäre, aber effektive Zugriffskontrolle auf Dateien in einem System dienen):

Der Dateibesitz wird mit dem Befehl chown geändert. Der Besitzer und der Gruppenbesitzer können gleichzeitig oder separat geändert werden. Die grundlegende Syntax lautet wie folgt:

# chown user:group file

Dabei muss mindestens ein Benutzer oder eine Gruppe vorhanden sein.

Beispiele für chown-Befehle

Ändern des Eigentümers einer Datei in einen bestimmten Benutzer.

# chown gacanepa sent

Ändern des Eigentümers und der Gruppe einer Datei in ein bestimmtes Benutzer:Gruppen-Paar.

# chown gacanepa:gacanepa TestFile

Ändern nur des Gruppenbesitzers einer Datei in eine bestimmte Gruppe. Beachten Sie den Doppelpunkt vor dem Namen der Gruppe.

# chown :gacanepa email_body.txt
Schlussfolgerung

Als Systemadministrator müssen Sie wissen, wie Sie Backups erstellen und wiederherstellen, wie Sie Dateien in Ihrem System finden und ihre Attribute ändern, zusammen mit ein paar Tricks, die Ihnen das Leben erleichtern und verhindern, dass Sie in Zukunft auf Probleme stoßen.

Ich hoffe, dass die Tipps in diesem Artikel Ihnen helfen, dieses Ziel zu erreichen. Fühlen Sie sich frei, Ihre eigenen Informationen und Ideen im Kommentarbereich zum Nutzen der Community hinzuzufügen. Vielen Dank im Voraus!

Das LFCS eBook ist ab sofort zum Kauf erhältlich. Bestellen Sie noch heute Ihr Exemplar und beginnen Sie Ihre Reise zum zertifizierten Linux-Systemadministrator!

ProduktnamePreisKaufen
Der Leitfaden zur Vorbereitung der LFCS-Zertifizierung der Linux Foundation19,99 $[Jetzt kaufen]

Zu guter Letzt erwägen Sie bitte, Ihren Prüfungsgutschein über die folgenden Links zu kaufen, um uns eine kleine Provision zu verdienen, die uns hilft, dieses Buch auf dem neuesten Stand zu halten.

Verwandte Artikel: