Obwohl in Linux-basierten Systemen bereits viele gute Sicherheitsfunktionen integriert sind, kann eine sehr wichtige potenzielle Sicherheitsanfälligkeit bestehen, wenn lokaler Zugriff gewährt wird – dh dateiberechtigungsbasierte Probleme, die sich daraus ergeben, dass ein Benutzer Dateien und Verzeichnissen nicht die richtigen Berechtigungen zuweist. Basierend auf der Notwendigkeit ordnungsgemäßer Berechtigungen werde ich die Möglichkeiten zum Zuweisen von Berechtigungen durchgehen und Ihnen einige Beispiele zeigen, in denen Änderungen erforderlich sein können.,
Grundlegende Dateiberechtigungen
Berechtigungsgruppen
Jede Datei und jedes Verzeichnis verfügt über drei benutzerbasierte Berechtigungsgruppen:
- Eigentümer-Die Eigentümerberechtigungen gelten nur für den Eigentümer der Datei oder des Verzeichnisses, sie wirken sich nicht auf die Aktionen anderer Benutzer aus.
- Gruppe-Die Gruppenberechtigungen gelten nur für die Gruppe, die der Datei oder dem Verzeichnis zugewiesen wurde.
- alle Benutzer-Die Berechtigungen Alle Benutzer gelten für alle anderen Benutzer auf dem System, dies ist die Berechtigungsgruppe, die Sie am meisten sehen möchten.,
Berechtigungstypen
Jede Datei oder jedes Verzeichnis hat drei grundlegende Berechtigungstypen:
- read-Die Leseberechtigung bezieht sich auf die Fähigkeit eines Benutzers, den Inhalt der Datei zu lesen.
- write-Die Schreibberechtigungen beziehen sich auf die Fähigkeit eines Benutzers, eine Datei oder ein Verzeichnis zu schreiben oder zu ändern.
- execute-Die Execute-Berechtigung wirkt sich auf die Fähigkeit eines Benutzers aus, eine Datei auszuführen oder den Inhalt eines Verzeichnisses anzuzeigen.,
Anzeigen der Berechtigungen
Sie können die Berechtigungen anzeigen, indem Sie die Datei-oder Verzeichnisberechtigungen in Ihrem bevorzugten GUI-Dateimanager überprüfen (auf den ich hier nicht eingehen werde) oder indem Sie die Ausgabe des Befehls „ls-l“ im Terminal und während der Arbeit in dem Verzeichnis überprüfen, das die Datei oder den Ordner enthält.
Die Berechtigung in der Befehlszeile wird angezeigt als: _rwxrwxrwx 1 Besitzer: Gruppe
- Benutzerrechte / Berechtigungen
- Das erste Zeichen, das ich mit einem Unterstrich markiert habe, ist das spezielle Berechtigungsflag, das variieren kann.,
- Der folgende Satz von drei Zeichen (rwx) gilt für die Eigentümerberechtigungen.
- Der zweite Satz von drei Zeichen (rwx)ist für die Gruppenberechtigungen.
- Der dritte Satz von drei Zeichen (rwx) gilt für Alle Benutzerberechtigungen.
- Folgen Sie dieser Gruppierung, da die Ganzzahl / Zahl die Anzahl der Hardlinks zur Datei anzeigt.
- Das letzte Stück ist die Eigentümer-und Gruppenzuweisung, die als Owner:Group formatiert ist.
Ändern der Berechtigungen
In der Befehlszeile werden die Berechtigungen mit dem Befehl chmod bearbeitet., Sie können die Berechtigungen explizit oder mithilfe einer Binärreferenz zuweisen, wie unten beschrieben.
Berechtigungen explizit definieren
Um Berechtigungen explizit zu definieren, müssen Sie auf die Berechtigungsgruppe und die Berechtigungstypen verweisen.
Die verwendeten Berechtigungsgruppen sind:
Die möglichen Zuweisungsoperatoren sind + (plus) und – (minus); diese werden verwendet, um dem System mitzuteilen, ob die spezifischen Berechtigungen hinzugefügt oder entfernt werden sollen.,
Die verwendeten Berechtigungstypen sind:
- r-Read
- w-Write
- x-Execute
Angenommen, ich habe eine Datei mit dem Namen file1, für die derzeit die Berechtigungen _rw_rw_rw festgelegt sind. Jetzt möchten wir die Lese-und Schreibberechtigungen aus der Gruppe Alle Benutzer entfernen.,
Um diese Änderung vorzunehmen, rufen Sie den folgenden Befehl auf: chmod a-rw file1
Um die obigen Berechtigungen hinzuzufügen, rufen Sie den folgenden Befehl auf: chmod a+rw file1
Wenn Sie diese Berechtigungen erteilen möchten, ändern Sie das Minuszeichen in ein Plus, um diese Berechtigungen hinzuzufügen.
Verwenden binärer Verweise zum Festlegen von Berechtigungen
Nachdem Sie nun die Berechtigungsgruppen und-typen verstanden haben, sollte sich diese natürlich anfühlen. Um die Berechtigung mithilfe von Binärreferenzen festzulegen, müssen Sie zunächst verstehen, dass die Eingabe durch Eingabe von drei Ganzzahlen/Zahlen erfolgt.,
Eine Beispielberechtigungszeichenfolge wäre chmod 640 file1, was bedeutet, dass der Eigentümer Lese-und Schreibberechtigungen hat, die Gruppe Leseberechtigungen hat und alle anderen Benutzer keine Rechte an der Datei haben.
Die erste Zahl repräsentiert die Eigentümerberechtigung, die zweite die Gruppenberechtigungen und die letzte Zahl die Berechtigungen für alle anderen Benutzer. Die Zahlen sind eine binäre Darstellung der rwx-Zeichenfolge.
- r = 4
- w = 2
- x = 1
Sie fügen die Zahlen hinzu, um die Ganzzahl / Zahl zu erhalten, die die Berechtigungen darstellt, die Sie festlegen möchten., Sie müssen die binären Berechtigungen für jede der drei Berechtigungsgruppen angeben.
Um eine Datei auf Berechtigungen für Datei1 zum Lesen von _rwxr_____ _ festzulegen, geben Sie chmod 740 Datei1 ein.
Eigentümer und Gruppen
Ich habe oben mehrere Verweise auf Eigentümer und Gruppen gemacht, Ihnen jedoch noch nicht gesagt, wie Sie den Eigentümer und die Gruppe zuweisen oder ändern sollen, die einer Datei oder einem Verzeichnis zugewiesen sind.,
Sie verwenden den Befehl chown, um Eigentümer-und Gruppenzuweisungen zu ändern, die Syntax ist simplechown owner:group filename, also um den Besitzer von Datei1 in Benutzer1 und die Gruppe in Familie zu ändern, würden Sie chown user1:family file1 eingeben.
Erweiterte Berechtigungen
Das Flag für spezielle Berechtigungen kann mit einer der folgenden Optionen markiert werden:
- _ – keine speziellen Berechtigungen
- d – Verzeichnis
- l– Die Datei oder das Verzeichnis ist ein symbolischer Link
- s – Dies zeigte die setuid/setgid-Berechtigungen an., Dies wird nicht im speziellen Berechtigungsteil der Berechtigungsanzeige angezeigt, sondern als s im Leseteil der Eigentümer-oder Gruppenberechtigungen dargestellt.
- t-Dies zeigt die sticky Bit Berechtigungen. Dies wird nicht im speziellen Berechtigungsteil der Berechtigungsanzeige angezeigt, sondern als t im ausführbaren Teil der Berechtigungen aller Benutzer dargestellt
Setuid / Setgid Sonderberechtigungen
Die setuid / setguid-Berechtigungen werden verwendet, um das System anzuweisen, eine ausführbare Datei als Eigentümer mit den Berechtigungen des Besitzers auszuführen.,
Seien Sie vorsichtig mit setuid/setgid Bits in Berechtigungen. Wenn Sie einer Datei im Besitz von root mit dem setuid/setgid-Bit setuid / setgid falsch Berechtigungen zuweisen, können Sie Ihr System für intrusion öffnen.
Sie können das setuid/setgid-Bit nur durch explizite Definition von Berechtigungen zuweisen. Das Zeichen für das setuid / setguid Bit ist s.
Setzen Sie also das setuid / setguid Bit auf file2.sh sie würden den Befehl chmod g+s ausgeben file2.sh.,
Sticky Bit Spezielle Berechtigungen
Das Sticky Bit kann in einer gemeinsam genutzten Umgebung sehr nützlich sein, da es, wenn es den Berechtigungen für ein Verzeichnis zugewiesen wurde, so festgelegt wird, dass nur der Dateibesitzer die Datei umbenennen oder löschen kann Datei.
Sie können das Sticky-Bit nur durch explizite Definition von Berechtigungen zuweisen. Das Zeichen für das klebrige Bit ist t.
Um das klebrige Bit in einem Verzeichnis mit dem Namen dir1 festzulegen, geben Sie den Befehl chmod +t dir1 aus.,
Wenn Berechtigungen wichtig sind
Für einige Benutzer von Mac – oder Windows-basierten Computern denken Sie nicht über Berechtigungen nach, aber diese Umgebungen konzentrieren sich nicht so aggressiv auf benutzerbasierte Rechte auf Dateien, es sei denn, Sie befinden sich in einer Unternehmensumgebung. Jetzt führen Sie jedoch ein Linux-basiertes System aus, und die berechtigungsbasierte Sicherheit ist vereinfacht und kann problemlos verwendet werden, um den Zugriff nach Belieben einzuschränken.
Daher zeige ich Ihnen einige Dokumente und Ordner, auf die Sie sich konzentrieren möchten, und zeige Ihnen, wie die optimalen Berechtigungen festgelegt werden sollen.,
- Home-Verzeichnisse– Die Home-Verzeichnisse der Benutzer sind wichtig, da Sie nicht möchten, dass andere Benutzer die Dateien in den Desktop-Dokumenten eines anderen Benutzers anzeigen und ändern können. Um dies zu beheben, möchten Sie, dass das Verzeichnis über die Berechtigungen drwx______ (700) verfügt, also nehmen wir an, wir möchten die richtigen Berechtigungen für das Home-Verzeichnis des Benutzers user1 erzwingen, indem Sie den Befehl chmod 700 /home/user1.,
- Bootloader-Konfigurationsdateien-Wenn Sie sich entscheiden, ein Kennwort zum Booten bestimmter Betriebssysteme zu implementieren, möchten Sie Lese-und Schreibberechtigungen aus der Konfigurationsdatei von allen Benutzern außer root entfernen. Dazu können Sie die Berechtigungen der Datei auf 700 ändern.
- System-und Daemon-Konfigurationsdateien – Es ist sehr wichtig, die Rechte an System-und Daemon-Konfigurationsdateien einzuschränken Um Benutzer daran zu hindern, den Inhalt zu bearbeiten, ist es möglicherweise nicht ratsam, die Leseberechtigungen einzuschränken, aber die Einschränkung der Schreibberechtigungen ist ein Muss., In diesen Fällen kann es am besten sein, die Rechte an 644 zu ändern.
- Firewall-Skripte-Es ist möglicherweise nicht immer erforderlich, alle Benutzer daran zu hindern, die Firewall-Datei zu lesen, aber es ist ratsam, die Benutzer daran zu hindern, in die Datei zu schreiben. In diesem Fall wird das Firewall-Skript vom Root-Benutzer beim Booten automatisch ausgeführt, sodass alle anderen Benutzer keine Rechte benötigen, sodass Sie die erforderlichen Berechtigungen zuweisen können.