Zum Inhalt

Benutzer, Gruppen und Rechte unter Linux

Ziel

In diesem Hands-On lernen Sie die grundlegenden Konzepte zu Benutzern, Gruppen und Rechten unter Linux kennen. Sie werden:

  • den Unterschied zwischen normalen Benutzern und root verstehen
  • Benutzer- und Gruppeninformationen auslesen
  • Passwörter ändern
  • sudo verwenden
  • Dateirechte verstehen und verändern

Hilfsmittel

  • Nutzen Sie man <befehl> um Hilfe zu einem Befehl zu erhalten
  • Nutzen Sie --help bei Befehlen
  • Arbeiten Sie strukturiert und prüfen Sie Ihre Ergebnisse mit Kontrollbefehlen

Aufgabe 1 - Benutzerwechsel und -verwaltung

1.1: Aktuellen Benutzer anzeigen

  • Lassen Sie sich anzeigen, mit welchem Benutzer Sie aktuell angemeldet sind.
Lösung
whoami

1.2: Zum ubuntu-Benutzer wechseln

  • Wechseln Sie vom aktuellen root-Benutzer zum Benutzer ubuntu.
  • Sie benötigen kein Passwort, da Sie bereits root-Rechte haben.
Lösung
su - ubuntu
  • Prüfen Sie den Wechsel mit: whoami

1.3: Benutzer-ID anzeigen

  • Lassen Sie sich von Ihrem aktuellen Benutzer die User-ID (UID) und Gruppeninformationen anzeigen.
  • Vergleichen Sie mit den Informationen des root-Benutzers.
Lösung
id
id root
  • Prüfen Sie:
    • Welche UID hat der ubuntu-Benutzer?
    • Welche UID hat root?
    • Zu welchen Gruppen gehört der ubuntu-Benutzer?

1.4: Rechte Prüfen

  • Versuchen Sie folgende Befehle als ubuntu-Benutzer auszuführen:
ls -a /root
ls -a /home/ubuntu
apt install nginx

1.5: Zurück zu root wechseln

  • Da der ubuntu-Benutzer keine erhöhten Rechte hat, wechseln Sie zurück zum root-Benutzer.
  • Verwenden Sie exit um die ubuntu-Session zu beenden.
Lösung
exit
whoami
# Sollte wieder "root" anzeigen

Aufgabe 2 - Neuen Benutzer erstellen

2.1: Benutzer mit adduser erstellen

  • Erstellen Sie einen neuen Benutzer mit dem Namen myuser oder ihrem eigenen Namen.
  • Verwenden Sie den interaktiven adduser-Befehl.
  • Hinweis: Sie sind jetzt wieder als root angemeldet und benötigen kein sudo.
Lösung
adduser myuser
  • Folgen Sie den Anweisungen:
    • Vergeben Sie ein Passwort
    • Merken Sie sich das Passwort 😉
    • Füllen Sie die optionalen Felder aus (oder lassen Sie sie leer)
    • Bestätigen Sie mit Y

2.2: Benutzer-Informationen prüfen

  • Prüfen Sie die Informationen des neu erstellten Benutzers:
    • Nutzer ID
    • Nutzen Sie getent um die Informationen aus der Passwortdatenbank zu lesen
    • Prüfen Sie ob das Home-Verzeichnis erstellt wurde
Lösung
id myuser
getent passwd myuser
ls -la /home/myuser/

2.3: Benutzer zur sudo-Gruppe hinzufügen

  • Fügen Sie den neuen Benutzer myuser zur sudo-Gruppe hinzu.
  • Als root können Sie dies ohne sudo machen.
Lösung
usermod -aG sudo myuser
  • Prüfen Sie die Gruppenmitgliedschaft:
Lösung
groups myuser
id myuser

2.4: Als neuer Benutzer testen

  • Wechseln Sie zu dem neuen Benutzer und testen Sie:
