Dieser Artikel erklärt die grundlegenden Arten von Verzeichnisberechtigungen, wie sie funktionieren und wie sie überprüft werden.
Was sind Verzeichnisberechtigungen und wie werden sie angewendet?
In Linux® ist ein Verzeichnis ein Ordner, in dem Sie Dateien speichern. Jede Datei oder jedes Verzeichnis gibt an, welche Benutzer darauf zugreifen können. In diesem Artikel wird erläutert, wie Sie Berechtigungen festlegen und möglicherweise außer Kraft setzen.
Beispiele zum Überschreiben:
- Wenn Sie ein chrooted/eingesperrter sind Als Benutzer können Sie nur auf die Dateien oder Verzeichnisse zugreifen, in denen Sie eingesperrt sind.
- Wenn Sie sudo/root haben -Level-Berechtigungen können Sie die Datei- oder Verzeichnisberechtigungen umgehen.
Dateien und Verzeichnisse auflisten
Dieser Abschnitt enthält Beispiele für Linux-Listenoperationen.
-
Nur die Namen von Dateien und Verzeichnissen auflisten:
# ls
-
Listen Sie die Dateien und Verzeichnisse mit vielen weiteren Informationen auf:
# ls -l # ll
-
Listen Sie die Dateien und Verzeichnisse auf und zeigen Sie alle versteckten Dateien:
# ls -a
Hinweis: Die versteckten Dateien sind oft Konfigurationsdateien, die das System versteckt, um sie zu schützen.
-
Listen Sie die Dateien und Verzeichnisse mit viel mehr Informationen und mit den Größen in KB oder GB anstelle von Bits auf:
# ls -lh
Ergebnisse verstehen
Wenn Sie -l
verwenden , sollte jede Datei oder jedes Verzeichnis die folgenden Informationen enthalten:
drwxr-xr-x. | jdoe | Apache | 3864 | 8. Mai 2021 | Meine Sachen |
---|---|---|---|---|---|
Berechtigungen | Eigentümer des Benutzers | Gruppeninhaber | Größe in Bits. Verwenden Sie -h, um in KB/GB zu konvertieren | Zuletzt bearbeitet | Name |
Berechtigungshinweis :Wenn es ein d gibt Am Anfang ist es ein Verzeichnis, nota file.
Hier ist eine ausführlichere Anleitung zur Verwendung von ls
Befehl.
Benutzer, Gruppe, Sonstiges
Jede Datei und jedes Verzeichnis hat drei Arten von Benutzerberechtigungen, die es erkennt:
- Der Benutzer, der als Benutzereigentümer festgelegt ist .
- Alle Benutzer in der Gruppe, die als Gruppeninhaber festgelegt sind .
- Jeder, der nicht zu den ersten beiden Kategorien gehört, wird als Andere bezeichnet .
Eine gängige Gruppe auf Linux-Servern ist apache
, sodass Sie jeden, der an den Websites arbeitet, zum apache
hinzufügen können Gruppe. Sie haben dann den erforderlichen Zugriff auf alle Website-bezogenen Dateien und Verzeichnisse.
-
Ändern Sie den Benutzereigentümer einer Datei oder eines Verzeichnisses:
# chown <user>: /MyStuff
-
Ändern Sie den Gruppeneigentümer einer Datei oder eines Verzeichnisses:
# chown :<group> /MyStuff
-
Ändern Sie den Benutzereigentümer + Gruppeneigentümer einer Datei oder eines Verzeichnisses:
# chown <user>:<group> /MyStuff
-
Ändern Sie den Benutzereigentümer und Gruppeneigentümer einer Datei oder eines Verzeichnisses und alles darin:
Wichtig: Seien Sie vorsichtig mit diesem Befehl, da Sie mehrere Dateien ohne Rückgängig-Option ändern.
# chown -R <user>:<group> /MyStuff
Lesen, schreiben, ausführen
Nachdem eine Datei oder ein Verzeichnis Sie als Benutzereigentümer, Gruppeneigentümer oder eine andere Person erkennt, weist sie eine Kombination der folgenden Berechtigungen zu:
- r :Mit der Leseberechtigung können Sie die Datei oder das Verzeichnis anzeigen oder lesen.
- w :Mit der Schreibberechtigung können Sie die Datei oder das Verzeichnis schreiben oder ändern.
- x :Mit der Ausführungsberechtigung können Sie eine ausführbare Datei ausführen oder ein Verzeichnis durchsuchen.
Jeder Benutzerberechtigung werden diese der Reihe nach zugewiesen, wobei ein -
stellt dar, dass die Berechtigung fehlt. Die folgende Tabelle erläutert beispielsweise die Berechtigungen rwxr-xr– :
rwx | r-x | r-- |
---|---|---|
Der erste Teil, Benutzer-Inhaber-Berechtigungen | Der zweite Teil, Gruppenbesitzerberechtigungen | Der dritte Teil, Andere Berechtigungen |
lesen, schreiben, ausführen | lesen, ausführen | lesen |
Dieser Benutzer kann alles tun | Dieser Benutzer kann die Datei ansehen und ausführen. Aber nicht ändern | Dieser Benutzer kann es nur ansehen |
Das folgende Bild bietet eine einfache Möglichkeit, dies zu visualisieren:
![](https://m.unixlinux.online/article/uploadfiles/202207/2022071117470166.png)
So ändern Sie Berechtigungen mit Buchstaben
-
Datei- oder Verzeichnisberechtigungen ändern:
# chmod ugo+-=rwx /MyStuff
- Verwenden Sie eine beliebige Kombination von ugo Benutzer, Gruppe, Sonstiges darstellen.
- Verwenden Sie eine beliebige Kombination aus +-= um das Hinzufügen, Entfernen oder Ändern der aktuellen Berechtigungen zu den angegebenen Berechtigungen darzustellen.
- Verwenden Sie eine beliebige Kombination von rwx um Lesen, Schreiben, Ausführen darzustellen.
-
Geben Sie Lesen Berechtigungen für andere :
# chmod o+r /MyStuff
-
Entfernen Sie ändern und ausführen Berechtigungen für Gruppe und andere :
# chmod go-wx /MyStuff
Das folgende Diagramm hilft bei der Veranschaulichung dieses Konzepts:
Ihr Benutzer | + | r lesen |
---|---|---|
g-Gruppe | - | w schreiben |
oder andere | = | x ausführen |
Hinweis: chmod
kann auch -R
verwenden alle Dateien und Verzeichnisse innerhalb dieses Verzeichnisses rekursiv zu ändern. Gehen Sie wie zuvor mit Vorsicht vor, da es keine Option zum Rückgängigmachen gibt.
So ändern Sie Berechtigungen mit Zahlen
-
Datei- oder Verzeichnisberechtigungen ändern:
# chmod 777 /MyStuff
Diese Methode verwendet Mathematik, bei der Sie die Werte jeder Berechtigung addieren, um ein dreistelliges Endergebnis zu erhalten:
Ihr Benutzer | g-Gruppe | andere | |
---|---|---|---|
r read =4 | |||
write =2 | |||
x ausführen =1 |
- Geben Sie rwxr-xr– Berechtigungen:
Ihr Benutzer | g-Gruppe | andere | |
---|---|---|---|
r read =4 | ✓ | ✓ | ✓ |
write =2 | ✓ | ||
x ausführen =1 | ✓ | ✓ | |
4+2+1 =7 | 4+1 =5 | 4 |
Verwenden Sie den folgenden Befehl:
# chmod 754 /MyStuff
Hinweis: chmod
kann auch -R
verwenden alle Dateien und Verzeichnisse innerhalb dieses Verzeichnisses rekursiv zu ändern. Gehen Sie wie zuvor mit Vorsicht vor, da es keine Option zum Rückgängigmachen gibt.
Hier ist eine ausführlichere Anleitung zur Verwendung von chmod
WARNUNG: Verwenden Sie nicht chmod 777
es sei denn, Sie sind sicher, es ist in Ordnung. Linux verfügt standardmäßig über starke Sicherheitsmaßnahmen. Einige Konfigurationsdateien sind jedoch nicht dazu bestimmt, von irgendjemandem geändert zu werden. Dies sind Gründungsdateien, die grundlegende Funktionen für den Computer oder Server ermöglichen. Beispielsweise bestimmen sie, wie Benutzer sich einschalten und sich anmelden können. Wenn sie auf 777 eingestellt sind, geht der Computer oder Server davon aus, dass er gehackt wurde, und fährt alles herunter . In diesem Fall können Sie sich nicht anmelden, das Gerät nicht einschalten und es ist unwiederbringlich. Dies ist eine sehr einfache Möglichkeit, Ihren Server vollständig zu beschädigen, also verwenden Sie chmod
mit Sorgfalt.
Wie man übt
-
Erstellen Sie ein Verzeichnis:
# mkdir /MyStuff
Sie können dann ls -l
verwenden , chown
, und chmod
dieses leere Verzeichnis beliebig oft. Wenn Sie fertig sind, räumen Sie hinter sich auf.
-
Löschen Sie das Verzeichnis:
# rmdir /MyStuff
Erweiterte Szenarien
Hier einige Szenarien zum Erkunden:
Szenario 1
Der Benutzer jdoe
benötigt Zugriff auf ein bestimmtes Verzeichnis. Sie möchten jedoch den Benutzereigentümer und die Gruppeneigentümer unverändert lassen.
Optionen:
- Jdoe zur Gruppe hinzufügen dem das Verzeichnis gehört. Dies ergibt
jdoe
Zugriff auf alle anderen Dateien oder Verzeichnisse, die dieser Gruppe gehören. - Erteilen Sie „Anderen“ mehr Berechtigungen auf diesem Verzeichnis. Dadurch erhalten alle anderen Benutzer auf Ihrem Computer oder Server Zugriff.
- Geben Sie jdoe
sudo
Berechtigungen.jdoe
kannsudo
verwenden um einzelne Datei- oder Verzeichnisberechtigungen zu überschreiben. Allerdings hätte „jdoe“ dann die Administratorberechtigungen, um auf alles auf Ihrem Computer oder Server zuzugreifen.
Szenario 2
Ihre Entwickler möchten /etc ändern und alles darin zu 777
Berechtigungen.
Antwort:SAG IHNEN NEIN .
Es gibt viele Systemdateien, die kaputt gehen und möglicherweise Ihrengesamten Server zum Erliegen bringen . Fragen Sie sie stattdessen gezielt, auf welche Dateien oder Verzeichnisse sie Zugriff benötigen und welche Art von Zugriff sie benötigen.
Hier ist eine ausführlichere Anleitung zum Verständnis von Linux-Dateiberechtigungen
Szenario 3
t s S +: Wenn Sie ls -l
ausführen und sehen Sie Berechtigungen, die ein t s S oder + enthalten , nicht fortfahren.
Dies sind erweiterte Datei- und Verzeichnisberechtigungen wie SUIDs, Sticky Bits und ACLs. Sie sind komplexer, können aber mit einem normalen chmod
vollständig überschrieben werden Befehl.
Verwenden Sie die Registerkarte „Feedback“, um Kommentare abzugeben oder Fragen zu stellen. Sie können auch ein Gespräch mit uns beginnen.