Lektion 5 von 6

Benutzer und Rechte

Wer darf was? Du lernst, die Rechte in ls -l zu lesen, sie mit chmod als Buchstaben oder Zahl zu ändern, Besitzer mit chown zu wechseln und mit sudo kurz Administrator zu werden.

  • Etwa 35 Minuten
  • 3 Übungen und 1 Knobelaufgabe im Terminal, 4 Quizfragen
  • Terminal im Browser

Benutzer und Gruppen

Linux ist von Anfang an für viele Benutzer gebaut. Jede Datei und jeder Ordner hat genau einen Besitzer und genau eine Gruppe. Gruppen fassen Benutzer zusammen, die dieselben Rechte brauchen, zum Beispiel alle, die Protokolle lesen dürfen (Gruppe adm) oder alle, die Administrator werden dürfen (Gruppe sudo). Auch Dienste laufen als eigene Benutzer: Der Webserver ist meist www-data.

EingabeWas du erfährst
idDeine Benutzernummer (uid), deine Hauptgruppe (gid) und alle Gruppen, in denen du bist.
groupsNur die Namen deiner Gruppen. groups mia zeigt die Gruppen von mia.
cat /etc/passwdAlle Benutzer des Systems, einer pro Zeile.
cat /etc/groupAlle Gruppen und ihre Mitglieder.
azubi@lernarena:~$ id
uid=1000(azubi) gid=1000(azubi) groups=1000(azubi),4(adm),27(sudo)

Rechte in ls -l lesen

Jetzt kannst du endlich jede Spalte von ls -l verstehen. Datum und Uhrzeit sehen bei dir anders aus:

-rw-r--r-- 1 azubi azubi 83 Sep 28 09:30 backup.sh
TeilBedeutung
-Die Art: - ist eine Datei, d ein Ordner (directory).
rw-r--r--Die Rechte, drei Gruppen zu je drei Zeichen (siehe unten).
1Die Anzahl der Verweise auf die Datei. Für den Anfang unwichtig.
azubi azubiErst der Besitzer, dann die Gruppe.
83 Sep 28 09:30Größe in Byte und Zeitpunkt der letzten Änderung.

Die neun Rechte-Zeichen sind drei Dreiergruppen: für den Besitzer (u wie user), für die Gruppe (g wie group) und für alle anderen (o wie others). Jede Gruppe liest sich gleich:

ZeichenBei einer DateiBei einem Ordner
rInhalt lesen (read)Mit ls auflisten, was darin liegt
wInhalt ändern (write)Darin Dateien anlegen, umbenennen, löschen (zusammen mit x)
xAls Programm ausführen (execute)Mit cd hineinwechseln und auf die Dateien darin zugreifen
-Dieses Recht fehltDieses Recht fehlt

rw-r--r-- heißt also: Der Besitzer darf lesen und schreiben, die Gruppe und alle anderen nur lesen. Linux prüft dabei nur eine Dreiergruppe: Bist du der Besitzer, gilt die erste, bist du in der Gruppe, die zweite, sonst die dritte.

azubi@lernarena: ~
Willkommen im Übungs-Terminal von Lernarena. Probier: id, ls -l, ls -l /etc/shadow, ls -l /var/log

Enter führt aus, Tab ergänzt Namen, Pfeil hoch holt frühere Befehle, Bild hoch blättert zurück. Esc und dann Tab verlässt das Terminal.

Übung 5.1

Finde mit id oder groups heraus, in welchen Gruppen du bist. Lass dir danach mit ls -l die Rechte von backup.sh anzeigen. Darfst du die Datei ausführen?

azubi@lernarena: ~

Enter führt aus, Tab ergänzt Namen, Pfeil hoch holt frühere Befehle, Bild hoch blättert zurück. Esc und dann Tab verlässt das Terminal.

Ziele

  • Finde heraus, in welchen Gruppen du bist (offen)
  • Zeige die Rechte von backup.sh in der langen Form (offen)

Musterlösung anzeigen
id
ls -l backup.sh

Ein möglicher Weg. Andere Wege sind genauso richtig, geprüft wird nur das Ergebnis. Die Rechte lauten rw-r--r--: Nirgends steht ein x, also darf niemand die Datei ausführen, auch du als Besitzer nicht.

Rechte ändern mit chmod

chmod (change mode) ändert die Rechte. Das darf nur der Besitzer oder root. Es gibt zwei Schreibweisen. Mit Buchstaben sagst du, wer welches Recht bekommt oder verliert:

EingabeWirkung
chmod u+x backup.shDer Besitzer (u) bekommt (+) das Recht zum Ausführen (x).
chmod g-w bericht.txtDie Gruppe (g) verliert (-) das Schreibrecht (w).
chmod o=r index.htmlAndere (o) haben genau (=) nur noch das Leserecht.
chmod a+r liste.txtAlle (a wie all) bekommen das Leserecht.

Die zweite Schreibweise ist eine Zahl aus drei Ziffern, eine je Dreiergruppe. Jedes Recht hat einen Wert: r = 4, w = 2, x = 1. Die Werte einer Gruppe zählst du zusammen. rwx ist 4 + 2 + 1 = 7, r-x ist 4 + 1 = 5, r-- ist 4. Aus rwxr-xr-x wird so 755. Diese Werte begegnen dir ständig:

