In diesem Artikel werfen wir einen Blick auf die Grundlagen der Basics für Linux-Berechtigungen. Außerdem beschreiben wir ihre Bedeutung im Zusammenhang mit einer VPS-Umgebung. Wir bringen Licht in die komplizierte Welt der Benutzerprivilegien, des Dateibesitzes und der Zugriffsbeschränkungen und vermitteln dir dadurch das Wissen, das du brauchst, um deinen Server und seine Daten zu schützen.
Egal, ob du ein Webentwickler, ein Systemadministrator oder einfach jemand bist, der neugierig auf das Innenleben der VPS-Verwaltung ist, lies weiter, wenn wir die Linux-Berechtigungen auf deinem virtuellen Server beschreiben. Am Ende dieses Artikels bist du gut gerüstet, um dich im Labyrinth der Berechtigungen zurechtzufinden und deinen VPS sicher zu machen.
Linux-Dateiberechtigungen verstehen
Als Systemadministrator ist das Verständnis von Dateiberechtigungen mit dem Verständnis der Sprache der Kontrolle und des Zugriffs verbunden. Linux-Dateiberechtigungen sind deine Pförtner, die bestimmen, wer Dateien und Verzeichnisse auf deinem VPS anzeigen, ändern oder ausführen darf. Dadurch wird sichergestellt, dass nur autorisierte Personen auf deine Daten und Anwendungen zugreifen können.
Die drei Berechtigungsarten
Das Herzstück der Linux-Dateiberechtigungen sind drei grundlegende Attribute, die jeweils eine bestimmte Facette des Dateizugriffs regeln:
Lesen (r): Diese Berechtigung erlaubt einem Nutzer oder einer Gruppe, die Inhalte einer Datei anzuschauen oder den Inhalt eines Verzeichnisses aufzulisten. Der Buchstabe r in den Berechtigungseinstellungen zeigt sie an.
Schreiben (w): Die Schreibberechtigung erlaubt Nutzern oder Gruppen, die Inhalte von Datein zu modifizieren oder Dateien im Verzeichnis zu erstellen und zu löschen. Der Buchstabe w stellt die Berechtigung dar.
Ausführen (x): Die Ausführungsberechtigung, dargestellt durch den Buchstaben x, gibt dir die Möglichkeit, Skripte oder Programme auszuführen. Ohne diese Berechtigung ist die Ausführung von Programmen oder der Wechsel in Verzeichnisse nicht möglich.
Die drei Berechtigungslevels
Linux gewährt keine allgemeinen Berechtigungen, sondern bezieht sie auf bestimmte Entitäten. Es gibt drei primäre Berechtigungsstufen:
Nutzer (u): Dieses Level bezieht sich auf den Eigentümer der Datei oder des Verzeichnisses. Bei dem Nutzer kann es sich um die Person handeln, die die Datei erstellt hat, oder um einen bestimmten Benutzer mit spezifischen Zugriffsrechten.
Gruppe (g): Gruppenberechtigungen gelten für eine vordefinierte Gruppe von Benutzern, die gemeinsam auf eine Datei oder ein Verzeichnis zugreifen. Gruppen sind eine effiziente Methode zur Verwaltung von Berechtigungen für mehrere Benutzer mit ähnlichen Anforderungen.
Andere (o): Die Kategorie „Andere“ umfasst alle Personen, die weder Eigentümer noch Mitglied der mit der Datei oder dem Verzeichnis verbundenen Gruppe sind. Diese Berechtigungen sind die offensten und gelten in der Regel für alle Benutzer in dem System.
Numerische und symbolische Darstellung von Berechtigungen
Linux-Berechtigungen können in zwei Formaten dargestellt werden: einerseits numerische und andererseits symbolische Notation.
Numerische Notation: In diesem Format erhält jede Berechtigung einen numerischen Wert. Lesen wird durch 4 repräsentiert, Schreiben durch 2 und Ausführen durch 1. Diese Werte werden dann addiert, um eine dreistellige Zahl zu erzeugen. Die erste Ziffer steht dabei für die Nutzerberechtigungen, die zweite Ziffer für die Gruppenberechtigungen und die dritte Ziffer für die sonstigen Berechtigungen. Eine Datei mit der Berechtigung 644 würde zum Beispiel bedeuten, dass der Benutzer Lese- und Schreibberechtigungen hat (4+2=6), während die Gruppe und andere nur Leserechte haben (4).
Berechtigung | Numerischer Wert |
Lesen | 4 |
Schreiben | 2 |
Ausführen | 1 |
Symbolische Notation: Die symbolische Notation verwendet eine Kombination aus Buchstaben und Symbolen zur Darstellung von Berechtigungen. r steht für Lesen, w für Schreiben, x für Ausführen und ‚-‚ für keine Berechtigung. Diese Symbole werden dann zusammen mit Benutzer, Gruppe und anderen verwendet, um Berechtigungen festzulegen. Zum Beispiel bedeutet rw-r–r– folgendes: Nutzer können lesen und schreiben, doch die Gruppe und andere können nur lesen.
Symbol | Bedeutung |
r | Leseberechtigung |
w | Schreibberechtigung |
x | Ausführberechtigung |
– | Keine Berechtigung |
Im folgenden Abschnitt befassen wir uns mit den praktischen Anwendungen dieser Berechtigungen und werfen einen genaueren Blick auf Umask.
Dateiberechtigungen anschauen
Um einen Einblick in die bestehenden Dateiberechtigungen auf deinem Linux VPS zu erhalten, musst du dir zuerst ein paar zuverlässige Befehle zu Nutze machen. Sehen wir uns an, wie du ls -l und stat verwenden kannst, um die komplexen Details deiner Dateien und Verzeichnisse zu enthüllen.
Verwendung des Is-Befehls
Der Befehl ls mit der Option -l ist das ideale Werkzeug, um die Dateiberechtigungen in einem benutzerfreundlichen und für den Nutzer lesbaren Format anzuzeigen. Öffne zuerst dein Terminal und navigiere zu dem Verzeichnis, das die gewünschte Datei oder das gewünschte Verzeichnis enthält. Führe dann den folgenden Befehl aus:
ls -l filename_or_directory
Ersetze dann filename_or_directory durch den tatsächlichen Namen der Datei oder des Verzeichnisses, das du untersuchen willst. Wenn du diesen Befehl ausführst, wird eine detaillierte Liste angezeigt, die Dateiberechtigungen, Eigentümerinformationen, Dateigröße, Änderungsdatum und mehr enthält.
Die Ausgabe sieht dann etwa so aus:
lrwxrwxrwx 1 root root 7 Aug 25 2021 filename
Hier stellt der Teil lrwxrwxrwx die Berechtigungen der Datei in symbolischer Notation dar. Die Nutzer- und Gruppenwerte geben den Eigentümer bzw. die Gruppe der Datei an.
Verwendung von stat
Für eine genauere Betrachtung der Dateiberechtigungen und zusätzlicher Dateiinformationen kannst du zudem den Befehl stat verwenden. Dieser Befehl bietet in diesem Sinne einen umfassenden Überblick über die Attribute einer Datei.
Um stat zu nutzen, gib einfach den folgenden Befehl ein:
stat <filename_or_directory>
Auch hier ersetzt man <filename_or_directory> durch den tatsächlichen Namen der Datei oder des Verzeichnisses, das man untersuchen möchte. Die Ausgabe enthält dann viele Informationen, einschließlich Zugriffs-, Modifikations- und Änderungszeitpunkte, in einem strukturierten Format.
Diese Befehle ermöglichen es einem, die Zugriffsrechte von Dateien und Verzeichnissen auf dem VPS zu prüfen und dadurch zu verstehen, was für eine effektive Verwaltung von Zugriff und Sicherheit unerlässlich ist.
Ändern von Berechtigungen mit chmod
Der Befehl chmod wird zum Ändern von Dateirechten verwendet. Mit ihm kannst du die Berechtigungen für eine Datei oder ein Verzeichnis entweder in symbolischer oder oktaler Notation festlegen oder ändern.
Symbolische Notation: Diese Methode verwendet Buchstaben (u, g, o, a) und Symbole (+, -, =) zum Hinzufügen oder Entfernen von Berechtigungen.
Symbol | Bedeutung |
u | User/Nutzer (Eigentümer der Datei) |
g | Gruppe (Nutzer in derselben Gruppe wie die Datei) |
o | Others/Andere (sonstige Nutzer) |
a | Alle (eine Kombination von u, g und o) |
+ | Fügt eine spezifische Berechtigung hinzu |
– | Entfernt eine spezifische Berechtigung |
= | Legt die angegebene Berechtigung fest und entfernt alle anderen |
Beispiel: Um Schreibrechte für den Benutzer und die Gruppe hinzuzufügen und alle Rechte für andere auf eine Datei mit dem Namen example.txt zu entfernen, kannst du den folgenden Befehl verwenden:
chmod ug+w,o-rx example.txt
Oktale Notation: Bei dieser Methode werden drei Ziffern (0-7) verwendet, um die Berechtigungen für den Eigentümer, die Gruppe und andere darzustellen. Jede Ziffer entspricht Lese- (4), Schreib- (2) und Ausführungsberechtigungen (1).
Ziffern(0-7) | Zugehörige Berechtigungen |
0 | Keine Berechtigungen |
1 | Ausführen(1) |
2 | Schreiben (2) |
3 | Schreiben + Ausführen(2+1) |
4 | Lesen (4) |
5 | Lesen + Ausführen (4+1) |
6 | Lesen + Schreiben (4+2) |
7 | Lesen + Schreiben + Ausführen (4+2+1) |
Beispiel: Um dem Eigentümer Lese- und Schreibrechte, der Gruppe nur Leserechte und anderen keine Rechte für eine Datei namens example.txt zu erteilen, kannst du den folgenden Befehl verwenden:
chmod 640 example.txt
Nutzer- und Gruppeneigentümerschaft verstehen
Eigentümerschaft spielt eine wichtige Rolle beim Festlegen von Datei- und Verzeichnisberechtigungen. In diesem Kapitel werden wir untersuchen, wie sich der Besitz auf die Berechtigungen auswirkt und wie man den besitz von Dateien mit dem Befehl ls -l überprüft.
Einfluss von Eigentümerschaft auf Berechtigungen
In Unix-basierten Systemen ist jede Datei und jedes Verzeichnis mit zwei Eigentumsstufen verbunden: Benutzer- und Gruppeneigentümerschaft. Diese Besitzverhältnisse sind von entscheidender Bedeutung, da sie sich direkt darauf auswirken, wer auf eine Datei oder ein Verzeichnis zugreifen, sie ändern oder ausführen darf.
Benutzereigentümerschaft: Der Benutzer, der eine Datei oder ein Verzeichnis erstellt, wird standardmäßig deren Eigentümer. Dieser Benutzer hat dadurch besondere Rechte und kann die Berechtigungen der Datei ändern, sie lesen, schreiben und löschen, unabhängig von den für andere festgelegten Berechtigungen.
Gruppeneigentümerschaft: Jeder Benutzer auf einem Unix-System gehört zu einer oder mehreren Benutzergruppen. Eine Datei oder ein Verzeichnis kann dann einer bestimmten Gruppe zugewiesen werden. Benutzer, die dieser Gruppe angehören, erhalten entsprechend Gruppenbesitz an der Datei oder dem Verzeichnis. Die Gruppeneigentümerschaft ermöglicht den Gruppenmitgliedern den Zugriff auf die Datei gemäß den Gruppenberechtigungen.
Überprüfen des Dateibesitzes mit dem Befehl ls -l
Der Befehl ls listet Dateien und Verzeichnisse in einem Verzeichnis auf. Wenn er mit der Option -l verwendet wird, liefert er eine detaillierte Auflistung, die auch die Eigentümerinformationen enthält. So kannst du den Befehl verwenden, um den Besitz von Dateien zu überprüfen:
ls -l
Die Ausgabe dieses Befehls zeigt Informationen in folgendem Format an:
-rw-r--r-- 1 user1 group1 1234 Sep 6 10:00 file.txt
Im Folgenden wird aufgeschlüsselt, wofür die einzelnen Spalten stehen:
– -rw-r–r–: Diese Zeichen stehen für die Berechtigungen der Datei. Dabei gibt das erste Zeichen den Dateityp an (in diesem Fall eine normale Datei), gefolgt von drei Gruppen von Berechtigungen für den Dateieigentümer, den Gruppeneigentümer und andere.
– 1: Diese Zahl gibt die Anzahl der Hardlinks zu dieser Datei an.
– user1: Dies ist der Name des Dateieigentümers.
– group1: Dies ist der Name des Gruppeneigentümers.
– 1234: Dies ist die Dateigröße in Bytes.
– Sep 6 10:00: Dies ist das Datum und die Uhrzeit der letzten Modifikation.
– file.txt: Dies ist der Datei- oder Verzeichnisname.
Im obigen Beispiel besitzt user1 die Datei file.txt und ist Teil der Gruppe group1. Die Berechtigungen für die Datei sind rw-r–r–, was bedeutet, dass der Eigentümer Lese- und Schreibrechte hat, während andere die Datei nur lesen können.
Dateibesitz ändern
Das Anpassen von Dateibesitz ist eine wichtige Aufgabe, die es dir im Grunde genommen ermöglicht, den Besitz von Dateien und Verzeichnissen zwischen Benutzern und Gruppen zu übertragen. Im folgenden Kapitel erfährst du, wie du den Eigentümer und die Gruppe einer Datei oder eines Verzeichnisses mit den Befehlen chown und chgrp änderst, und erhältst Codebeispiele.
Wie Dateibesitz mit chown geändert wird
Der Befehl chown ändert den Besitzer einer Datei oder eines Verzeichnisses. Er ermöglicht es, die Eigentümerschaft von einem Benutzer auf einen anderen zu übertragen. Um chown zu verwenden, brauchst du Superuser-Rechte (root) oder den Besitz der Datei oder des Verzeichnisses.
Wenn du mehr über die verschiedenen Benutzer auf einem Linux-Server erfahren möchtest, sieh dir unseren Hilfreichen Guide für Superuser Accounts, sudo & root an.
Die grundlegende Syntax für chown lautet wie folgt:
chown [new_owner:new_group] [file_or_directory]
– new_owner: Der Nutzername des neuen Besitzers.
– new_group: Der Name der neuen Gruppe (optional).
– file_or_directory: Die Datei oder das Verzeichnis, das du ändern möchtest.
Wie Dateibesitz mit chgrp geändert wird
Der Befehl chgrp ändert die Gruppeneigentümerschaft einer Datei oder eines Verzeichnisses. Wie bei chown benötigst du dafür Superuser-Rechte oder musst die Datei oder das Verzeichnis besitzen, um chgrp zu verwenden.
Die grundlegende Syntax für chgrp lautet wie folgt:
chgrp [new_group][file_or_directory]
– new_group: Der Name der neuen Gruppe.
– file_or_directory: Die Datei oder das Verzeichnis, das du ändern möchtest.
Code-Beispiele für die Änderung der Eigentümerschaft
Im Folgenden findest du einige praxisnahe Code-Beispiele für das Ändern des Besitzes von Dateien und Verzeichnissen:
1. Dateieigentümerschaft mit chown ändern:
Um den Besitz einer Datei namens file.txt auf einen Benutzer namens newuser zu ändern, verwende den folgenden Befehl:
sudo chown newuser file.txt
Um sowohl den Eigentümer als auch den Gruppenbesitz derselben Datei zu ändern, verwende:
sudo chown newuser:newgroup file.txt
2. Verzeichniseigentümerschaft mit chown ändern:
Um den Besitz eines Verzeichnisses namens mydir und seines gesamten Inhalts auf newuser zu übertragen, verwende die Option -R für rekursive Besitzerwechsel:
sudo chown -R newuser mydir
3. Gruppeneigentümerschaft mit chgrp ändern:
Um den Gruppenbesitz einer Datei namens file.txt auf eine Gruppe namens newgroup zu ändern, verwende den folgenden Befehl:
sudo chgrp newgroup file.txt
4. Gruppeneigentümerschaft eines Verzeichnisses mit chgrp ändern:
Um die Gruppeneigentümerschaft eines Verzeichnisses namens mydir und seines gesamten Inhalts auf newgroup zu ändern, verwende die Option -R für rekursive Änderung der Gruppeneigentümerschaft:
sudo chgrp -R newgroup mydir
Denke immer daran, newuser und newgroup durch die tatsächlichen Benutzernamen und Gruppennamen zu ersetzen, die du zuweisen möchtest. Darüber hinaus solltest du sudo verwenden, um diese Befehle mit Superuser-Rechten auszuführen, da das Ändern der Besitzverhältnisse in der Regel erweiterte Rechte erfordert. Wir empfehlen Vorsicht beim Ändern der Besitzverhältnisse, da dies erhebliche Auswirkungen auf die Zugriffskontrolle und die Sicherheit deines Systems haben kann.