Dateiberechtigungen in Linux/Unix: Lesen/Schreiben und Ändern?

Linux ist ein Klon von UNIX, dem Mehrbenutzer-Betriebssystem, auf das viele Benutzer gleichzeitig zugreifen können. Linux kann auch ohne Modifikationen in Mainframes und Servern eingesetzt werden. Dies wirft jedoch Sicherheitsbedenken auf, da ein unaufgeforderter oder böswilliger Benutzer wichtige Daten beschädigen, ändern oder entfernen kann. Für eine effektive Sicherheit unterteilt Linux die Autorisierung in 2 Ebenen.

  1. Eigentum
  2. Erlaubnis

In diesem Tutorial zu Linux-Dateibefehlen erfahren Sie Folgendes:

Das Konzept der Linux-Datei Erlaubnis und Eigentum ist unter Linux entscheidend. Hier werden wir Linux-Berechtigungen und -Eigentümer erklären und beide diskutieren. Beginnen wir mit dem Eigentum.

Klicken Sie hier, wenn das Video nicht zugänglich ist



Eigentum an Linux-Dateien

Jeder Datei und jedem Verzeichnis auf Ihrem Unix/Linux-System werden die unten angegebenen drei Eigentümertypen zugewiesen.

Benutzer

Ein Benutzer ist der Eigentümer der Datei. Standardmäßig wird die Person, die eine Datei erstellt hat, ihr Eigentümer. Daher wird ein Benutzer manchmal auch als Eigentümer bezeichnet.

Gruppe

Eine Benutzergruppe kann mehrere Benutzer enthalten. Alle Benutzer, die einer Gruppe angehören, haben die gleichen Linux-Gruppenberechtigungen für den Zugriff auf die Datei. Angenommen, Sie haben ein Projekt, bei dem mehrere Personen Zugriff auf eine Datei benötigen. Anstatt jedem Benutzer manuell Berechtigungen zuzuweisen, können Sie alle Benutzer zu einer Gruppe hinzufügen und der Datei Gruppenberechtigungen zuweisen, sodass nur diese Gruppenmitglieder und niemand anderes die Dateien lesen oder ändern kann.

Sonstiges

Jeder andere Benutzer, der Zugriff auf eine Datei hat. Diese Person hat weder die Datei erstellt, noch gehört sie zu einer Benutzergruppe, die die Datei besitzen könnte. Praktisch bedeutet es alle anderen. Wenn Sie die Berechtigung für andere festlegen, wird dies daher auch als Berechtigungen für die Welt festgelegt.

Nun stellt sich die große Frage, wie geht das? Linux unterscheiden zwischen diesen drei Benutzertypen, so dass ein Benutzer 'A' keine Datei beeinflussen kann, die wichtige Informationen/Daten eines anderen Benutzers 'B' enthält. Es ist so, als ob Sie nicht möchten, dass Ihr Kollege, der an Ihrem Linux-Computer arbeitet, Ihre Bilder sieht. Das ist wo Berechtigungen setzen ein, und sie definieren Nutzerverhalten .

Lass uns das verstehen Berechtigungssystem auf Linux.

Berechtigungen

Jede Datei und jedes Verzeichnis in Ihrem UNIX/Linux-System hat die folgenden 3 Berechtigungen, die für alle oben besprochenen 3 Besitzer definiert sind.

  • Lesen: Diese Berechtigung gibt Ihnen die Berechtigung, eine Datei zu öffnen und zu lesen. Die Leseberechtigung für ein Verzeichnis gibt Ihnen die Möglichkeit, seinen Inhalt aufzulisten.
  • Schreiben: Die Schreibberechtigung gibt Ihnen die Berechtigung, den Inhalt einer Datei zu ändern. Die Schreibberechtigung für ein Verzeichnis gibt Ihnen die Berechtigung, im Verzeichnis gespeicherte Dateien hinzuzufügen, zu entfernen und umzubenennen. Stellen Sie sich ein Szenario vor, in dem Sie eine Schreibberechtigung für eine Datei benötigen, jedoch keine Schreibberechtigung für das Verzeichnis haben, in dem die Datei gespeichert ist. Sie können den Dateiinhalt ändern. Sie können die Datei jedoch nicht umbenennen, verschieben oder aus dem Verzeichnis entfernen.
  • Ausführen: Unter Windows hat ein ausführbares Programm normalerweise die Erweiterung '.exe' und kann leicht ausgeführt werden. Unter Unix/Linux können Sie ein Programm nur ausführen, wenn die Ausführungsberechtigung festgelegt ist. Wenn die Ausführungsberechtigung nicht festgelegt ist, können Sie den Programmcode möglicherweise immer noch sehen/ändern (sofern Lese- und Schreibberechtigungen festgelegt sind), aber nicht ausführen.

