Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| linux:share [2025/05/25 19:40] – swe | linux:share [2025/12/20 14:53] (current) – external edit 127.0.0.1 | ||
|---|---|---|---|
| Line 9: | 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 21: | ||
| --- | --- | ||
| - | ### Lösungen, um den Zugriff zu ermöglichen | + | ## Lösung: |
| - | ## Erstellen eines gemeinsamen Ordner | + | |
| - | ### Annahme: | + | **Annahme** |
| - Benutzer 1: **alice** | - Benutzer 1: **alice** | ||
| - Benutzer 2: **bob** | - Benutzer 2: **bob** | ||
| - | später | + | **Später kommen hinzu** |
| - Gemeinsame Gruppe: **projektgruppe** | - Gemeinsame Gruppe: **projektgruppe** | ||
| - Gemeinsames Verzeichnis: | - Gemeinsames Verzeichnis: | ||
| Line 34: | Line 33: | ||
| - | ### Schritt-für-Schritt Anleitung: | + | ## Schritt-für-Schritt Anleitung: |
| - | ### 1. **Benutzer anlegen** | + | ### Benutzer anlegen |
| - | Zuerst legen wir die beiden Benutzer `alice` und `bob` an: | + | Zuerst legen wir die beiden Benutzer `alice` und `bob` an und vergeben auch die Passwörter |
| ```bash | ```bash | ||
| sudo useradd -m -s /bin/bash alice | sudo useradd -m -s /bin/bash alice | ||
| sudo useradd -m -s / | sudo useradd -m -s / | ||
| - | ``` | ||
| - | ### 2. **Benutzern Passwörter zuweisen** | ||
| - | |||
| - | Nun vergeben wir Passwörter für beide Benutzer: | ||
| - | |||
| - | ```bash | ||
| sudo passwd alice | sudo passwd alice | ||
| sudo passwd bob | sudo passwd bob | ||
| ``` | ``` | ||
| - | Du wirst jeweils nach einem Passwort gefragt. | ||
| --- | --- | ||
| - | ### 3. **Gemeinsame Gruppe erstellen** | + | ### Gemeinsame Gruppe erstellen |
| - | Nun erstellen wir die gemeinsame Gruppe `projektgruppe`: | + | Nun erstellen wir die gemeinsame Gruppe `projektgruppe` |
| ```bash | ```bash | ||
| sudo groupadd projektgruppe | sudo groupadd projektgruppe | ||
| ``` | ``` | ||
| - | + | Benutzer zur gemeinsamen Gruppe hinzufügen | |
| - | --- | + | |
| - | + | ||
| - | ### 4. **Benutzer zur gemeinsamen Gruppe hinzufügen** | + | |
| - | + | ||
| - | Nun fügen wir `alice` und `bob` zur Gruppe `projektgruppe` hinzu: | + | |
| ```bash | ```bash | ||
| Line 76: | Line 63: | ||
| sudo usermod -aG projektgruppe bob | sudo usermod -aG projektgruppe bob | ||
| ``` | ``` | ||
| - | ### Erstmal falsch: | + | ### Erstmal falsch |
| - | **1.) Falsch 1: Homeordner von alice für alle freigeben** | + | **Falsch |
| + | ```bash | ||
| + | chmod 755 / | ||
| + | ``` | ||
| + | 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. | ||
| - | chmod 755 /home/alice | ||
| - | - Loesung: Gemeinsame Gruppe | + | **Falsch |
| - | + | ```bash | |
| - | **2.) Falsch 2: Ordner im Homeordner von alice erstellen und Gruppe ändern** | + | chmod 770 / |
| - | + | ``` | |
| - | chmod 770 / | + | |
| - Pfad kann nicht beschritten werden | - Pfad kann nicht beschritten werden | ||
| - Pfad muss vollumfänglich begehbar sein | - Pfad muss vollumfänglich begehbar sein | ||
| - | ### 5. **Gemeinsames Verzeichnis erstellen** | + | ### Jetzt aber richtig |
| + | |||
| + | #### Gemeinsames Verzeichnis erstellen | ||
| Erstelle ein Verzeichnis, | Erstelle ein Verzeichnis, | ||
| Line 100: | Line 91: | ||
| sudo mkdir / | sudo mkdir / | ||
| ``` | ``` | ||
| - | andere gute, | + | andere gute Orte `/srv` und `/ |
| - | ``` | + | |
| - | /srv | + | |
| - | und dann / | + | |
| - | ``` | + | |
| --- | --- | ||
| - | ### 6. **Besitzrechte des Verzeichnisses ändern** | + | #### Besitzrechte des Verzeichnisses ändern |
| Ändere den Besitzer des Verzeichnisses so, dass die Gruppe `projektgruppe` das Verzeichnis verwaltet: | Ändere den Besitzer des Verzeichnisses so, dass die Gruppe `projektgruppe` das Verzeichnis verwaltet: | ||
| Line 129: | Line 117: | ||
| --- | --- | ||
| - | ### 7. **Überprüfen der Berechtigungen** | + | #### Überprüfen der Berechtigungen |
| Stelle sicher, dass die Berechtigungen korrekt gesetzt sind: | Stelle sicher, dass die Berechtigungen korrekt gesetzt sind: | ||
| Line 145: | Line 133: | ||
| --- | --- | ||
| - | ### 8. **Testen des Zugriffs** | + | #### Testen des Zugriffs |
| Melde dich nun als Benutzer `alice` an und erstelle eine Datei im Verzeichnis `alicebob`: | Melde dich nun als Benutzer `alice` an und erstelle eine Datei im Verzeichnis `alicebob`: | ||
| Line 165: | Line 153: | ||
| --- | --- | ||
| - | ### Empfehlung | + | #### Empfehlung |
| - | - **Wenn möglich**: | + | Verschiebe gemeinsame Ordner an einen neutralen Ort, der nicht an persönliche Home-Verzeichnisse gebunden ist. |
| - | - **Falls notwendig**: | + | |
| - | ## setgid-Bit (Set Group ID) | + | --- |
| + | ### setgid-Bit (Set Group ID) | ||
| - | ```bash | + | **Problem: Standardgruppe neuer Dateien festzurren** |
| - | chmod g+s / | + | - **Ohne setgid-Bit**: |
| - | ``` | + | - **Wirkung auf Verzeichnisse**: |
| - | **Problem | + | |
| - | - **Wirkung auf Verzeichnisse**: | + | |
| - | enn das `setgid`-Bit auf einem Verzeichnis gesetzt wird, erhalten alle neuen Dateien und Unterverzeichnisse innerhalb dieses Verzeichnisses automatisch die Gruppe des Verzeichnisses, | + | |
| - **Wirkung auf ausführbare Dateien**: Wenn das `setgid`-Bit auf einer Datei gesetzt ist, wird diese Datei mit den **Gruppenrechten** des Besitzers ausgefü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, | ||
| **Beispiel für ein Verzeichnis: | **Beispiel für ein Verzeichnis: | ||
| ```bash | ```bash | ||
| - | chmod g+s /shared-folder | + | chmod g+s /home/ |
| ``` | ``` | ||
| 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 196: | 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 Dateien in einem Verzeic | + | Das **Sticky Bit** hat eine andere Funktion und wird hauptsächlich in Verzeichnissen verwendet, um zu verhindern, dass Benutzer Dateien in einem Verzeichnis |
| - | hnis löschen oder umbenennen, die **nicht** ihnen gehören. | + | |
| #### Verzeichnis mit Sticky Bit | #### Verzeichnis mit Sticky Bit | ||
| Line 220: | 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 | | Merkmal | ||