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
--helpbei 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 Benutzerubuntu. - 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
exitum 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
myuseroder 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
getentum 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
myuserzur 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.txtals 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.shmit 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.txtaufmyuser. - 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
myuserals Besitzer undubuntuals 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.txtaufrw-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-dirmit einer Dateidatei.txtdarin.
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
whoamiundid - 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.