ls -a /home/myuser
ls -a /root
sudo ls -a /root
whoami
sudo whoami
  • Wechseln Sie zurück zu root:
Lösung
exit
whoami
# Sollte "root" anzeigen

Aufgabe 3 - Passwort-Management

3.1: Zum myuser-Benutzer wechseln und Passwort ändern

  • Wechseln Sie zum myuser-Benutzer und ändern Sie dessen Passwort.
  • Wechseln Sie zurück zu root.
Lösung
su - myuser
passwd
# Passwort ändern
exit
# Zurück zu root

3.2: Passwort eines anderen Benutzers ändern

  • Ändern Sie das Passwort des ubuntu-Benutzers (als Administrator).
  • Als root können Sie dies ohne sudo machen.
Lösung
passwd ubuntu

Aufgabe 4 - Dateirechte verstehen

4.1: Testdatei erstellen

  • Wechseln Sie in das Verzeichnis /home/coder/workspace
  • Erstellen Sie eine Datei namens test.txt.
Lösung
cd /home/coder/workspace
touch test.txt

4.2: Rechte anzeigen

  • Lassen Sie sich die Rechte der Datei anzeigen.
Lösung
ls -l test.txt
  • Beantworten Sie:
    • Wer ist der Besitzer?
    • Welche Rechte hat der Besitzer?
    • Welche Rechte hat die Gruppe?
    • Welche Rechte haben andere?

Aufgabe 5 - Rechte ändern

5.1: chmod verwenden

  • Entfernen die Leserechte für andere Benutzer (others) von der Datei test.txt.
Lösung
chmod o-r test.txt
  • Kontrollieren Sie das Ergebnis mit: ls -l test.txt

5.2: Rechte numerisch setzen

  • Setzen Sie folgende Rechte:
    • Besitzer: lesen, schreiben, ausführen
    • Gruppe: lesen
    • Andere: keine Rechte
Lösung
chmod 740 test.txt

5.3: Zugriff mit verschiedenen Benutzern testen

  • Testen Sie den Zugriff auf die Datei test.txt als root:
    • Schreiben Sie etwas in die Datei
    • Lesen Sie die Datei
  • Wechseln Sie zum ubuntu-Benutzer und versuchen Sie die Datei zu lesen und zu schreiben.
  • Wechseln Sie zurück zu root.
Lösung
# Als root: Datei ist vorhanden
ls -l test.txt
echo "Test-Inhalt" > test.txt
cat test.txt

# Zum ubuntu-Benutzer wechseln
su - ubuntu
cd /home/coder/workspace

# Versuch die Datei zu lesen (sollte fehlschlagen)
cat test.txt
# Permission denied - ubuntu hat keine Rechte

# Versuchen Sie die Datei zu schreiben (sollte fehlschlagen)
echo "Weitere Zeile" >> test.txt
# Permission denied - ubuntu hat keine Rechte

# Zurück zu root
exit

5.4: Ausführbare Dateien

  • Erstellen Sie eine Datei run.sh mit folgendem Inhalt:
pwd
ls
ls -l
  • Führen Sie die Datei aus:
./run.sh

Die wird zu einem Fehler führen, da die Datei nicht ausführbar ist. Setzen Sie die Ausführungsrechte für den Besitzer und versuchen Sie es erneut.

Lösung
chmod u+x run.sh
./run.sh

Aufgabe 6 - Besitzer ändern und Zugriff testen

6.1: chown verwenden

  • Ändern Sie den Besitzer der Datei test.txt auf myuser.
  • Als root können Sie dies direkt ohne sudo machen.
Lösung
chown myuser test.txt
  • Kontrollieren Sie das Ergebnis mit: ls -l test.txt

6.2: Besitzer und Gruppe gleichzeitig ändern

  • Ändern Sie Besitzer und Gruppe in einem Befehl.
  • Setzen Sie myuser als Besitzer und ubuntu als Gruppe.
