# đ§ Crumbpage 01: Linux User, Gruppen & Rechte
**Subtitle:** *Wer bin ich, was darf ich - die IdentitÀt im Wald*
**Pfad:** 1 von 8
**Schwierigkeit:** ââ (Einsteiger-freundlich)
**Zeit:** ~2-3 Stunden
**Voraussetzungen:** Keine - das ist der Start!
> *"Jeder Wanderer braucht einen Namen, jeder Name braucht Rechte, und jede Datei einen BeschĂŒtzer."* đČ
---
## đ Was du in diesem Pfad lernst
```
â User-IdentitĂ€t im Linux-System
â Home-Verzeichnis und wichtige Pfade
â Gruppen und ihre Bedeutung
â Das Rechte-System (rwx)
â Berechtigungen Ă€ndern (chmod, chown, chgrp)
â Sichere Praktiken fĂŒr User-Management
```
---
## đŻ Lernziele
Nach diesem Pfad kannst du:
- [ ] Deine User-ID und Gruppen identifizieren
- [ ] Dateiberechtigungen lesen und verstehen
- [ ] Berechtigungen sicher Àndern
- [ ] Den Unterschied zwischen Owner, Group und Others erklÀren
- [ ] HĂ€ufige Permission-Fehler selbst beheben
---
## đ± Grundkonzepte
### Konzept 1: Du im System - IdentitÀt
**Was ist das?**
Jeder Prozess und jede Aktion in Linux hat eine **IdentitÀt**:
- Einen **User** (UID = User ID)
- Eine oder mehrere **Gruppen** (GID = Group ID)
- Einen **Home-Ordner** (dein persönlicher Platz)
**Warum ist das wichtig?**
```bash
# Ohne IdentitÀts-System:
Jeder könnte alles lesen, Ă€ndern, löschen â Chaos! đ„
# Mit IdentitÀts-System:
Jeder hat seinen Bereich, klare Grenzen â Ordnung! â
```
**Wie funktioniert es?**
```bash
# Wer bin ich?
$ whoami
keksmann
# Detaillierte Info
$ id
uid=1000(keksmann) gid=1000(keksmann) groups=1000(keksmann),27(sudo),100(users)
# Was bedeutet das?
uid=1000 â Deine eindeutige User-ID
gid=1000 â Deine primĂ€re Gruppe
groups=... â Alle Gruppen, in denen du Mitglied bist
```
---
### Konzept 2: Das Home-Verzeichnis
**Was ist das?**
Dein **Home** ist dein persönlicher Ordner im System:
```bash
# Wo ist mein Home?
$ echo $HOME
/home/keksmann
# Alternative
$ pwd # wenn du gerade dort bist
/home/keksmann
# Schnell nach Hause
$ cd # ohne Argument â direkt nach $HOME
$ cd ~ # ~ ist AbkĂŒrzung fĂŒr $HOME
```
**Struktur eines typischen Home:**
```
/home/keksmann/
âââ .bashrc # Shell-Konfiguration
âââ .ssh/ # SSH-Keys (wichtig!)
â âââ id_rsa # Private Key (GEHEIM!)
â âââ id_rsa.pub # Public Key (teilbar)
â âââ authorized_keys
âââ .config/ # App-Konfigurationen
âââ Documents/ # Deine Dokumente
âââ Downloads/ # Downloads
âââ projects/ # Deine Projekte
```
**â ïž Wichtig:**
```bash
# Dateien die mit . beginnen sind "hidden"
$ ls # Zeigt NICHT .bashrc, .ssh, etc.
$ ls -a # Zeigt ALLES (a = all)
$ ls -la # Zeigt ALLES mit Details
```
---
### Konzept 3: Gruppen - Gemeinsam stark
**Was ist das?**
Gruppen erlauben es, **mehreren Usern gemeinsam Zugriff** zu geben:
```bash
# Meine Gruppen anzeigen
$ groups
keksmann sudo docker www-data
# Was bedeutet das?
keksmann â Meine persönliche Gruppe
sudo â Darf sudo verwenden (Admin-Rechte)
docker â Darf Docker nutzen
www-data â Kann Webserver-Dateien lesen
```
**Warum ist das wichtig?**
```bash
# Scenario: Webseite bearbeiten
# Ohne Gruppe:
- Nur root darf Webseite Ă€ndern â Unsicher!
# Mit Gruppe:
- User ist in Gruppe 'www-data'
- Webseiten-Ordner gehört www-data
- Mehrere User können sicher zusammenarbeiten â
```
---
### Konzept 4: Das rwx-System
**Was ist das?**
Jede Datei/Ordner hat **3 Berechtigungs-Ebenen**:
```
r = read (lesen)
w = write (schreiben)
x = execute (ausfĂŒhren)
```
FĂŒr **3 Kategorien** von Usern:
```
u = user (Owner/Besitzer)
g = group (Gruppe)
o = others (Alle anderen)
```
**Wie liest man das?**
```bash
$ ls -l myscript.sh
-rwxr-xr-- 1 keksmann developer 1024 Dec 06 15:30 myscript.sh
âââââââââ
ââââââââââ others: r-- (nur lesen)
ââââââââââ group: r-x (lesen, ausfĂŒhren)
ââââââââââ user: rwx (alles)
âââââââââââ Anzahl Links
âââââââââââ Owner: keksmann
âââââââââââ File Type (- = regular file)
```
**Visualisierung:**
```
-rwxr-xr--
â â â
â â ââââ Others: r-- (read only)
â âââââââ Group: r-x (read, execute)
ââââââââââ User: rwx (read, write, execute)
```
**Bei Ordnern:**
```
drwxr-xr-x 2 keksmann developer 4096 Dec 06 15:30 mydir/
â
ââ d = directory
Ordner-Rechte:
r = Darf Inhalte listen (ls)
w = Darf Dateien erstellen/löschen
x = Darf in Ordner wechseln (cd)
```
---
## đ§ Praktische Befehle
### Befehl 1: `whoami` - Wer bin ich?
```bash
# Zeigt aktuellen Username
$ whoami
keksmann
```
**Anwendungsfall:**
```bash
# In Skripten prĂŒfen ob root
if [ "$(whoami)" != "root" ]; then
echo "Bitte als root ausfĂŒhren!"
exit 1
fi
```
---
### Befehl 2: `id` - Detaillierte IdentitÀt
```bash
# VollstÀndige User-Info
$ id
uid=1000(keksmann) gid=1000(keksmann) groups=1000(keksmann),27(sudo),999(docker)
# Nur UID anzeigen
$ id -u
1000
# Nur GID anzeigen
$ id -g
1000
# Info ĂŒber anderen User
$ id root
uid=0(root) gid=0(root) groups=0(root)
```
---
### Befehl 3: `groups` - Meine Gruppen
```bash
# Eigene Gruppen
$ groups
keksmann sudo docker
# Gruppen eines anderen Users
$ groups www-data
www-data : www-data
```
---
### Befehl 4: `ls -la` - Dateien mit Rechten
```bash
# Detaillierte Datei-Auflistung
$ ls -la
total 48
drwxr-xr-x 5 keksmann keksmann 4096 Dec 6 15:30 .
drwxr-xr-x 20 root root 4096 Dec 1 10:00 ..
-rw------- 1 keksmann keksmann 220 Dec 1 09:00 .bash_history
-rw-r--r-- 1 keksmann keksmann 807 Dec 1 09:00 .bashrc
drwx------ 2 keksmann keksmann 4096 Dec 2 12:00 .ssh
-rwxr-xr-x 1 keksmann keksmann 512 Dec 6 15:30 myscript.sh
-rw-r--r-- 1 keksmann keksmann 1024 Dec 5 14:20 notes.txt
# Nur Dateien mit bestimmtem Muster
$ ls -l *.txt
-rw-r--r-- 1 keksmann keksmann 1024 Dec 5 14:20 notes.txt
# Nur Verzeichnisse
$ ls -ld */
drwx------ 2 keksmann keksmann 4096 Dec 2 12:00 .ssh/
```
---
### Befehl 5: `chmod` - Rechte Àndern
**Syntax:**
```bash
chmod [WHO][OPERATOR][PERMISSIONS] file
WHO:
u = user (owner)
g = group
o = others
a = all (u+g+o)
OPERATOR:
+ = hinzufĂŒgen
- = entfernen
= = exakt setzen
PERMISSIONS:
r = read
w = write
x = execute
```
**Beispiele (Symbolisch):**
```bash
# User: executable hinzufĂŒgen
$ chmod u+x script.sh
# Group: write entfernen
$ chmod g-w document.txt
# Others: alle Rechte entfernen
$ chmod o-rwx secret.txt
# Allen: read geben
$ chmod a+r public.txt
# Exakt setzen: User=rwx, Group=rx, Others=r
$ chmod u=rwx,g=rx,o=r file.txt
```
**Beispiele (Numerisch):**
```bash
# Jede Permission ist eine Zahl:
r = 4
w = 2
x = 1
# Kombinationen addieren:
rwx = 4+2+1 = 7
rw- = 4+2+0 = 6
r-x = 4+0+1 = 5
r-- = 4+0+0 = 4
--- = 0+0+0 = 0
# Beispiele:
chmod 755 script.sh
âââ
ââââ Others: r-x (5)
ââââ Group: r-x (5)
ââââ User: rwx (7)
chmod 644 document.txt
âââ
ââââ Others: r-- (4)
ââââ Group: r-- (4)
ââââ User: rw- (6)
chmod 600 secret.txt
âââ
ââââ Others: --- (0)
ââââ Group: --- (0)
ââââ User: rw- (6)
chmod 700 private_folder/
âââ
ââââ Others: --- (0)
ââââ Group: --- (0)
ââââ User: rwx (7)
```
**Rekursiv (fĂŒr Ordner):**
```bash
# Alle Dateien in Ordner Àndern
$ chmod -R 755 my_folder/
# â ïž VORSICHT: Ăndert ALLE Dateien rekursiv!
```
---
### Befehl 6: `chown` - Owner Àndern
**Syntax:**
```bash
chown [OWNER][:GROUP] file
# Beispiele:
chown keksmann file.txt # Nur Owner Àndern
chown keksmann:developer file.txt # Owner und Group
chown :developer file.txt # Nur Group Àndern
```
**Praktische Beispiele:**
```bash
# Website-Ordner an Webserver ĂŒbergeben
$ sudo chown -R www-data:www-data /var/www/html/
# Datei ĂŒbernehmen
$ sudo chown keksmann:keksmann downloaded_file.txt
# Nur Group Àndern (siehe nÀchster Befehl)
$ sudo chown :developer project_folder/
```
**â ïž Wichtig:**
```bash
# chown braucht meist sudo (wenn du nicht Owner bist)
$ chown keksmann file.txt # â Permission denied
$ sudo chown keksmann file.txt # â
Funktioniert
```
---
### Befehl 7: `chgrp` - Nur Group Àndern
```bash
# Group Àndern
$ chgrp developer file.txt
# Rekursiv
$ chgrp -R www-data /var/www/project/
# Ist gleichbedeutend mit:
$ chown :www-data /var/www/project/
```
---
## đĄ Best Practices
### DO â
```bash
# 1. Skripte executable machen
$ chmod +x myscript.sh
$ ./myscript.sh # Kann jetzt direkt ausgefĂŒhrt werden
# 2. Secrets schĂŒtzen
$ chmod 600 ~/.ssh/id_rsa # Nur Owner kann lesen
$ chmod 700 ~/.ssh/ # Nur Owner kann zugreifen
# 3. Shared Folders
$ sudo chgrp developers /opt/shared
$ sudo chmod 770 /opt/shared # Group kann voll zugreifen
# 4. Web-Content
$ sudo chown -R www-data:www-data /var/www/html/
$ sudo chmod 755 /var/www/html/ # Ordner: alle können lesen
$ sudo chmod 644 /var/www/html/*.html # Dateien: nur Owner schreibt
```
### DON'T â
```bash
# 1. NIEMALS alles auf 777 setzen
$ chmod -R 777 / # đ EXTREM GEFĂHRLICH!
# Warum? 777 bedeutet:
# - Jeder kann alles lesen, schreiben, ausfĂŒhren
# - Zero Security
# - Perfekt fĂŒr Hacker
# 2. Nicht als root arbeiten wenn nicht nötig
$ sudo chmod 777 important_file # â Overkill
$ chmod 755 important_file # â
Ausreichend
# 3. Keine Secrets mit group/other-Rechten
$ chmod 644 api_key.txt # â Group + Others können lesen
$ chmod 600 api_key.txt # â
Nur Owner kann lesen
# 4. Nicht blind rekursiv
$ chmod -R 777 folder/ # â Alles unsicher
# Besser: Gezielt einzelne Dateien/Ordner
```
---
## đ Hands-On Ăbungen
### Ăbung 1: Lerne dich selbst kennen
**Aufgabe:**
Finde heraus wer du bist, wo dein Home ist, und in welchen Gruppen du Mitglied bist.
**Schritte:**
```bash
# Schritt 1: Username
$ whoami
# Schritt 2: Detaillierte Info
$ id
# Schritt 3: Gruppen
$ groups
# Schritt 4: Home-Verzeichnis
$ echo $HOME
$ cd ~
$ pwd
# Schritt 5: Hidden Files im Home
$ ls -la ~
```
**Erwartetes Ergebnis:**
```
$ whoami
keksmann
$ id
uid=1000(keksmann) gid=1000(keksmann) groups=1000(keksmann),27(sudo)
$ groups
keksmann sudo
$ echo $HOME
/home/keksmann
```
---
### Ăbung 2: Test-Dateien erstellen und Rechte verstehen
**Aufgabe:**
Erstelle Test-Dateien und lerne Rechte zu lesen.
**Schritte:**
```bash
# Schritt 1: Test-Ordner erstellen
$ mkdir ~/rechte-test
$ cd ~/rechte-test
# Schritt 2: Verschiedene Dateien erstellen
$ touch public.txt
$ touch private.txt
$ touch script.sh
# Schritt 3: Rechte anschauen
$ ls -l
# Schritt 4: Rechte setzen
$ chmod 644 public.txt # Alle können lesen
$ chmod 600 private.txt # Nur ich kann lesen
$ chmod 755 script.sh # Alle können lesen/ausfĂŒhren
# Schritt 5: Ergebnis prĂŒfen
$ ls -l
```
**Erwartetes Ergebnis:**
```bash
$ ls -l
-rw-r--r-- 1 keksmann keksmann 0 Dec 6 15:30 public.txt
-rw------- 1 keksmann keksmann 0 Dec 6 15:30 private.txt
-rwxr-xr-x 1 keksmann keksmann 0 Dec 6 15:30 script.sh
```
---
### Ăbung 3: Symbolische vs. Numerische chmod
**Aufgabe:**
Setze die gleichen Rechte einmal symbolisch, einmal numerisch.
**Schritte:**
```bash
# Datei erstellen
$ touch test1.txt
$ touch test2.txt
# Symbolisch: User=rw, Group=r, Others=r
$ chmod u=rw,g=r,o=r test1.txt
# Numerisch: 644 (rw-r--r--)
$ chmod 644 test2.txt
# Vergleichen
$ ls -l test*.txt
```
**Erwartetes Ergebnis:**
```bash
-rw-r--r-- 1 keksmann keksmann 0 Dec 6 15:30 test1.txt
-rw-r--r-- 1 keksmann keksmann 0 Dec 6 15:30 test2.txt
# Beide identisch!
```
**Lösungsweg:**
Klick hier fĂŒr detaillierte ErklĂ€rung
```bash
# 644 ausrechnen:
User: rw- = 4+2+0 = 6
Group: r-- = 4+0+0 = 4
Others: r-- = 4+0+0 = 4
Ergebnis: 644
# Symbolisch:
u=rw â User kann read+write
g=r â Group kann nur read
o=r â Others kann nur read
```
---
### Ăbung 4: Secure Secrets
**Aufgabe:**
Simuliere das Absichern eines API-Keys.
**Schritte:**
```bash
# Schritt 1: "API Key" Datei erstellen
$ echo "super-secret-api-key-123" > ~/api_key.txt
# Schritt 2: Standard-Rechte anschauen (meist 644)
$ ls -l ~/api_key.txt
# Schritt 3: Rechte lockern (FALSCH!)
$ chmod 644 ~/api_key.txt
$ cat ~/api_key.txt # Jeder in Group kann lesen!
# Schritt 4: Richtig absichern
$ chmod 600 ~/api_key.txt
$ ls -l ~/api_key.txt
# Schritt 5: Testen (als anderer User wĂŒrde cat fehlschlagen)
```
**Erwartetes Ergebnis:**
```bash
$ ls -l ~/api_key.txt
-rw------- 1 keksmann keksmann 25 Dec 6 15:30 /home/keksmann/api_key.txt
ââ Nur Owner kann lesen/schreiben!
```
---
## đ HĂ€ufige Fehler & Lösungen
### Fehler 1: "Permission denied" beim AusfĂŒhren
**Symptom:**
```bash
$ ./myscript.sh
bash: ./myscript.sh: Permission denied
```
**Ursache:**
Datei hat kein `x` (execute) Flag.
**Diagnose:**
```bash
$ ls -l myscript.sh
-rw-r--r-- 1 keksmann keksmann 512 Dec 6 15:30 myscript.sh
ââ Kein 'x' vorhanden!
```
**Lösung:**
```bash
# Execute-Recht hinzufĂŒgen
$ chmod +x myscript.sh
# Oder numerisch
$ chmod 755 myscript.sh
# Jetzt funktioniert es
$ ./myscript.sh
Hello World!
```
---
### Fehler 2: "Permission denied" beim Lesen
**Symptom:**
```bash
$ cat secret.txt
cat: secret.txt: Permission denied
```
**Ursache:**
Du bist nicht Owner, oder Datei hat kein `r` Flag fĂŒr deine Kategorie.
**Diagnose:**
```bash
$ ls -l secret.txt
-rw------- 1 root root 100 Dec 6 15:30 secret.txt
âââââââââ
âââ User (root): rw-
âââ Group (root): ---
Others: ---
# Du bist nicht root â Kein Zugriff!
```
**Lösung (wenn du zugriffsberechtigt sein solltest):**
```bash
# Option 1: Owner auf dich Àndern (braucht sudo)
$ sudo chown keksmann:keksmann secret.txt
# Option 2: Datei in 'developers' Gruppe und du bist Mitglied
$ sudo chgrp developers secret.txt
$ sudo chmod 640 secret.txt # Group kann lesen
```
---
### Fehler 3: "Operation not permitted" bei chown
**Symptom:**
```bash
$ chown keksmann file.txt
chown: changing ownership of 'file.txt': Operation not permitted
```
**Ursache:**
Nur root oder der aktuelle Owner darf Owner Àndern.
**Lösung:**
```bash
# Mit sudo
$ sudo chown keksmann file.txt
```
---
### Fehler 4: SSH Key wird nicht akzeptiert
**Symptom:**
```bash
$ ssh server
Permission denied (publickey).
```
**Ursache oft:**
SSH-Keys haben falsche Rechte (zu offen).
**Diagnose:**
```bash
$ ls -la ~/.ssh/
-rw-rw-rw- 1 keksmann keksmann 1679 Dec 1 10:00 id_rsa # â ZU OFFEN!
```
**Lösung:**
```bash
# Private Keys mĂŒssen 600 sein
$ chmod 600 ~/.ssh/id_rsa
$ chmod 644 ~/.ssh/id_rsa.pub
$ chmod 700 ~/.ssh/
# Jetzt sollte SSH funktionieren
$ ssh server
```
---
### Fehler 5: "Cannot create directory: Permission denied"
**Symptom:**
```bash
$ mkdir /opt/myapp
mkdir: cannot create directory '/opt/myapp': Permission denied
```
**Ursache:**
Du hast keine Write-Rechte im Parent-Verzeichnis.
**Diagnose:**
```bash
$ ls -ld /opt
drwxr-xr-x 5 root root 4096 Dec 1 10:00 /opt
âââ
âââ Others: r-x (kein 'w'!)
ââââ Group: r-x
ââââ User (root): rwx
```
**Lösung:**
```bash
# Option 1: Mit sudo
$ sudo mkdir /opt/myapp
# Option 2: Owner/Group Àndern (einmalig)
$ sudo chown keksmann:developers /opt
$ mkdir /opt/myapp # Jetzt funktioniert es
# Option 3: Im eigenen Home arbeiten
$ mkdir ~/myapp
```
---
## đ Troubleshooting Checkliste
Wenn du Permissions-Probleme hast:
```bash
# 1. Bin ich der richtige User?
$ whoami
$ id
# 2. Was sind die aktuellen Rechte?
$ ls -la /path/to/file
# 3. Wer ist Owner?
$ ls -l /path/to/file
-rw-r--r-- 1 OWNER GROUP ...
â â
# 4. Bin ich in der Group?
$ groups | grep GROUP_NAME
# 5. Was brauche ich? (read/write/execute)
$ # Lesen? â Need 'r'
$ # Schreiben? â Need 'w'
$ # AusfĂŒhren/CD? â Need 'x'
# 6. Kann ich die Rechte Àndern?
$ chmod ... file # Als Owner
$ sudo chmod ... file # Mit Admin-Rechten
# 7. Muss ich Owner Àndern?
$ sudo chown USER:GROUP file
```
---
## đŻ Skill-Check
Bevor du zum nÀchsten Pfad gehst:
**Grundlagen:**
- [ ] Ich kann `whoami` und `id` benutzen
- [ ] Ich verstehe was UID/GID bedeutet
- [ ] Ich weiĂ wo mein $HOME ist
- [ ] Ich kann hidden files anzeigen (`ls -la`)
**Rechte lesen:**
- [ ] Ich kann `-rwxr-xr--` interpretieren
- [ ] Ich verstehe den Unterschied zwischen File und Directory Rechten
- [ ] Ich erkenne Owner, Group und Others in `ls -l` output
**Rechte setzen:**
- [ ] Ich kann `chmod` symbolisch nutzen (u+x, g-w, etc.)
- [ ] Ich kann `chmod` numerisch nutzen (755, 644, etc.)
- [ ] Ich verstehe wann ich `chown` vs. `chgrp` nutze
**Security:**
- [ ] Ich weià warum 777 gefÀhrlich ist
- [ ] Ich kann Secrets richtig absichern (600)
- [ ] Ich nutze `sudo` nur wenn nötig
**Troubleshooting:**
- [ ] Ich kann "Permission denied" Fehler debuggen
- [ ] Ich weiĂ wie ich die Checkliste anwende
**Wenn 12/12 â
**: Du bist ready fĂŒr Pfad 2!
**Wenn <12 â
**: Wiederhole die Ăbungen
---
## đ WeiterfĂŒhrende Links
### Intern (Crumbforest)
- [Admin-Vektor Ăbersicht](crumbforest-admin-vektor.md)
- [NĂ€chster Pfad: Hostinformation â](crumbpage-02-hostinfo.md)
### Extern
- [Linux File Permissions Explained](https://www.redhat.com/sysadmin/linux-file-permissions-explained)
- [chmod Calculator](https://chmod-calculator.com/)
- [Understanding Linux Users and Groups](https://www.linode.com/docs/guides/linux-users-and-groups/)
---
## đ Deine Notizen
**Was war neu fĂŒr mich?**
```
[Platz fĂŒr deine Notizen]
```
**Was war schwierig?**
```
[Platz fĂŒr deine Notizen]
```
**Eigene chmod-Beispiele die ich brauche:**
```bash
# Beispiel:
chmod 755 /path/to/my/script.sh # Mein Use-Case: ...
```
---
## đŠ Crystal Owl's Weisheit
```
đŠ
/đ\
/_||_\
/ || \
"Rechte sind wie SchlĂŒssel zu TĂŒren.
Gib nicht jedem jeden SchlĂŒssel.
Ein 600er Schloss schĂŒtzt Geheimnisse.
Ein 755er Schloss teilt Wissen sicher.
Ein 777er Schloss? Das ist keine TĂŒr mehr,
das ist ein Tor zur Katastrophe."
```
**KrĂŒmel-Tipp:**
```bash
# Erstelle dir ein chmod-cheatsheet
$ cat > ~/chmod-cheatsheet.txt << 'EOF'
### Mein chmod Cheatsheet ###
Skripte executable: chmod +x script.sh
Secrets verstecken: chmod 600 api_key.txt
SSH Keys: chmod 600 ~/.ssh/id_rsa
Web-Content (Ordner): chmod 755 /var/www/html/
Web-Content (Dateien): chmod 644 /var/www/html/*.html
Shared Dev Folder: chmod 770 /opt/shared/
Nie verwenden: chmod 777 (alles offen!)
EOF
$ chmod 600 ~/chmod-cheatsheet.txt # Selbst auch schĂŒtzen!
```
---
## đź Bonus: Advanced Topics
Klick fĂŒr fortgeschrittene Themen
### SetUID und SetGID Bits
```bash
# SetUID (Set User ID):
# Datei wird mit Owner-Rechten ausgefĂŒhrt, egal wer sie startet
$ chmod u+s /usr/bin/passwd
$ ls -l /usr/bin/passwd
-rwsr-xr-x 1 root root ...
â 's' statt 'x'
# Numerisch: 4755 (4 = SetUID Bit)
$ chmod 4755 binary
# SetGID (Set Group ID):
# FĂŒr Ordner: Neue Dateien erben die Group des Ordners
$ chmod g+s /shared/project/
$ chmod 2775 /shared/project/ # 2 = SetGID Bit
```
### Sticky Bit
```bash
# Auf Ordnern: Nur Owner kann eigene Dateien löschen
# Perfekt fĂŒr /tmp und shared folders
$ chmod +t /shared/public/
$ chmod 1777 /shared/public/ # 1 = Sticky Bit
$ ls -ld /tmp
drwxrwxrwt ...
â 't' = Sticky Bit
```
### ACLs (Access Control Lists)
```bash
# Feinere Kontrolle als rwx
$ setfacl -m u:keksmann:rwx file.txt # Specific user
$ setfacl -m g:developers:r-x file.txt # Specific group
$ getfacl file.txt # ACLs anzeigen
```
### Immutable Files
```bash
# Datei kann nicht geÀndert/gelöscht werden (auch nicht von root!)
$ sudo chattr +i important.conf
$ sudo chattr -i important.conf # Wieder Ànderbar machen
$ lsattr important.conf # Attribute anzeigen
```
---
**Version:** 1.0
**Letzte Ănderung:** 2024-12-06
**Maintainer:** Crumbforest Core Team
**Feedback:** [GitHub Issues](#) | [Discord](#)
---
**Navigation:**
[â ZurĂŒck: Vektor-Ăbersicht](crumbforest-admin-vektor.md) | [Weiter: Pfad 2: Hostinformation â](crumbpage-02-hostinfo.md)
---
*đČ GlĂŒckwunsch! Du hast den ersten Pfad gemeistert. Der Wald liegt vor dir.* đŠđ