Dateiberechtigungen unter Linux/Unix

Sehen wir uns die Dateiberechtigungen in Linux mit Beispielen an:

ls - l am Terminal gibt |_+_|

Hier haben wir hervorgehoben '-rw-rw-r--' und dieser seltsam aussehende Code ist derjenige, der uns über die Unix-Berechtigungen informiert, die dem Besitzer, der Benutzergruppe und der Welt erteilt wurden.

Hier ist der erste ' - ' bedeutet, dass wir eine Datei ausgewählt haben.p>

Andernfalls, wenn es ein Verzeichnis wäre, D wäre gezeigt worden.

Die Charaktere sind ziemlich leicht zu merken.

R = Leseberechtigung
in = Schreibberechtigung
x = Erlaubnis ausführen
- = keine Berechtigung

Betrachten wir es so.

Der erste Teil des Codes ist 'rw-' . Dies deutet darauf hin, dass der Eigentümer 'Home' folgende Möglichkeiten hat:

  • Lesen Sie die Datei
  • Schreiben oder bearbeiten Sie die Datei
  • Er kann die Datei nicht ausführen, da das Ausführungsbit auf '-' gesetzt ist.

Absichtlich fügen viele Linux-Distributionen wie Fedora, CentOS, Ubuntu usw. Benutzer zu einer Gruppe mit demselben Gruppennamen wie der Benutzername hinzu. Somit wird ein Benutzer 'tom' zu einer Gruppe namens 'tom' hinzugefügt.

Der zweite Teil ist 'rw-'. Es kann für die Benutzergruppe 'Home' und Gruppenmitglieder:

  • Lesen Sie die Datei
  • Schreiben oder bearbeiten Sie die Datei

Der dritte Teil ist für die Welt, dh jeden Benutzer. Es sagt 'R--'. Dies bedeutet, dass der Benutzer nur:

  • Lesen Sie die Datei

Ändern der Datei-/Verzeichnisberechtigungen mit dem Befehl 'chmod'

Angenommen, Sie möchten nicht, dass Ihr Kollege Ihre persönlichen Bilder sieht. Dies kann durch Ändern der Dateiberechtigungen erreicht werden.

Wir können die ' chmod' Befehl, der für 'Änderungsmodus' steht. Mit dem Befehl können wir Berechtigungen (Lesen, Schreiben, Ausführen) für eine Datei/ein Verzeichnis für den Besitzer, die Gruppe und die Welt festlegen. Syntax:

chmod-Berechtigungen Dateiname

Es gibt 2 Möglichkeiten, den Befehl zu verwenden -

  1. Absolute mode
  2. Symbolischer Modus

Absoluter (numerischer) Modus

In diesem Modus Datei Berechtigungen werden nicht als Zeichen, sondern als dreistellige Oktalzahl dargestellt .

Die folgende Tabelle enthält Zahlen für alle Berechtigungstypen.

Nummer Berechtigungstyp Symbol
0 Keine Erlaubnis ---
1 Ausführen --x
2 Schreiben -in-
3 Ausführen + Schreiben -wx
4 Lesen R--
5 Lesen + Ausführen r-x
6 Lesen + Schreiben rw-
7 Lesen + Schreiben + Ausführen rwx