Lösung
chown myuser:ubuntu test.txt
ls -l test.txt

6.3: Zugriff als verschiedene Benutzer testen

  • Erstellen Sie einen weiteren Benutzer otheruser
  • Setzen die die Berechtigungen der Datei test.txt auf rw-r----- (640) und testen Sie den Zugriff mit verschiedenen Benutzern:
    • root (kann alles)
    • myuser (Owner, hat rw)
    • ubuntu (Group, hat r)
    • otheruser (keine Rechte)
Lösung
# Berechtigungen setzen: Owner=rw, Group=r, Others=nichts
chmod 640 test.txt
ls -l test.txt
# -rw-r----- 1 myuser ubuntu 0 ... test.txt

echo "Test-Inhalt" > test.txt

# Test 1: Als root (kann alles)
cat test.txt  # Funktioniert (root kann alles)

# Test 2: Als myuser (Owner)
su - myuser
cat test.txt  # Funktioniert (Owner hat read)
echo "Neue Zeile" >> test.txt  # Funktioniert (Owner hat write)
exit

# Test 3: Als ubuntu (Group)
su - ubuntu  
cat test.txt  # Funktioniert (Group hat read)
echo "Weitere Zeile" >> test.txt  # Fehler! (Group hat kein write)
exit

# Test 4: Als otheruser (keine Rechte)
su - otheruser
cat test.txt  # Fehler! (Others haben kein read)
echo "Noch eine Zeile" >> test.txt  # Fehler! (Others haben kein write)
exit

6.4: Read vs Execute bei Verzeichnissen

  • Wechseln Sie zu dem User myuser
  • Erstellen Sie einen Ordner test-dir mit einer Datei datei.txt darin.
Lösung
su - myuser
mkdir test-dir
echo "Test" > test-dir/datei.txt
  • Testen Sie verschiedene Berechtigungen:

Test 1: Nur Read-Berechtigung (r--)

  • Setzen Sie nur Read-Berechtigungen für das Verzeichnis (400) und testen Sie den Zugriff auf den Ordner und die Dateien darin.
    • Lassen Sie sich den Inhalt auflisten
    • Versuchen Sie in das Verzeichnis zu wechseln
    • Versuchen Sie die Datei zu lesen
Lösung
# Nur Read-Berechtigungen setzen
chmod 400 test-dir

# Inhalt auflisten funktioniert
ls test-dir

# Verzeichnis betreten funktioniert NICHT
cd test-dir
# Permission denied

# Datei lesen funktioniert NICHT
cat test-dir/datei.txt
# Permission denied

Test 2: Nur Execute-Berechtigung (--x)

  • Setzen Sie nur Execute-Berechtigungen für das Verzeichnis (100) und testen Sie den Zugriff auf den Ordner und die Dateien darin.
    • Lassen Sie sich den Inhalt auflisten
    • Versuchen Sie in das Verzeichnis zu wechseln
    • Versuchen Sie die Datei zu lesen
Lösung
# Nur Execute-Berechtigung für Gruppe setzen
chmod 100 test-dir

# Inhalt auflisten funktioniert NICHT
ls -f test-dir
# Permission denied

# Verzeichnis betreten funktioniert
cd test-dir
pwd

# Datei lesen funktioniert (wenn man den Namen kennt)
cat datei.txt

Zusammenfassung

Sie haben nun gelernt:

  • Wechsel zwischen verschiedenen Benutzern mit su
  • Benutzer- und Gruppeninformationen mit whoami und id
  • Neue Benutzer erstellen mit adduser
  • Benutzer zu Gruppen hinzufügen mit usermod
  • Passwortänderung mit passwd
  • Rechteverwaltung mit chmod
  • Besitzänderung mit chown
  • Arbeiten mit sudo

Diese Grundlagen sind essenziell für die tägliche Arbeit mit Linux-Systemen.