Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
linux:share [2025/03/27 11:40] swelinux:share [2025/12/20 14:53] (current) – external edit 127.0.0.1
Line 1: Line 1:
-<!DOCTYPE markdown> 
 # Gemeinsame Ordner # Gemeinsame Ordner
  
Line 10: Line 9:
 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. 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+**Hierarchie**
 Die Berechtigungen des Home-Ordners schränken den Zugriff auf darunterliegende Dateien und Verzeichnisse ein. Standardmäßig hat ein Home-Ordner Berechtigungen wie: Die Berechtigungen des Home-Ordners schränken den Zugriff auf darunterliegende Dateien und Verzeichnisse ein. Standardmäßig hat ein Home-Ordner Berechtigungen wie:
 ```bash ```bash
Line 21: Line 20:
  
  
 +---
 +## Lösung: Erstellen eines gemeinsamen Ordner
  
-### Lösungen, um den Zugriff zu ermöglichen +**Annahme** 
 +- Benutzer 1: **alice** 
 +- Benutzer 2: **bob** 
 + 
 +**Später kommen hinzu** 
 +- Gemeinsame Gruppe: **projektgruppe** 
 +- Gemeinsames Verzeichnis: **/home/alicebob** 
 + 
 + 
 + 
 +## Schritt-für-Schritt Anleitung: 
 + 
 +### Benutzer anlegen 
 + 
 +Zuerst legen wir die beiden Benutzer `alice` und `bob` an und vergeben auch die Passwörter
  
-#### 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: 
 ```bash ```bash
-chmod 750 /home/benutzer+sudo useradd -m -s /bin/bash alice 
 +sudo useradd -m -s /bin/bash  bob 
 + 
 +sudo passwd alice 
 +sudo passwd bob
 ``` ```
-- Besitzer (`benutzer`): Vollzugriff (`rwx`). 
-- Gruppe: Ausführen und Betreten (`r-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:+ 
 +### Gemeinsame Gruppe erstellen 
 + 
 +Nun erstellen wir die gemeinsame Gruppe `projektgruppeund fügen `aliceund `bobdieser Gruppe hinzu 
 ```bash ```bash
-sudo mkdir /home/shared +sudo groupadd projektgruppe
-sudo chgrp projektgruppe /home/shared +
-sudo chmod 770 /home/shared+
 ``` ```
-Danach kann der Ordner von allen Gruppenmitgliedern genutzt werden.+Benutzer zur gemeinsamen Gruppe hinzufügen
  
-#### Option 3: Symbolischer Link (nur bei existierendem Zugriff) 
-Erstelle einen symbolischen Link zu einem gemeinsamen Ordner außerhalb des Home-Verzeichnisses: 
 ```bash ```bash
-ln -s /pfad/zum/freigegebenen/ordner /home/benutzer/freigabe+sudo usermod -aG projektgruppe alice 
 +sudo usermod -aG projektgruppe bob
 ``` ```
-Beachte: Dies funktioniert nur, wenn der Zielpfad bereits für die Gruppe zugänglich ist.+### Erstmal falsch
  
-### Empfehlung +**Falsch #1**: Homeordner von alice für alle freigeben 
-**Wenn möglich**: Verschiebe gemeinsame Ordner an einen neutralen Ort, der nicht an persönliche Home-Verzeichnisse gebunden ist. +```bash 
-**Falls notwendig**: Passe die Berechtigungen des Home-Ordners an, aber sei vorsichtig, um nicht unbeabsichtigt sensible Daten freizugeben.+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.
  
-## setgid-Bit (Set Group ID) 
  
 +**Falsch #2**: Gemeinsame Gruppe - Ordner im Homeordner von alice erstellen und Gruppe ändern
 ```bash ```bash
-chmod g+s /shared-folder+chmod 770 /home/alice/alicebob 
 ``` ```
-**Problem 2: Standardgruppe neuer Dateien festzurren**  + 
 +- Pfad kann nicht beschritten werden 
 +- Pfad muss vollumfänglich begehbar sein 
 + 
 +### 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` 
 + 
 +```bash 
 +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: 
 + 
 +```bash 
 +sudo chown :projektgruppe /home/alicebob 
 +``` 
 + 
 +Setze die Berechtigungen so, dass Mitglieder der Gruppe lesen, schreiben und ausführen können: 
 + 
 +```bash 
 +sudo chmod 770 /home/alicebob 
 +``` 
 + 
 +Das bedeutet: 
 +- Der Besitzer (root) hat vollen Zugriff. 
 +- Die Mitglieder der Gruppe `projektgruppe` können lesen, schreiben und ausführen. 
 +- Andere Benutzer haben keinen Zugriff. 
 + 
 +--- 
 + 
 +#### Überprüfen der Berechtigungen 
 + 
 +Stelle sicher, dass die Berechtigungen korrekt gesetzt sind: 
 + 
 +```bash 
 +ls -l /home 
 +``` 
 + 
 +Du solltest eine Ausgabe wie diese sehen: 
 + 
 +```bash 
 +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`: 
 + 
 +```bash 
 +su - alice 
 +touch /home/alicebob/testdatei.txt 
 +``` 
 + 
 +Melde dich dann als Benutzer `bob` an und prüfe, ob du auf die Datei zugreifen kannst: 
 + 
 +```bash 
 +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** 
 +- **Ohne setgid-Bit**: Neue Dateien gehören der Primärgruppe des Erstellers
 - **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 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. - **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.
Line 66: Line 166:
 **Beispiel für ein Verzeichnis:** **Beispiel für ein Verzeichnis:**
 ```bash ```bash
-chmod g+s /shared-folder+chmod g+s /home/alicebob
 ``` ```
 Wenn Benutzer `alice` eine Datei im Ordner erstellt, wird diese Datei der Gruppe des Ordners zugewiesen. Wenn Benutzer `alice` eine Datei im Ordner erstellt, wird diese Datei der Gruppe des Ordners zugewiesen.
Line 81: Line 181:
 drwxrws--- 2 alice projektgruppe 4096 Nov 23 12:00 shared-folder drwxrws--- 2 alice projektgruppe 4096 Nov 23 12:00 shared-folder
 ``` ```
- +--- 
-## Sticky-Bit+### Sticky-Bit
 **Problem 3: Nur Besitzer soll Datei löschen und umbenennen dürfen** **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 +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.
-ateien in einem Verzeichnis löschen oder umbenennen, die **nicht** ihnen gehören.+
  
 #### Verzeichnis mit Sticky Bit #### Verzeichnis mit Sticky Bit
Line 105: Line 204:
 Das `t` am Ende der Berechtigungen zeigt an, dass das Sticky Bit gesetzt ist. Das `t` am Ende der Berechtigungen zeigt an, dass das Sticky Bit gesetzt ist.
  
 +---
 +### Unterschiede zwischen setgid und Sticky Bit
  
-## Unterschiede zwischen setgid und Sticky Bit +| Merkmal                | `setgid`-Bit                                    | 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 | +| 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 | +| 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                         | +| 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`   +| Häufige Verwendung  | Gemeinsame Ordner für eine Gruppe                  | Temporäre Verzeichnisse wie `/tmp`