Grundlagen der Zugriffsrechte: chmod
, chown
, umask
1. Begriff der Zugriffsrechte
Wenn du mit Dateien oder Verzeichnissen in Linux arbeitest, musst du den Zugriff darauf verwalten. Stell dir vor, du hast deine Socken offen liegen lassen, und jetzt kann jeder im Haus sie benutzen! Die Zugriffsrechte in Linux verhindern dieses "unerlaubte Benutzen der Socken" (oder etwas Wichtigeres, wie zum Beispiel deine Scripts). Lass uns das genauer anschauen.
Jede Datei (und jedes Verzeichnis) in Linux hat drei Sets von Zugriffsrechten, die bestimmen, wer sie lesen, schreiben oder ausführen darf:
- Read (r): Erlaubt das Anschauen des Dateiinhalts oder das Auflisten der Dateien in einem Verzeichnis.
- Write (w): Erlaubt das Ändern des Dateiinhalts oder das Hinzufügen/Löschen von Dateien im Verzeichnis.
- Execute (x): Gibt die Möglichkeit, die Datei als Programm auszuführen (oder in das Verzeichnis zu wechseln).
Das Drei-Ebenen-Modell
Jedes Recht gilt für drei Benutzergruppen:
- Eigentümer (owner): Derjenige, der die Datei erstellt hat.
- Gruppe (group): Benutzer, die in einer Gruppe zusammengefasst sind, der die Datei zugewiesen wurde.
- Andere (others): Alle anderen Benutzer im System.
Ein Beispiel für Zugriffsrechte einer Datei:
-rwxr-xr--
Lass uns das entschlüsseln:
- Das erste Zeichen
-
zeigt an, dass es sich um eine Datei handelt (bei einem Verzeichnis wäre esd
). - Die ersten drei Zeichen
rwx
— Rechte für den Eigentümer (lesen, schreiben, ausführen). - Die nächsten drei Zeichen
r-x
— Rechte für die Gruppe (lesen, ausführen). - Die letzten drei Zeichen
r--
— Rechte für andere (nur lesen).
2. Befehl chmod
: Zugriffsrechte verwalten
Symbolische Schreibweise
Der Befehl chmod
ändert die Zugriffsrechte für Dateien und Verzeichnisse. Die symbolische Schreibweise sieht folgendermaßen aus:
chmod [wer][aktion][rechte] dateiname
- Wer:
u
(Besitzer),g
(Gruppe),o
(andere),a
(alle). - Aktion:
+
(Rechte hinzufügen),-
(Rechte entfernen),=
(Rechte genau festlegen). - Rechte:
r
(lesen),w
(schreiben),x
(ausführen).
Beispiele:
# Ausführungsrechte für alle setzen
chmod a+x script.sh
# Schreibrechte nur für die Gruppe hinzufügen
chmod g+w file.txt
# Leserechte für andere entziehen
chmod o-r document.txt
Oktale Schreibweise
Die oktale Schreibweise (oder numerische) ist kompakter, erfordert jedoch ein Verständnis der "Zahlenmagie". In dieser Schreibweise wird jede Rechtekombination durch eine Zahl dargestellt:
r = 4
w = 2
x = 1
Die Rechte werden addiert:
rwx = 7
(4 + 2 + 1)rw- = 6
(4 + 2)r-- = 4
Schreibweise:
chmod [zahl][zahl][zahl] dateiname
Beispiel:
# Rechte rwx für den Besitzer, r-x für die Gruppe, r-- für andere setzen
chmod 754 file.sh
3. Ändern des Dateibesitzers: Befehl chown
Falls du eine Datei an einen anderen Benutzer (oder eine Gruppe) übertragen musst, hilft der Befehl chown
.
Format:
chown [benutzer]:[gruppe] dateiname
Beispiele:
# Übertragen des Besitzers an Benutzer user1
chown user1 myfile.txt
# Besitzer und Gruppe übertragen
chown user1:group1 myfile.txt
# Nur die Gruppe ändern
chown :group2 myfile.txt
4. Standardmaske: umask
Wenn du eine Datei erstellst, werden die Zugriffsrechte dafür vom System festgelegt. Zum Beispiel könnten die Rechte rw-r--r--
sein. Aber woher kommen diese? Die Antwort ist: von dem umask
-Befehl.
Was ist umask
?
umask
definiert, welche Rechte nicht gesetzt werden sollen für neue Dateien.
Zum Beispiel:
- Grundrechte für eine Datei:
666
(keine Ausführung). - Maske:
022
. - Endgültige Rechte:
644
(666 - 022
).
Befehle:
- Aktuelle Maske anzeigen:
umask
- Neue Maske festlegen:
umask 0022
Beispiel:
# Maske setzen, damit neue Dateien rw-rw-r-- haben
umask 0002
5. Administratorrechte und sudo
Was ist sudo
?
sudo
(Abkürzung von "superuser do") ist ein Befehl in Linux- und Unix-basierten Systemen, der es einem Benutzer ermöglicht, Befehle im Namen eines Superusers (root) oder eines anderen Benutzers mit erweiterten Rechten auszuführen.
Das sudo
-System bietet vorübergehenden Zugriff auf administrative Funktionen, ohne dass man ständig als root angemeldet sein muss, was das Risiko von unbeabsichtigten oder böswilligen Systemänderungen verringert.
Einfach gesagt, man schreibt sudo vor den Befehl, den man mit Administratorrechten ausführen möchte.
Wie funktioniert sudo
?
Befehl ausführen:
Wenn du einen Befehl mit sudo
eingibst, prüft das System, ob dein Benutzer die Berechtigung hat, Befehle mit erweiterten Rechten auszuführen.
Zum Beispiel:
sudo apt update
Authentifizierung:
Bei der ersten Verwendung von sudo
in der aktuellen Sitzung fordert das System dich auf, das Passwort des aktuellen Benutzers (nicht root) einzugeben.
Nach erfolgreicher Eingabe des Passworts speichert das System die Authentifizierung für einen kurzen Zeitraum (in der Regel 5-15 Minuten), sodass nicht bei jedem Befehl nach dem Passwort gefragt wird.
Befehl ausführen:
Wenn der Benutzer die im sudo
-Konfigurationsfile angegebenen Rechte hat, wird der Befehl mit Superuser-Rechten ausgeführt.
Wichtige Features und Befehle von sudo
Befehl mit erweiterten Rechten ausführen:
sudo <Befehl>
Zum Beispiel:
sudo apt install nginx
Befehl als anderer Benutzer ausführen: Benutze den Parameter -u
:
sudo -u <Benutzername> <Befehl>
Zum Beispiel:
sudo -u user1 ls /home/user1
Erhalt eines Administrations-Terminals: Starte eine Shell mit root-Rechten:
sudo -i
oder:
sudo su
Konfiguration von sudo
anzeigen:
sudo -l
Zeigt die Befehle, die der aktuelle Benutzer ausführen darf.
Konfiguration von sudo
bearbeiten:
sudo visudo
Dieser Befehl öffnet die Konfigurationsdatei /etc/sudoers
für eine sichere Bearbeitung.
6. Beispiele
Lasst uns unser Wissen in der Praxis anwenden.
Aufgabe 1: Verwaltung der Rechte mit chmod
Erstelle eine Datei:
touch myfile.txt
Setze für den Besitzer Leserecht, Schreibrecht und Ausführungsrecht:
chmod u+rwx myfile.txt
Füge Leserecht nur für andere hinzu:
chmod o+r myfile.txt
Prüfe die Rechte:
ls -l myfile.txt
Aufgabe 2: Ändere den Besitzer mit chown
Erstelle eine Datei:
touch ownedfile.txt
Ändere den Besitzer auf den Benutzer
user1
(Administratorrechte erforderlich):sudo chown user1 ownedfile.txt
Überprüfe die Änderungen:
ls -l ownedfile.txt
Aufgabe 3: Experimente mit umask
Prüfe die aktuelle Maske:
umask
Setze die Maske auf
027
:umask 027
Erstelle eine neue Datei:
touch newfile.txt
Überprüfe die Rechte der erstellten Datei:
ls -l newfile.txt
7. Typische Fehler und Besonderheiten
sudo
bei Eigentümerwechsel vergessen: Nur ein Administrator kann den Eigentümer einer Datei ändern. Wenn du den Fehler "Operation not permitted" bekommst, probiere es mitsudo
.- Falsche Reihenfolge im
chmod
-Befehl: Die Rechte für das falsche Objekt geändert. Stelle sicher, dass du die richtige Datei oder das richtige Verzeichnis ausgewählt hast. umask
beeinflusst nur neue Dateien: Wenn du versuchst, die Rechte von bereits existierenden Dateien mitumask
zu ändern, funktioniert das nicht. Verwende dafürchmod
.
Wusstest du, dass die Zugriffsrechte in Linux so flexibel sind, dass du eine Datei erstellen kannst, die nur eine einzige Person im ganzen Universum "sehen" kann? Wie man so schön sagt, mit großen Rechten kommt auch große Verantwortung! Jetzt, da du mit chmod
, chown
und umask
bewaffnet bist, bist du bereit, deine Linux-Systeme nicht nur praktisch, sondern auch sicher zu machen.
GO TO FULL VERSION