Sehen wir uns den Befehl chmod permissions in Aktion an.

Im oben angegebenen Terminalfenster haben wir die Berechtigungen der Datei 'sample' auf '764' geändert.

Der absolute Code '764' sagt folgendes aus:

  • Besitzer kann lesen, schreiben und ausführen
  • Benutzergruppe kann lesen und schreiben
  • Welt kann nur lesen

Dies wird als '-rwxrw-r-- angezeigt.

So können Sie Benutzerberechtigungen in Linux on file ändern, indem Sie eine absolute Zahl zuweisen.

Symbolischer Modus

Im Absolute-Modus ändern Sie die Berechtigungen für alle 3 Besitzer. Im symbolischen Modus können Sie die Berechtigungen eines bestimmten Besitzers ändern. Es verwendet mathematische Symbole, um die Unix-Dateiberechtigungen zu ändern.

Operator Beschreibung
+ Fügt einer Datei oder einem Verzeichnis eine Berechtigung hinzu
- Entfernt die Berechtigung
= Legt die Berechtigung fest und überschreibt die zuvor festgelegten Berechtigungen.

Die verschiedenen Eigentümer werden vertreten als -

Benutzerbezeichnungen
du Benutzer/Eigentümer
g Gruppe
oder Sonstiges
zu alle

Wir werden keine Berechtigungen in Zahlen wie 755 verwenden, sondern in Zeichen wie rwx. Schauen wir uns ein Beispiel an

Eigentümer und Gruppe ändern

Um den Besitz einer Datei/eines Verzeichnisses zu ändern, können Sie den folgenden Befehl verwenden:

chown benutzer

Wenn Sie den Benutzer sowie die Gruppe für eine Datei oder ein Verzeichnis ändern möchten, verwenden Sie den Befehl

chown Benutzer:Gruppendateiname

Sehen wir uns das in Aktion an

Falls Sie nur den Gruppenbesitzer ändern möchten, verwenden Sie den Befehl

chgrp group_name Dateiname

' chgrp' steht für Changegroup.

Spitze

  • Die Datei /etc/group enthält alle im System definierten Gruppen
  • Sie können den Befehl 'Gruppen' verwenden, um alle Gruppen zu finden, in denen Sie Mitglied sind
  • Sie können den Befehl newgrp verwenden, um als Mitglied einer anderen Gruppe als Ihrer Standardgruppe zu arbeiten
  • Sie können nicht 2 Gruppen haben, die dieselbe Datei besitzen.
  • Sie haben keine verschachtelten Gruppen in Linux. Eine Gruppe kann keine Untergruppe einer anderen sein
  • x- Ein Verzeichnis ausführen bedeutet, ein Verzeichnis 'betreten' zu dürfen und möglichen Zugriff auf Unterverzeichnisse zu erhalten
  • Es gibt andere Berechtigungen, die Sie für Dateien und Verzeichnisse festlegen können, die in einem späteren Tutorial für Fortgeschrittene behandelt werden

Zusammenfassung:

  • Linux als Mehrbenutzersystem verwendet Berechtigungen und Eigentum aus Sicherheitsgründen.
  • Es gibt drei Benutzertypen auf einem Linux-System, nämlich. Benutzer, Gruppe und Sonstiges
  • Linux unterteilt die Dateiberechtigungen in Lesen, Schreiben und Ausführen, gekennzeichnet durch r,w und x
  • Die Berechtigungen für eine Datei können mit dem Befehl 'chmod' geändert werden, der weiter in absoluten und symbolischen Modus unterteilt werden kann
  • Der Befehl 'chown' kann den Besitz einer Datei/eines Verzeichnisses ändern. Verwenden Sie die folgenden Befehle: chown user file oder chown user:group file
  • Der Befehl 'chgrp' kann den Gruppenbesitz ändern Dateiname der chrgrp-Gruppe
  • Was bedeutet x - Ausführen eines Verzeichnisses? A: Ein Verzeichnis 'betreten' zu dürfen und möglichen Zugriff auf Unterverzeichnisse zu erhalten.