Linux ist ein Mehrbenutzer-Betriebssystem, was bedeutet, dass es mehrere Benutzer gleichzeitig unterstützt.
Da viele Personen gleichzeitig auf das System zugreifen können und einige Ressourcen gemeinsam genutzt werden, steuert Linux den Zugriff über Eigentum und Berechtigungen.
Linux-Dateieigentum
Unter Linux gibt es drei Arten von Besitzern:user
, group
, und others
.
Linux-Benutzer
Ein Benutzer ist der standardmäßige Eigentümer und Ersteller der Datei. Daher wird dieser Benutzer auch Besitzer genannt.
Linux-Gruppe
Eine Benutzergruppe ist eine Sammlung von Benutzern. Benutzer, die einer Gruppe angehören, haben die gleichen Linux-Gruppenberechtigungen für den Zugriff auf eine Datei/einen Ordner.
Sie können Gruppen verwenden, um Berechtigungen in großen Mengen zuzuweisen, anstatt sie einzeln zuzuweisen. Ein Benutzer kann auch mehreren Gruppen angehören.
Andere
Alle Benutzer, die nicht Teil der Benutzer- oder Gruppenklassen sind, gehören zu dieser Klasse.
Linux-Dateiberechtigungen
Dateiberechtigungen fallen in drei Kategorien:read
, write
, und execute
.
Leseberechtigung
Bei normalen Dateien erlauben Leseberechtigungen Benutzern nur das Öffnen und Lesen der Datei. Benutzer können die Datei nicht ändern.
In ähnlicher Weise erlauben Leseberechtigungen für Verzeichnisse das Auflisten von Verzeichnisinhalten ohne Änderungen im Verzeichnis.
Schreibberechtigung
Wenn Dateien Schreibrechte haben, kann der Benutzer die Datei ändern (bearbeiten, löschen) und speichern.
Bei Ordnern ermöglichen Schreibberechtigungen einem Benutzer, dessen Inhalt zu ändern (Dateien darin zu erstellen, zu löschen und umzubenennen) und den Inhalt von Dateien zu ändern, für die der Benutzer Schreibberechtigungen hat.
Ausführungsberechtigung
Für Dateien erlauben Ausführungsberechtigungen dem Benutzer, ein ausführbares Skript auszuführen. Bei Verzeichnissen kann der Benutzer darauf zugreifen und auf Details zu Dateien im Verzeichnis zugreifen.
Unten ist die symbolische Darstellung von Berechtigungen für Benutzer, Gruppen und andere.
Beachten Sie, dass wir Berechtigungen von Dateien und Ordnern finden können, indem wir lange Listen verwenden (ls -l
) auf einem Linux-Terminal.
In der obigen Ausgabe d
repräsentiert ein Verzeichnis und-
stellt eine normale Datei dar.
So ändern Sie Berechtigungen in Linux mit chmod
Befehl
Nachdem wir nun die Grundlagen von Eigentumsrechten und Berechtigungen kennen, sehen wir uns an, wie wir Berechtigungen mit chmod
ändern können Befehl.
Syntax von chmod
:
chmod permissions filename
Wo,
permissions
kann gelesen, geschrieben, ausgeführt oder eine Kombination davon sein.filename
ist der Name der Datei, für die die Berechtigungen geändert werden müssen. Dieser Parameter kann auch eine Liste sein, wenn Dateien Berechtigungen in großen Mengen ändern sollen.
Wir können Berechtigungen auf zwei Arten ändern:
- Symbolischer Modus :Diese Methode verwendet Symbole wie
u
,g
,o
um Benutzer, Gruppen und andere zu repräsentieren. Berechtigungen werden alsr, w, x
dargestellt zum Lesen, Schreiben bzw. Ausführen. Sie können Berechtigungen mit +, - und =ändern. - Absolutmodus :Diese Methode stellt Berechtigungen als 3-stellige Oktalzahlen von 0-7 dar.
Sehen wir sie uns nun im Detail an.
So ändern Sie Berechtigungen im symbolischen Modus
Die folgende Tabelle fasst die Benutzerdarstellung zusammen:
Benutzerdarstellung | Beschreibung |
---|---|
du | Benutzer/Eigentümer |
g | Gruppe |
o | Andere |
Wir können mathematische Operatoren verwenden, um Berechtigungen hinzuzufügen, zu entfernen und zuzuweisen. Die folgende Tabelle zeigt die Zusammenfassung:
Operator | Beschreibung |
---|---|
+ | Fügt einer Datei oder einem Verzeichnis eine Berechtigung hinzu |
– | Entfernt die Berechtigung |
= | Setzt die Berechtigung, falls noch nicht vorhanden. Überschreibt auch die Berechtigungen, wenn sie früher festgelegt wurden. |
Beispiel:
Angenommen, ich habe ein Skript und möchte es für den Besitzer der Datei zaira
ausführbar machen .
Aktuelle Dateiberechtigungen lauten wie folgt:
Lassen Sie uns die Berechtigungen wie folgt aufteilen:
Um Ausführungsrechte hinzuzufügen (x
) an Eigentümer (u
) im symbolischen Modus verwenden, können wir den folgenden Befehl verwenden:
chmod u+x mymotd.sh
Ausgabe:
Jetzt können wir sehen, dass die Ausführungsberechtigungen für Besitzer zaira
hinzugefügt wurden .
Weitere Beispiele für das Ändern von Berechtigungen über die symbolische Methode:
- Entfernen von
read
undwrite
Berechtigung fürgroup
undothers
:chmod go-rw
. - Entfernen von
read
Berechtigungen fürothers
:chmod o-r
. - Zuweisung von
write
Berechtigung zurgroup
und Überschreiben bestehender Berechtigungen:chmod g=w
.
So ändern Sie Berechtigungen im absoluten Modus
Der absolute Modus verwendet Zahlen, um Berechtigungen darzustellen, und mathematische Operatoren, um sie zu ändern.
Die folgende Tabelle zeigt, wie wir relevante Berechtigungen zuweisen können:
Berechtigung | Genehmigung erteilen |
---|---|
lesen | füge 4 hinzu |
schreiben | 2 hinzufügen |
ausführen | 1 hinzufügen |
Per Subtraktion können Berechtigungen entzogen werden. Die folgende Tabelle zeigt, wie Sie relevante Berechtigungen entfernen können.
Berechtigung | Berechtigung widerrufen |
---|---|
lesen | 4 subtrahieren |
schreiben | 2 subtrahieren |
ausführen | 1 subtrahieren |
Beispiel :
- Setzen Sie
read
(Füge 4 hinzu) füruser
,read
(add 4) undexecute
(add 1) für group, und nurexecute
(1 hinzufügen) für andere.
chmod 451 file-name
So haben wir die Berechnung durchgeführt:
Beachten Sie, dass dies dasselbe ist wie r--r-x--x
.
execution
entfernen Rechte vonother
undgroup
.
Um die Ausführung von other
zu entfernen und group
, subtrahieren Sie 1 vom Ausführungsteil der letzten 2 Oktette.
- Weise
read
zu ,write
undexecute
anuser
,read
undexecute
zugroup
und nurread
an andere.
Dies wäre dasselbe wie rwxr-xr--
.
Wie man den Besitz mit dem chown
ändert Befehl
Als Nächstes erfahren Sie, wie Sie den Eigentümer einer Datei ändern. Sie können den Besitz einer Datei oder eines Ordners mit chown
ändern Befehl. In einigen Fällen ist zum Ändern des Eigentümers sudo
erforderlich Berechtigungen.
Syntax von chown
:
chown user filename
So ändern Sie den Benutzerbesitz mit chown
Lassen Sie uns den Besitz von Benutzer zaira
übertragen zu Benutzer news
.
chown news mymotd.sh
Befehl zum Ändern des Eigentümers:sudo chown news mymotd.sh
Ausgabe:
So ändern Sie die Eigentümerschaft von Benutzern und Gruppen gleichzeitig
Wir können auch chown
verwenden Benutzer und Gruppe gleichzeitig zu ändern.
chown user:group filename
So ändern Sie den Verzeichnisbesitz
Sie können den Besitz von Inhalten in einem Verzeichnis rekursiv ändern. Das folgende Beispiel ändert den Besitz von /opt/script
Ordner, um den Benutzer admin
zuzulassen .
chown -R admin /opt/script
So ändern Sie den Gruppenbesitz
Falls wir nur den Gruppenbesitzer ändern müssen, können wir chown
verwenden indem Sie dem Gruppennamen einen Doppelpunkt voranstellen :
chown :admins /opt/script
Angeleitete Übung zu Linux-Berechtigungen
Bisher haben wir Berechtigungen, Eigentumsrechte und die Methoden zu deren Änderung untersucht. Jetzt werden wir unser Gelerntes mit einer geführten Übung verstärken.
Ziel :Um Gruppen zu erstellen und ihren Mitgliedern relevante Berechtigungen zuzuweisen. Überprüfen Sie den Zugriff, indem Sie von nicht autorisierten Benutzern darauf zugreifen.
Aufgabe :Erstellen Sie eine Gruppe namens dev-team
und fügen Sie zwei Mitglieder (John und Bob) hinzu. Erstellen Sie einen Ordner /home/dev-team
und ändern Sie den Besitz in die Gruppe dev-team
. Stellen Sie sicher, dass beide Benutzer im dev-team
sind Gruppe gelesen haben und schreiben Zugriff auf den Ordner.
Erstellen Sie eine weitere Gruppe project-manager
und fügen Sie einen Benutzer Fatima
hinzu dazu. Überprüfen Sie, ob der Ordner /home/dev-team
ist über Fatima
zugänglich .
Visualisierung des Problems
Wir können das Problem wie folgt visualisieren:
Schritt 1:Zum Root-Benutzer wechseln.
Wechseln Sie zum Root-Benutzer, damit wir die Rechte zum Erstellen neuer Benutzer und Gruppen haben.
Hinweis anzeigen
Verwenden Sie das sudo
Befehl mit Flag i
.
Wenn Sie das Root-Passwort haben, können Sie sich auch damit anmelden.
Lösung anzeigen
Geben Sie sudo -i
ein um zum Root-Benutzer zu wechseln.
Geben Sie whoami
ein um herauszufinden, ob Sie der Root-Benutzer sind:
Wenn Sie root
nicht haben Zugriff, verwenden Sie die Befehle mit angehängtem sudo
.
Schritt 2:Erstellen Sie eine Gruppe dev-team
Hinweis anzeigen
Verwenden Sie das groupadd
Befehl.
Syntax:groupadd group-name
Lösung anzeigen
Geben Sie groupadd dev-team
ein um das dev-team
zu erstellen Gruppe
Überprüfen Sie:cat /etc/group | grep dev-team
Schritt 3:Erstellen Sie zwei neue Benutzer John und Bob und fügen Sie sie dem dev-team
hinzu Gruppe
Hinweis anzeigen
Verwenden Sie den Befehl useradd
.
useradd
erstellt einen neuen Benutzer und fügt ihn der angegebenen Gruppe hinzu.
Syntax:useradd -G groupname username
Wobei -G
gibt die Gruppe an.
Lösung anzeigen
useradd -G dev-team John
useradd -G dev-team Bob
Überprüfen Sie:cat /etc/group | grep dev-team
Schritt 4:Passwörter für die Benutzer John und Bob bereitstellen
Hinweis anzeigen
Verwenden Sie den Befehl passwd
passwd
erstellt ein Passwort für Benutzer.
Syntax:passwd username
Lösung anzeigen
passwd John
passwd Bob
Schritt 5:Erstellen Sie ein Verzeichnis in /home und nennen Sie es dev-team
Hinweis anzeigen
Verwenden Sie den Befehl mkdir
mkdir
erstellt ein Verzeichnis.
Syntax:mkdir directory-name
Lösung anzeigen
mkdir /home/dev-team
Verifizieren:
Schritt 6:Ändern Sie den Gruppenbesitz des Ordners dev-team
um dev-team
zu gruppieren
Hinweis anzeigen
Verwenden Sie den Befehl chown
Syntax:chown :group-name folder
Lösung anzeigen
chown :dev-team /home/dev-team/
Schritt 7:Stellen Sie die Berechtigungen des Ordners dev-team
sicher Gruppenmitgliedern erlauben, Dateien zu erstellen und zu löschen.
Hinweis anzeigen
Verwenden Sie den Befehl chmod
Schreibberechtigungen erlauben Benutzern und Gruppen das Erstellen und Löschen von Dateien.
Syntax:chmod permissions folder
Lösung anzeigen
chmod g+w /home/dev-team/
Schritt 8:Stellen Sie sicher, dass „andere“ keinen Zugriff auf die Dateien von dev-team
haben Ordner.
Hinweis anzeigen
Verwenden Sie den Befehl chmod
Lese-, Schreib- und Ausführungsberechtigungen von „anderen“ entfernen, falls vorhanden.
Syntax:chmod permissions folder
Lösung anzeigen
chmod o-rx dev-team
Schritt 9:Verlassen Sie das root
Sitzung und wechseln Sie zu John
Hinweis anzeigen
Verwenden Sie den Befehl exit
zum Abmelden des Root-Benutzers.
Verwenden Sie su
Benutzer wechseln.
Syntax:su - user
Um den aktuellen Benutzer zu bestätigen, verwenden Sie den Befehl whoami
.
Lösung anzeigen
exit
su - John
Überprüfen Sie dies mit dem Befehl whoami
.
Schritt 10:Navigieren Sie zum Ordner:/home/dev-team
Hinweis anzeigen
Verwenden Sie den Befehl cd
Ordner wechseln.
Syntax:cd /path/to/folder
Bestätigen Sie den aktuellen Pfad mit pwd
.
Lösung anzeigen
cd /home/dev-team
Schritt 11:Erstellen Sie eine leere Datei im Ordner:/home/dev-team
Hinweis anzeigen
Verwenden Sie den Befehl touch
um eine leere Datei zu erstellen.
Syntax:touch filename
Lösung anzeigen
touch john-file.txt
Überprüfen Sie:ls -lrt
Schritt 12:Ändern Sie den Gruppenbesitz der erstellten Datei in dev-team
und überprüfen.
Hinweis anzeigen
Verwenden Sie den Befehl chown
Besitzer wechseln.
Syntax:chown :group file-name
Lösung anzeigen
chown :dev-team john-file.txt
Sobald der Gruppenbesitz geändert wurde, können alle Mitglieder der Gruppe auf diese Datei zugreifen.
Überprüfen Sie ls -lrt
Schritt 13:Verlassen Sie die Shell und wechseln Sie zu Benutzer Bob
Hinweis anzeigen
Verwenden Sie den Befehl exit
um das Terminal zu verlassen.
Verwenden Sie su
Benutzer wechseln.
Syntax:su - user
Um den aktuellen Benutzer zu bestätigen, verwenden Sie den Befehl whoami
.
Lösung anzeigen
exit
su - Bob
Verifizieren Sie den aktuellen Benutzer mit dem Befehl whoami
.
Schritt 14:Navigieren Sie zum Pfad /home/dev-team
Hinweis anzeigen
Verwenden Sie den Befehl cd
Ordner wechseln.
Syntax:cd /path/to/folder
Bestätigen Sie den aktuellen Pfad mit pwd
.
Lösung anzeigen
cd /home/dev-team
Schritt 15:Finden Sie Bob's
heraus Berechtigungen für den Zugriff auf john-file.txt
Hinweis anzeigen
Verwenden Sie den Befehl ls -l
für lange Auflistung.
Syntax:ls -l | grep file-name
Hat die Gruppe rw-
Berechtigungen?
Lösung anzeigen
ls -l | grep john-file.txt
Schritt 16:Ändern Sie die Datei john-file.txt
während Sie als Bob
angemeldet sind
Hinweis anzeigen
Verwenden Sie den Befehl echo
um der Datei etwas Text hinzuzufügen.
Syntax:echo "Some text" >>file-name
Dies würde den zitierten Text an das Ende der Datei umleiten.
Lösung anzeigen
echo "This is Bob's comment" > john-file.txt
Wenn alle Berechtigungen korrekt gesetzt sind, Bob
berechtigt, diese Datei zu bearbeiten und zu speichern. Andernfalls erhalten Sie eine Fehlermeldung wie diese:Permission denied
.
Überprüfen Sie cat john-file.txt
Schritt 17:Erstellen Sie eine weitere Gruppe project-manager
und weise ein Mitglied Fatima
zu dazu
Hinweis anzeigen
Verwenden Sie den Befehl groupadd
um eine neue Gruppe hinzuzufügen.
Syntax:groupadd group-name
Erstellen Sie einen neuen Benutzer mit dem Befehl useradd
.
Verwenden Sie das Flag -G
um ihm einen Benutzer zuzuweisen.
Lösung anzeigen
groupadd project-manager
useradd -G project-manager Fatima
passwd Fatima
Schritt 18:Navigieren Sie zum Ordner /home/dev-team
und überprüfen Sie, ob Fatima
darauf zugreifen kann
Hinweis anzeigen
Verwenden Sie cd
um zu /home/dev-team
zu navigieren .
Lösung anzeigen
cd /home/dev-team
.
Wir erhalten diesen Fehler:
Das liegt daran, others
keinen Zugriff auf den Ordner dev-team
haben .
Wenn wir uns erinnern, sind unten die Rechte des dev-team
aufgeführt Ordner.
Abschluss
Berechtigungen und Eigentumsrechte sind nützliche Konzepte zur Durchsetzung der Sicherheit in Mehrbenutzer-Betriebssystemen. Ich hoffe, Sie konnten sich ausführlich über das Ändern von Berechtigungen und Eigentumsrechten informieren.
Was ist Ihre Lieblingssache, die Sie aus diesem Tutorial gelernt haben? Lass es mich auf Twitter wissen!
Du kannst auch meine anderen Posts hier lesen.
Danke an Tom Mondloch für seine Hilfe bei der geführten Übung.