**This is an old revision of the document!**
<!DOCTYPE markdown>
Gemeinsame Ordner
Zugriff auf den Ordner
Problem 1: Alle Mitglieder der Gruppe sollen überhaupt erstmal den gemeinsamen Ordner betreten dürfen
- Unter Linux kannst du einen Ordner nicht betreten, wenn ein übergeordneter Ordner im Pfad die erforderlichen Berechtigungen verweigert, selbst wenn du die Berechtigungen für den Zielordner selbst hast
- Linux verwendet eine hierarchische Sicherheitsstruktur, bei der alle übergeordneten Verzeichnisse den Zugriff auf die tieferen Verzeichnisse ermöglichen müssen
- Wenn ein übergeordneter Ordner dir den Zugriff verweigert, blockiert dies automatisch den Zugang zu den darunterliegenden Ordnern, selbst wenn du an letzterem Berechtigungen hast.
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
- Besitzer (benutzer): Vollzugriff (
rwx). - Gruppe und Andere: Kein Zugriff (
---).
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ösungen, um den Zugriff zu ermöglichen
Option 1: chmod für den Home-Ordner (nicht so eine super Idee)
Ändere die Berechtigungen des Home-Ordners, sodass Gruppenmitglieder ihn betreten können (aber nicht den gesamten Inhalt sehen). Du kannst die Ausführungsberechtigung (x) für die Gruppe hinzufügen:
chmod 750 /home/benutzer
- Besitzer (
benutzer): Vollzugriff (rwx). - Gruppe: Ausführen und Betreten (
--x). - Andere: Kein Zugriff (
---).
Damit können Gruppenmitglieder /home/benutzer/projekt betreten, ohne Zugriff auf andere Dateien im Home-Ordner zu haben.
Option 2: Den Ordner an einen neutralen Ort verschieben (bevorzugt)
Wenn du den Zugriff auf den Home-Ordner nicht ändern möchtest, verschiebe den gemeinsamen Ordner an einen neutralen Ort, z. B. /srv, /opt, oder /home/shared. Beispiel:
sudo mkdir /home/shared sudo chgrp projektgruppe /home/shared sudo chmod 770 /home/sharedDanach kann der Ordner von allen Gruppenmitgliedern genutzt werden.
Option 3: Symbolischer Link (nur bei existierendem Zugriff)
Erstelle einen symbolischen Link zu einem gemeinsamen Ordner außerhalb des Home-Verzeichnisses:
ln -s /pfad/zum/freigegebenen/ordner /home/benutzer/freigabeBeachte: Dies funktioniert nur, wenn der Zielpfad bereits für die Gruppe zugänglich ist.
Empfehlung
- Wenn möglich: Verschiebe gemeinsame Ordner an einen neutralen Ort, der nicht an persönliche Home-Verzeichnisse gebunden ist.
- Falls notwendig: Passe die Berechtigungen des Home-Ordners an, aber sei vorsichtig, um nicht unbeabsichtigt sensible Daten freizugeben.
setgid-Bit (Set Group ID)
chmod g+s /shared-folderProblem 2: Standardgruppe neuer Dateien festzurren
- Wirkung auf Verzeichnisse: Wenn das
setgid-Bit auf einem Verzeichnis gesetzt wird, erhalten alle neuen Dateien und Unterverzeichnisse innerhalb dieses Verzeichnisses automatisch die Gruppe des Verzeichnisses, nicht die primäre Gruppe des Benutzers, der sie erstellt. - Wirkung auf ausführbare Dateien: Wenn das
setgid-Bit auf einer Datei gesetzt ist, wird diese Datei mit den Gruppenrechten des Besitzers ausgeführt, anstatt mit den Gruppenrechten des Benutzers, der die Datei ausführt.
Beispiel für ein Verzeichnis:
chmod g+s /shared-folderWenn 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_dateiWenn diese Datei ausgeführt wird, übernimmt der Prozess die Gruppenrechte der Datei.
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 D ateien in einem Verzeichnis löschen oder umbenennen, die nicht ihnen gehören.
Verzeichnis mit Sticky Bit
- Wirkung auf Verzeichnisse: Das Sticky Bit stellt sicher, dass nur der Besitzer der Datei (oder der Root-Benutzer) Dateien in einem Verzeichnis löschen oder umbenennen kann. Dies wird häufig in Verzeichnissen wie
/tmpverwendet, um zu verhindern, dass Benutzer Dateien von anderen Benutzern löschen.
Beispiel für das Setzen des Sticky Bits auf ein Verzeichnis:
chmod +t /tmpVerhalten: 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/mysharedfolderDas 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 |