Files
Snippets/Bash.md
T
2026-05-17 19:22:52 +02:00

95 lines
2.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Hilfreiche Bash-Schnipsel
## Dateien mit anderer Endung versehen
```for datei in $(ls *.tif)
do
mv ”$datei” ”{$datei%.tif}.pdf”
done
```
## Löschen von Leerzeichen in Dateinamen und Ersetzen mit _
`for f in *\ *; do mv ”$f” ”${f// /_}”; done`
## chmod
chmod ugo user/group/other
chmod g+ws --> die Gruppe bekommt Schreibrechte und das setgid wird gesetzt
Numerisch 2755 = rwxr-Sr-x
chmod g+s → setgid + execute (s)
chmod g+S → nur setgid, ohne execute (S)
Das heisst kleines s wenn auch x gesetzt ist, groß s ohne execute (cper chmod kann man nur ein kleines s setzen)
Beispiel:
Ohne setgid:
/projekt
├── alice erstellt datei1 → Gruppe: alice
└── bob erstellt datei2 → Gruppe: bob
Mit setgid:
/projekt
├── alice erstellt datei1 → Gruppe: projektteam
└── bob erstellt datei2 → Gruppe: projektteam
Das verhindert dauerndes:
chgrp projektteam datei
Wann nutzt man das setgid konkret?
Sehr sinnvoll für:
gemeinsame Entwickler-Verzeichnisse
Team-Ordner auf Servern
Webserver-Verzeichnisse
geteilte Upload-/Projektbereiche
Es gibt drei spezielle Bits:
u+s → setuid (User-ID)
g+s → setgid (Group-ID)
o+t → sticky bit
Beispiele:
chmod u+s datei # setuid
chmod g+s datei # setgid
chmod +t verzeichnis # sticky bit
In ls -l erscheinen sie an unterschiedlichen Stellen:
-rwsr-sr-t
^ ^ ^
| | └─ sticky bit (others)
| └──── setgid (group)
└─────── setuid (user)
Also:
setgid heißt wörtlich "set group ID", daher gibt es kein u+g-Äquivalent oder so es ist fest an die Gruppenrechte gekoppelt.
Die Logik ist:
setuid → Prozess übernimmt Besitzer-ID
setgid → Prozess übernimmt Gruppen-ID
sticky → Sonderregel für Verzeichnisse (z. B. /tmp)
a+x oder ugo+x Eine Datei für alle Nutzer ausführbar machen.
u+r Der Eigentümer darf (zusätzlich zu vorhandenen Rechten) lesen.
a+w oder ugo+w Alle dürfen zusätzlich zu vorhandenen Rechten schreiben.
g-w Der Gruppe werden die Schreibrechte entzogen.
o=r Andere Benutzer dürfen nur lesen, nicht schreiben oder ausführen.
g=rw Die Gruppe darf nur lesen und schreiben, ein eventuell vorhandenes Ausführungsrecht wird entfernt.
u+s Setzt das SetUID-Bit
## Netzwerk
### Abfrage der offenen Ports
ss -lant
## Nächstes Thema - Platzhalter