ZahlRechteTypisch für
755rwxr-xr-xOrdner und Programme: alle dürfen lesen und ausführen, nur der Besitzer ändern.
644rw-r--r--Normale Dateien: alle lesen, nur der Besitzer schreibt.
700rwx------Private Ordner und Skripte, nur für den Besitzer.
600rw-------Geheimes wie Passwörter oder private Schlüssel.
750rwxr-x---Ordner für ein Team: Gruppe darf lesen und hinein, andere nichts.
Übung 5.2

Mach backup.sh mit chmod u+x für dich als Besitzer ausführbar. In zugang.txt steht ein Passwort: Setze die Datei mit chmod und einer Zahl so, dass nur noch du lesen und schreiben darfst (rw-------, die Zahl steht in der Tabelle oben).

azubi@lernarena: ~

Enter führt aus, Tab ergänzt Namen, Pfeil hoch holt frühere Befehle, Bild hoch blättert zurück. Esc und dann Tab verlässt das Terminal.

Ziele

  • Mach backup.sh für dich ausführbar (offen)
  • Setze zugang.txt so, dass nur du lesen und schreiben darfst (600) (offen)

Musterlösung anzeigen
chmod u+x backup.sh
chmod 600 zugang.txt
ls -l

Ein möglicher Weg. Andere Wege sind genauso richtig, geprüft wird nur das Ergebnis. Nach chmod u+x erscheint backup.sh in ls grün: Das ist die Farbe für ausführbare Dateien.

sudo und chown

Der Benutzer root darf alles. Damit niemand dauerhaft als root arbeitet, gibt es sudo (etwa: „tu das als Administrator“). Es führt einen einzelnen Befehl mit root-Rechten aus, aber nur für Mitglieder der Gruppe sudo. Auf einem echten Server fragt sudo dabei nach deinem eigenen Passwort, das Übungs-Terminal lässt das weg. Jeder Aufruf landet in /var/log/auth.log.

azubi@lernarena:~$ cat /etc/shadow
cat: /etc/shadow: Permission denied
azubi@lernarena:~$ sudo cat /etc/shadow
root:*:20000:0:99999:7:::
azubi:$y$j9T$geheim:20000:0:99999:7:::

chown (change owner) ändert Besitzer und Gruppe. Dateien verschenken darf nur root, deshalb steht fast immer sudo davor:

EingabeWirkung
sudo chown mia bericht.txtmia wird Besitzerin, die Gruppe bleibt.
sudo chown mia:mia bericht.txtBesitzer und Gruppe auf einmal, getrennt durch einen Doppelpunkt.
sudo chown -R www-data:www-data /var/www/htmlEin ganzer Ordner mit allem darin (rekursiv).
Übung 5.3

Die Webseiten in /var/www/html gehören noch root. Der Webserver läuft als www-data und soll sie besitzen. Übergib beide Dateien mit sudo chown an www-data, Besitzer und Gruppe. Probier es ruhig zuerst ohne sudo.

azubi@lernarena: ~

Enter führt aus, Tab ergänzt Namen, Pfeil hoch holt frühere Befehle, Bild hoch blättert zurück. Esc und dann Tab verlässt das Terminal.

Ziele

  • Übergib die beiden Seiten in /var/www/html an www-data (Besitzer und Gruppe) (offen)
  • Nutze dafür sudo (offen)

Musterlösung anzeigen
sudo chown www-data:www-data /var/www/html/index.html /var/www/html/kontakt.html
ls -l /var/www/html

Ein möglicher Weg. Andere Wege sind genauso richtig, geprüft wird nur das Ergebnis. Kürzer geht es mit dem Platzhalter: sudo chown www-data:www-data /var/www/html/*. Ohne sudo meldet chown Operation not permitted.

Zum Knobeln 5.4

Diese Aufgabe ist freiwillig, hier steht nicht genau, wie es geht. Lege den Ordner team an: Du darfst alles, deine Gruppe darf hineinschauen und hineinwechseln, alle anderen gar nichts. Lege darin die Datei plan.txt an: Du darfst lesen und schreiben, deine Gruppe nur lesen, alle anderen gar nichts.

azubi@lernarena: ~

Enter führt aus, Tab ergänzt Namen, Pfeil hoch holt frühere Befehle, Bild hoch blättert zurück. Esc und dann Tab verlässt das Terminal.

Ziele

  • Lege den Ordner team an: du darfst alles, die Gruppe lesen und hineinwechseln, andere nichts (offen)
  • Lege darin plan.txt an: du liest und schreibst, die Gruppe liest, andere nichts (offen)

Musterlösung anzeigen
mkdir team
chmod 750 team
touch team/plan.txt
chmod 640 team/plan.txt
ls -l team

Ein möglicher Weg. Andere Wege sind genauso richtig, geprüft wird nur das Ergebnis. Der Ordner braucht rwxr-x--- = 750, die Datei rw-r----- = 640. Ohne x am Ordner könnte die Gruppe die Datei darin nicht lesen, selbst wenn die Datei es erlaubt.

Unter Windows

Jetzt selbst testen

Vier Fragen zum Abschluss. Du hast so viele Versuche, wie du willst.

1 / 4

ls -l zeigt -rw-r----- 1 syslog adm syslog. Wer darf die Datei lesen?

2 / 4

Welche Zahl entspricht rwxr-x---?

3 / 4

chown mia bericht.txt meldet Operation not permitted. Was ist die übliche Lösung?

4 / 4

Ein Ordner hat die Rechte rw-rw-rw-. Was passiert, wenn du cd ordner tippst?