Table of Contents

Gemeinsame Ordner

Zugriff auf den Ordner

Problem 1: Alle Mitglieder der Gruppe sollen überhaupt erstmal den gemeinsamen Ordner betreten dürfen

In der Standardkonfiguration von Linux ist der Home-Ordner eines Benutzers nur für diesen Benutzer zugänglich. Wenn ein Ordner in einem Home-Verzeichnis liegt, können andere Gruppenmitglieder ihn nicht erreichen, solange ihnen der Zugriff auf den Home-Ordner selbst verweigert wird.

Hierarchie Die Berechtigungen des Home-Ordners schränken den Zugriff auf darunterliegende Dateien und Verzeichnisse ein. Standardmäßig hat ein Home-Ordner Berechtigungen wie:

drwx------  2 benutzer benutzer 4096 Nov 23 12:00 /home/benutzer

Selbst wenn ein Unterordner wie /home/benutzer/projekt für eine Gruppe freigegeben ist, können Gruppenmitglieder ihn nicht erreichen, da ihnen der Zugriff auf /home/benutzer fehlt.


Lösung: Erstellen eines gemeinsamen Ordner

Annahme

Später kommen hinzu

Schritt-für-Schritt Anleitung:

Benutzer anlegen

Zuerst legen wir die beiden Benutzer alice und bob an und vergeben auch die Passwörter

sudo useradd -m -s /bin/bash alice
sudo useradd -m -s /bin/bash  bob
 
sudo passwd alice
sudo passwd bob


Gemeinsame Gruppe erstellen

Nun erstellen wir die gemeinsame Gruppe projektgruppe und fügen alice und bob dieser Gruppe hinzu

sudo groupadd projektgruppe
Benutzer zur gemeinsamen Gruppe hinzufügen

sudo usermod -aG projektgruppe alice
sudo usermod -aG projektgruppe bob

Erstmal falsch

Falsch #1: Homeordner von alice für alle freigeben

chmod 755 /home/alice
Eine richtig doofe Idee! Don't do this. Zwar kommen wir jetzt auf den Home-Ordner von alice. Allerding gilt das nun auch für jeden.

Falsch #2: Gemeinsame Gruppe - Ordner im Homeordner von alice erstellen und Gruppe ändern

chmod 770 /home/alice/alicebob 

Jetzt aber richtig

Gemeinsames Verzeichnis erstellen

Erstelle ein Verzeichnis, auf das beide Benutzer zugreifen können, z.B. alicebob im Home-Verzeichnis:

Wer muss das machen? sudo

sudo mkdir /home/alicebob
andere gute Orte /srv und /srv/alicebob


Besitzrechte des Verzeichnisses ändern

Ändere den Besitzer des Verzeichnisses so, dass die Gruppe projektgruppe das Verzeichnis verwaltet:

sudo chown :projektgruppe /home/alicebob
Setze die Berechtigungen so, dass Mitglieder der Gruppe lesen, schreiben und ausführen können:

sudo chmod 770 /home/alicebob
Das bedeutet:


Überprüfen der Berechtigungen

Stelle sicher, dass die Berechtigungen korrekt gesetzt sind:

ls -l /home
Du solltest eine Ausgabe wie diese sehen:

drwxrwx--- 2 root projektgruppe 4096 Dez 9 12:34 alicebob


Testen des Zugriffs

Melde dich nun als Benutzer alice an und erstelle eine Datei im Verzeichnis alicebob:

su - alice
touch /home/alicebob/testdatei.txt
Melde dich dann als Benutzer bob an und prüfe, ob du auf die Datei zugreifen kannst:

su - bob
cat /home/alicebob/testdatei.txt
Da beide Benutzer in der Gruppe projektgruppe sind, sollten sie in der Lage sein, auf die Datei zuzugreifen.


Empfehlung

Verschiebe gemeinsame Ordner an einen neutralen Ort, der nicht an persönliche Home-Verzeichnisse gebunden ist.


setgid-Bit (Set Group ID)

Problem: Standardgruppe neuer Dateien festzurren

Beispiel für ein Verzeichnis:

chmod g+s /home/alicebob
Wenn Benutzer alice eine Datei im Ordner erstellt, wird diese Datei der Gruppe des Ordners zugewiesen.

Beispiel für eine Datei:

chmod g+s /pfad/zur/ausfuehrbaren_datei
Wenn diese Datei ausgeführt wird, übernimmt der Prozess die Gruppenrechte der Datei.

Prüfe das Setzen des setgid-Bits Nach ls ersetzt ein s das x in den Datei-Berechtigungen.

drwxrws--- 2 alice projektgruppe 4096 Nov 23 12:00 shared-folder


Sticky-Bit

Problem 3: Nur Besitzer soll Datei löschen und umbenennen dürfen

Das Sticky Bit hat eine andere Funktion und wird hauptsächlich in Verzeichnissen verwendet, um zu verhindern, dass Benutzer Dateien in einem Verzeichnis löschen oder umbenennen, die nicht ihnen gehören.

Verzeichnis mit Sticky Bit

Beispiel für das Setzen des Sticky Bits auf ein Verzeichnis:

chmod +t /tmp
Verhalten: Alle Benutzer können Dateien in /tmp erstellen, aber nur der Besitzer oder der Root-Benutzer kann die Dateien wieder löschen oder umbenennen.

Prüfe die Berechtigungen:

ls -ld /tmp/mysharedfolder
// Ausgabe
drwxrwxrwt 2 root root 4096 Nov 23 12:00 /tmp/mysharedfolder
Das t am Ende der Berechtigungen zeigt an, dass das Sticky Bit gesetzt ist.


Unterschiede zwischen setgid und Sticky Bit

Merkmal setgid-Bit Sticky Bit
Hauptfunktion Erbt die Gruppe des Verzeichnisses für neue Dateien Verhindert das Löschen/Umbenennen von Dateien durch andere Benutzer
Verzeichniswirkung Neue Dateien erben die Gruppe des Verzeichnisses Nur der Besitzer der Datei (oder root) kann sie löschen oder umbenennen
Dateiwirkung Ändert die Gruppenrechte bei der Ausführung Keine Wirkung auf Dateien
Häufige Verwendung Gemeinsame Ordner für eine Gruppe Temporäre Verzeichnisse wie /tmp