Compare commits
48 Commits
f9473a3578
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
2f08d1c73a | ||
|
|
bf6e82ef51 | ||
|
|
60104ac84b | ||
|
|
e86b0082c7 | ||
|
|
1859d67161 | ||
|
|
dbaff43d57 | ||
|
|
92f0f25b1e | ||
|
|
3bfa5897ef | ||
|
|
597e431b25 | ||
|
|
933ea953d1 | ||
|
|
40a8167693 | ||
|
|
0de387e241 | ||
|
|
ba5b76055e | ||
|
|
d49196fe8c | ||
|
|
95ef201be0 | ||
|
|
c11d609b52 | ||
|
|
dd20436f14 | ||
|
|
60308f76f3 | ||
|
|
0dbebc858b | ||
|
|
c6a863c95a | ||
|
|
ae545a5a1e | ||
|
|
751aa15002 | ||
| edcb18981a | |||
| 6a1a54f200 | |||
| 4fc50866a3 | |||
| 385e21c52b | |||
| 828cb7e5a9 | |||
| cd754f1a4e | |||
| b8da376d15 | |||
|
|
f34f6917ae | ||
|
|
c3664b54d9 | ||
|
|
bd396ba642 | ||
|
|
27496257ca | ||
| 09148d2000 | |||
|
|
d935875783 | ||
|
|
7b8fee4979 | ||
|
|
f9df6d7ace | ||
|
|
ebf9eb2213 | ||
|
|
8b04c0c29f | ||
|
|
12b96f28a7 | ||
|
|
f296ef68b7 | ||
| c1047b271d | |||
|
|
fe5c4f0a69 | ||
|
|
4e02079aad | ||
|
|
734255e06e | ||
|
|
58f1afb2cf | ||
|
|
294a86a2af | ||
|
|
77854a004e |
3
.gitignore
vendored
3
.gitignore
vendored
@@ -1 +1,4 @@
|
|||||||
mkdocs/site/
|
mkdocs/site/
|
||||||
|
*.pdf
|
||||||
|
*.PDF
|
||||||
|
.cache
|
||||||
26
Dockerfile
26
Dockerfile
@@ -1,12 +1,16 @@
|
|||||||
FROM pandoc/latex:latest
|
FROM squidfunk/mkdocs-material:latest
|
||||||
|
|
||||||
WORKDIR /data
|
# Laufzeit-Pakete (inkl. weasyprint) + temporäre Build-Dependencies zum Kompilieren (z.B. libsass)
|
||||||
|
RUN apk add --no-cache \
|
||||||
## Eisvogel Template kopieren (lokal notwendig)
|
weasyprint \
|
||||||
#COPY eisvogel.tex /data/eisvogel.tex
|
cairo \
|
||||||
|
pango \
|
||||||
# Script kopieren und ausführbar machen
|
gdk-pixbuf \
|
||||||
COPY mkdocs-to-pdf.sh /usr/local/bin/mkdocs-to-pdf.sh
|
libjpeg-turbo \
|
||||||
RUN chmod +x /usr/local/bin/mkdocs-to-pdf.sh
|
zlib \
|
||||||
|
fontconfig \
|
||||||
ENTRYPOINT ["/usr/local/bin/mkdocs-to-pdf.sh"]
|
ttf-dejavu \
|
||||||
|
&& apk add --no-cache --virtual .build-deps \
|
||||||
|
build-base python3-dev libffi-dev cairo-dev pango-dev gdk-pixbuf-dev libjpeg-turbo-dev zlib-dev pkgconfig \
|
||||||
|
&& pip install --no-cache-dir mkdocs-to-pdf \
|
||||||
|
&& apk del .build-deps
|
||||||
@@ -16,7 +16,7 @@ Dieses Projekt enthält ein Bash-Skript und eine Umgebung zum automatischen Konv
|
|||||||
## Nutzung
|
## Nutzung
|
||||||
````bash
|
````bash
|
||||||
Alle Markdown-Dateien in mkdocs/docs pdfen:
|
Alle Markdown-Dateien in mkdocs/docs pdfen:
|
||||||
./mkdocs-to-pdf.sh
|
./mkdocs-complete.sh
|
||||||
|
|
||||||
Einzelne Datei konvertieren:
|
Einzelne Datei konvertieren:
|
||||||
./mkdocs-to-pdf.sh Linux_Unternehmen/nextcloud-ldap.md
|
./mkdocs-to-pdf.sh Linux_Unternehmen/nextcloud-ldap.md
|
||||||
@@ -34,7 +34,7 @@ Mehrere Dateien gleichzeitig
|
|||||||
- LaTeX Template Datei `eisvogel.latex` im Projektverzeichnis
|
- LaTeX Template Datei `eisvogel.latex` im Projektverzeichnis
|
||||||
|
|
||||||
## Verzeichnisstruktur
|
## Verzeichnisstruktur
|
||||||
|
````
|
||||||
mkdocs/
|
mkdocs/
|
||||||
├── docs/ <- Markdown Quelldateien und Medien
|
├── docs/ <- Markdown Quelldateien und Medien
|
||||||
│ ├── Linux_Unternehmen/
|
│ ├── Linux_Unternehmen/
|
||||||
@@ -43,7 +43,7 @@ mkdocs/
|
|||||||
│ └── basics/
|
│ └── basics/
|
||||||
├── mkdocs.yml <- MkDocs Konfigurationsdatei
|
├── mkdocs.yml <- MkDocs Konfigurationsdatei
|
||||||
└── site/ <- Ergebnis von MkDocs Build (HTML, PDF)
|
└── site/ <- Ergebnis von MkDocs Build (HTML, PDF)
|
||||||
|
````
|
||||||
mkdocs-to-pdf.sh <- Bash Skript zur automatischen PDF-Erstellung
|
mkdocs-to-pdf.sh <- Bash Skript zur automatischen PDF-Erstellung
|
||||||
eisvogel.latex <- LaTeX Vorlage für Pandoc PDF Export
|
eisvogel.latex <- LaTeX Vorlage für Pandoc PDF Export
|
||||||
docker-compose.yml <- Containerdefintionen für MkDocs Umgebung
|
docker-compose.yml <- Containerdefintionen für MkDocs Umgebung
|
||||||
@@ -60,3 +60,6 @@ text
|
|||||||
|
|
||||||
Bei Fragen oder Problemen gerne Issues öffnen oder direkt kontaktieren.
|
Bei Fragen oder Problemen gerne Issues öffnen oder direkt kontaktieren.
|
||||||
Diese README.md beschreibt übersichtlich Zweck, Nutzung, Voraussetzungen, Verzeichnisstruktur und wichtige Hinweise zum Projekt. Gerne kann sie noch projektspezifisch erweitert werden.
|
Diese README.md beschreibt übersichtlich Zweck, Nutzung, Voraussetzungen, Verzeichnisstruktur und wichtige Hinweise zum Projekt. Gerne kann sie noch projektspezifisch erweitert werden.
|
||||||
|
|
||||||
|
Für mkdocs highlighiting und so:
|
||||||
|
https://github.com/domWalters/mkdocs-to-pdf/tree/develop/docs/examples
|
||||||
@@ -1,6 +1,7 @@
|
|||||||
services:
|
services:
|
||||||
mkdocs:
|
mkdocs:
|
||||||
image: squidfunk/mkdocs-material:latest
|
build: .
|
||||||
|
#image: squidfunk/mkdocs-material:latest
|
||||||
volumes:
|
volumes:
|
||||||
- ./mkdocs:/docs
|
- ./mkdocs:/docs
|
||||||
ports:
|
ports:
|
||||||
|
|||||||
BIN
mkdocs/docs/Linux_Unternehmen/Nextcloud_Design/favicon.ico
Normal file
BIN
mkdocs/docs/Linux_Unternehmen/Nextcloud_Design/favicon.ico
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 15 KiB |
@@ -1,9 +1,6 @@
|
|||||||
# Geschäfts-Samba-Server: Eingeschränkte Freigaben für Abteilungen
|
# Geschäfts-Samba-Server: Eingeschränkte Freigaben für Abteilungen
|
||||||
*Anleitung zur Einrichtung von Samba-Freigaben mit granularen Rechten für Hans Wurst (Produktion) und Peter Lustig (Verwaltung)*
|
*Anleitung zur Einrichtung von Samba-Freigaben mit granularen Rechten für Hans Wurst (Produktion) und Peter Lustig (Verwaltung)*
|
||||||
|
|
||||||
## Inhaltsverzeichnis
|
|
||||||
[TOC]
|
|
||||||
|
|
||||||
## 1. Zielbeschreibung
|
## 1. Zielbeschreibung
|
||||||
Dieses Projekt zeigt eine saubere, praxisnahe Einrichtung von
|
Dieses Projekt zeigt eine saubere, praxisnahe Einrichtung von
|
||||||
|
|
||||||
@@ -16,6 +13,8 @@ Dieses Projekt zeigt eine saubere, praxisnahe Einrichtung von
|
|||||||
| Hans Wurst | X | | | X |
|
| Hans Wurst | X | | | X |
|
||||||
| Peter Lustig | | X | | X |
|
| Peter Lustig | | X | | X |
|
||||||
|
|
||||||
|
!!! Note ``Samba`` sollte bereits installiert sein
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 2. Benutzer und Gruppen anlegen
|
## 2. Benutzer und Gruppen anlegen
|
||||||
@@ -29,20 +28,20 @@ sudo adduser plustig # Peter Lustig (Verwaltung)
|
|||||||
### 2.2 Gruppen für Rechteverwaltung erstellen
|
### 2.2 Gruppen für Rechteverwaltung erstellen
|
||||||
````bash
|
````bash
|
||||||
# Gruppen für Lese-/Schreibrechte
|
# Gruppen für Lese-/Schreibrechte
|
||||||
sudo addgroup angebote_l # Leserechte für Angebote
|
sudo addgroup angebote_r # Leserechte für Angebote
|
||||||
sudo addgroup angebote_ae # Schreibrechte für Angebote
|
sudo addgroup angebote_w # Schreibrechte für Angebote
|
||||||
sudo addgroup lieferscheine_l # Leserechte für Lieferscheine (hier nicht genutzt)
|
sudo addgroup lieferscheine_r # Leserechte für Lieferscheine (hier nicht genutzt)
|
||||||
sudo addgroup lieferscheine_ae # Schreibrechte für Lieferscheine
|
sudo addgroup lieferscheine_w # Schreibrechte für Lieferscheine
|
||||||
````
|
````
|
||||||
### 2.3 Benutzer den Gruppen zuweisen
|
### 2.3 Benutzer den Gruppen zuweisen
|
||||||
````bash
|
````bash
|
||||||
# Hans Wurst: Darf Angebote lesen und Lieferscheine schreiben
|
# Hans Wurst: Darf Angebote lesen und Lieferscheine schreiben
|
||||||
sudo usermod -aG angebote_l hwurst
|
sudo usermod -aG angebote_r hwurst
|
||||||
sudo usermod -aG lieferscheine_ae hwurst
|
sudo usermod -aG lieferscheine_w hwurst
|
||||||
|
|
||||||
# Peter Lustig: Darf Angebote und Lieferscheine schreiben
|
# Peter Lustig: Darf Angebote und Lieferscheine schreiben
|
||||||
sudo usermod -aG angebote_ae plustig
|
sudo usermod -aG angebote_w plustig
|
||||||
sudo usermod -aG lieferscheine_ae plustig
|
sudo usermod -aG lieferscheine_w plustig
|
||||||
````
|
````
|
||||||
|
|
||||||
### 2.4 Benutzer in Samba bekannt machen
|
### 2.4 Benutzer in Samba bekannt machen
|
||||||
@@ -60,11 +59,11 @@ sudo mkdir -p /srv/samba/{angebote,lieferscheine}
|
|||||||
````
|
````
|
||||||
### 3.2 Besitzer und Gruppe setzen
|
### 3.2 Besitzer und Gruppe setzen
|
||||||
````bash
|
````bash
|
||||||
# Angebote: Besitzer = nobody, Gruppe = angebote_ae (Schreibrechte)
|
# Angebote: Besitzer = nobody, Gruppe = angebote_w (Schreibrechte)
|
||||||
sudo chown -R nobody\:angebote_ae /srv/samba/angebote
|
sudo chown -R nobody:angebote_w /srv/samba/angebote
|
||||||
|
|
||||||
# Lieferscheine: Besitzer = nobody, Gruppe = lieferscheine_ae (Schreibrechte)
|
# Lieferscheine: Besitzer = nobody, Gruppe = lieferscheine_w (Schreibrechte)
|
||||||
sudo chown -R nobody\:lieferscheine_ae /srv/samba/lieferscheine
|
sudo chown -R nobody:lieferscheine_w /srv/samba/lieferscheine
|
||||||
````
|
````
|
||||||
### 3.3 Berechtigungen setzen
|
### 3.3 Berechtigungen setzen
|
||||||
|
|
||||||
@@ -76,7 +75,7 @@ sudo chmod -R 0077 /srv/samba/lieferscheine
|
|||||||
# - 7: Gruppe hat Vollzugriff (rwx)
|
# - 7: Gruppe hat Vollzugriff (rwx)
|
||||||
# - 7: Andere haben Vollzugriff (wird durch Samba eingeschränkt)
|
# - 7: Andere haben Vollzugriff (wird durch Samba eingeschränkt)
|
||||||
````
|
````
|
||||||
> Hinweis: Die tatsächlichen Rechte werden später durch Samba (````force create mode, valid users````) gesteuert.
|
!!! note Die tatsächlichen Rechte werden später durch Samba (````force create mode, valid users````) gesteuert.
|
||||||
|
|
||||||
## 4. Samba-Freigaben konfigurieren
|
## 4. Samba-Freigaben konfigurieren
|
||||||
|
|
||||||
@@ -93,19 +92,19 @@ Fügen Sie folgende Abschnitte am Ende der Datei ein:
|
|||||||
guest ok = no
|
guest ok = no
|
||||||
browseable = yes
|
browseable = yes
|
||||||
read only = yes # Standardmäßig schreibgeschützt
|
read only = yes # Standardmäßig schreibgeschützt
|
||||||
valid users = @angebote_l, @angebote_ae # Nur diese Gruppen dürfen zugreifen
|
valid users = @angebote_r, @angebote_w # Nur diese Gruppen dürfen zugreifen
|
||||||
write list = @angebote_ae # Nur diese Gruppe darf schreiben
|
write list = @angebote_w # Nur diese Gruppe darf schreiben
|
||||||
force create mode = 0775 # Neue Dateien: rwxrwxr-x
|
force create mode = 0775 # Neue Dateien: rwxrwxr-x
|
||||||
force directory mode = 0775 # Neue Ordner: rwxrwxr-x
|
force directory mode = 0775 # Neue Ordner: rwxrwxr-x
|
||||||
force group = angebote_ae # Neue Dateien gehören dieser Gruppe
|
force group = angebote_w # Neue Dateien gehören dieser Gruppe
|
||||||
|
|
||||||
[Lieferscheine]
|
[Lieferscheine]
|
||||||
copy = Angebote # Überträgt alle Einstellungen von Angebote, die nicht nachfolgend angepasst werden:
|
copy = Angebote # Überträgt alle Einstellungen von Angebote, die nicht nachfolgend angepasst werden:
|
||||||
comment = Lieferscheine von Lieferanten
|
comment = Lieferscheine von Lieferanten
|
||||||
path = /srv/samba/lieferscheine
|
path = /srv/samba/lieferscheine
|
||||||
valid users = @lieferscheine, @lieferscheine_ae # Nur diese Gruppe darf zugreifen
|
valid users = @lieferscheine, @lieferscheine_w # Nur diese Gruppe darf zugreifen
|
||||||
write list = @lieferscheine_ae # Nur diese Gruppe darf schreiben
|
write list = @lieferscheine_w # Nur diese Gruppe darf schreiben
|
||||||
force group = lieferscheine_ae
|
force group = lieferscheine_w
|
||||||
````
|
````
|
||||||
## 5. Userverzeichnisse (Home-Freigaben)
|
## 5. Userverzeichnisse (Home-Freigaben)
|
||||||
|
|
||||||
@@ -120,32 +119,32 @@ Aktivieren Sie die [homes]-Freigabe in ````/etc/samba/smb.conf```` (entkommentie
|
|||||||
directory mask = 0700 # Neue Ordner: rwx------
|
directory mask = 0700 # Neue Ordner: rwx------
|
||||||
valid users = %S # %S = Name des aktuellen Benutzers
|
valid users = %S # %S = Name des aktuellen Benutzers
|
||||||
````
|
````
|
||||||
> Hinweis: %S wird automatisch durch den Benutzernamen ersetzt (z. B. hwurst).
|
!!! note ``%S`` wird automatisch durch den Benutzernamen ersetzt (z. B. hwurst).
|
||||||
## 6. Netzwerkpapierkorb
|
## 6. Netzwerkpapierkorb
|
||||||
Gelöschte Dateien auf Netzlaufwerken können mit dem **Samba Recycle Bin Modul** gesichert werden.
|
Gelöschte Dateien auf Netzlaufwerken können mit dem **Samba Recycle Bin Modul** gesichert werden.
|
||||||
### 6.1 Konfiguration in ````smb.conf````
|
### 6.1 Konfiguration in ````smb.conf````
|
||||||
Fügen Sie folgende Optionen global (unter [global]) oder pro Freigabe ein:
|
Fügen Sie folgende Optionen global (unter [global]) oder pro Freigabe ein:
|
||||||
````ini
|
````ini
|
||||||
vfs objects = recycle # Virtuelles Dateisystem für Papierkorb
|
vfs objects = recycle # Virtuelles Dateisystem für Papierkorb
|
||||||
recycle\:repository = .recyclebin # Ordner für gelöschte Dateien
|
recycle:repository = .recyclebin # Ordner für gelöschte Dateien
|
||||||
recycle\:keeptree = yes # Pfadstruktur im Papierkorb erhalten
|
recycle:keeptree = yes # Pfadstruktur im Papierkorb erhalten
|
||||||
recycle\:versions = yes # Gleichnamige Dateien nicht überschreiben
|
recycle:versions = yes # Gleichnamige Dateien nicht überschreiben
|
||||||
recycle\:maxsize = 0 # Keine Größenbegrenzung pro Datei
|
recycle:maxsize = 0 # Keine Größenbegrenzung pro Datei
|
||||||
recycle\:touch = yes # Zeitstempel anpassen
|
recycle:touch = yes # Zeitstempel anpassen
|
||||||
````
|
````
|
||||||
### 6.2 Automatische Bereinigung mit Cron
|
### 6.2 Automatische Bereinigung mit Cron
|
||||||
Fügen Sie einen [Cron-Job](../basics/Automatisierung%20mit%20cron%20und%20systemd.md) hinzu, um alte Dateien im Papierkorb zu löschen:
|
Fügen Sie einen [Cron-Job](../basics/Automatisierung_mit_cron_und_systemd.md) hinzu, um alte Dateien im Papierkorb zu löschen:
|
||||||
````bash
|
````bash
|
||||||
sudo crontab -e
|
sudo crontab -e
|
||||||
````
|
````
|
||||||
Fügen Sie folgende Zeile ein (löscht Dateien älter als 14 Tage):
|
Fügen Sie folgende Zeile ein (löscht Dateien älter als 14 Tage):
|
||||||
````bash
|
````bash
|
||||||
0 12 * * * for path in $(grep "path =" /etc/samba/smb.conf | cut -d= -f2 | sed 's/ //g'); do find "${path}/.recyclebin" -mindepth 1 -mtime +14 -exec rm -rf {} \; 2>/dev/null; done
|
0 12 * * * for path in $(grep "path =" /etc/samba/smb.conf | cut -d= -f2 | sed 's/ //g'); do find "${path}/.recyclebin" -mindepth 1 -mtime +14 -exec rm -rf {} ; 2>/dev/null; done
|
||||||
````
|
````
|
||||||
Erklärung:
|
!!! note Erklärung
|
||||||
* ````0 12 * * *````: Täglich um 12:00 Uhr.
|
* ````0 12 * * *````: Täglich um 12:00 Uhr.
|
||||||
* ````grep "path ="````: Sucht alle ````path````-Einträge in ````smb.conf````.
|
* ````grep "path ="````: Sucht alle ````path````-Einträge in ````smb.conf````.
|
||||||
* ````find ... -mtime +14````: Löscht Dateien älter als 14 Tage im .recyclebin-Ordner.
|
* ````find ... -mtime +14````: Löscht Dateien älter als 14 Tage im .recyclebin-Ordner.
|
||||||
|
|
||||||
## 7 Häufige Fehler und Lösungen
|
## 7 Häufige Fehler und Lösungen
|
||||||
|
|
||||||
@@ -155,8 +154,7 @@ Erklärung:
|
|||||||
|Schreibrechte fehlgeschlagen |Benutzer nicht in write list. |valid users und write list in smb.conf prüfen. |
|
|Schreibrechte fehlgeschlagen |Benutzer nicht in write list. |valid users und write list in smb.conf prüfen. |
|
||||||
|Papierkorb funktioniert nicht |vfs objects = recycle fehlt. |In smb.conf für die Freigabe oder global ergänzen. |
|
|Papierkorb funktioniert nicht |vfs objects = recycle fehlt. |In smb.conf für die Freigabe oder global ergänzen. |
|
||||||
|Rechte werden nicht übernommen|force group oder create mask fehlt.|In smb.conf ergänzen und Samba neu starten. |
|
|Rechte werden nicht übernommen|force group oder create mask fehlt.|In smb.conf ergänzen und Samba neu starten. |
|
||||||
|
|Linux kann zugreifen, Windows nicht|Protokollversion zu Alt |In smb.conf ```` server min protocol = SMB2```` und ````smb encrypt = desired ```` nachtragen|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
251
mkdocs/docs/Linux_Unternehmen/Server_Installation.md
Normal file
251
mkdocs/docs/Linux_Unternehmen/Server_Installation.md
Normal file
@@ -0,0 +1,251 @@
|
|||||||
|
# Ubuntu Server installieren und vorbereiten
|
||||||
|
|
||||||
|
## 1. Vorbereitung der virtuellen Maschine in VirtualBox
|
||||||
|
### Schritt 1: Virtuelle Maschine erstellen
|
||||||
|
Öffnen Sie VirtualBox und klicken Sie auf "Neu".
|
||||||
|
Nutzen Sie folgende Konfiguration:
|
||||||
|
````
|
||||||
|
Name: SV1
|
||||||
|
Typ: Linux
|
||||||
|
Version: Ubuntu (64-bit)
|
||||||
|
````
|
||||||
|
````
|
||||||
|
CPU: 2 Kerne (4 empfohlen)
|
||||||
|
RAM: Mindestens 2 GB (4 GB empfohlen).
|
||||||
|
Festplatte: 40 GB (dynamisch alloziert, VDI-Format).
|
||||||
|
````
|
||||||
|
Netzwerk:
|
||||||
|
|
||||||
|
Wählen Sie "Netzwerkbrücke" oder "NAT" (je nach Anforderungen).
|
||||||
|
Hinweis: Stellen Sie sicher, dass der Server später auf 10.10.224.119 (cache-server) zugreifen kann.
|
||||||
|
|
||||||
|
!!! info ISO download: ubuntu.com/download/server
|
||||||
|
|
||||||
|
### Schritt 2: VM starten und Installation beginnen
|
||||||
|
|
||||||
|
Starten Sie die VM und wählen Sie "Try or Install Ubuntu Server".
|
||||||
|
|
||||||
|
## 2. Installation von Ubuntu 24.04 Server
|
||||||
|
### Schritt 1: Sprache
|
||||||
|
|
||||||
|
Sprache: Deutsch
|
||||||
|
|
||||||
|
### Schritt 2: Installer-Aktualisieren
|
||||||
|
in den Meisten Fällen einfach ````ohne aktualisierung fortfahren````.
|
||||||
|
Eine aktualsierung findet im Anschluss ohnehin statt.
|
||||||
|
|
||||||
|
### Schritt 3: Tastatur-Belegung
|
||||||
|
Durch die Sprachauswahl am Anfang ist hier bereits Alles auf ````German```` und kann so belassen werden.
|
||||||
|
|
||||||
|
### Schritt 4: Auswahl des Installationstyps
|
||||||
|
**Option 1: Ubuntu Server (voreingestellt)**
|
||||||
|
|
||||||
|
Beschreibung:
|
||||||
|
Diese Option installiert eine Standardversion von Ubuntu Server mit einer ausgewählten Sammlung von Paketen, die einen komfortablen Betrieb des Servers ermöglichen.
|
||||||
|
|
||||||
|
Empfehlung für den Meisterkurs IT im Handwerk:
|
||||||
|
Wählen Sie diese Option, da sie die beste Grundlage für die weiteren Schritte in der Anleitung bietet.
|
||||||
|
|
||||||
|
|
||||||
|
**Option 2: Ubuntu Server (minimized)**
|
||||||
|
|
||||||
|
Beschreibung:
|
||||||
|
Diese Option installiert eine minimale Version von Ubuntu Server mit einem sehr kleinen Laufzeit-Fußabdruck.
|
||||||
|
|
||||||
|
Optimiert für Umgebungen, in denen keine menschlichen Benutzer angemeldet sind (z. B. Container, Cloud-Instanzen, eingebettete Systeme).
|
||||||
|
Enthält nur die absolut notwendigen Pakete und verzichtet auf zusätzliche Tools.
|
||||||
|
Nicht empfohlen für den Meisterkurs, da später manuell viele Pakete nachinstalliert werden müssten.
|
||||||
|
|
||||||
|
|
||||||
|
**Zusätzliche Optionen**
|
||||||
|
|
||||||
|
**Search for third-party drivers:**
|
||||||
|
|
||||||
|
Diese Option ermöglicht die Suche nach Drittanbieter-Treibern (z. B. für spezielle Hardware wie WLAN-Karten oder RAID-Controller).
|
||||||
|
|
||||||
|
### Schritt 5: Netzwerkkonfiguration
|
||||||
|
|
||||||
|
Der Installer versucht automatisch, eine Verbindung herzustellen, und zeigt diese auch oben an.
|
||||||
|
Statische IP (optional):
|
||||||
|
|
||||||
|
Falls nötig, geben Sie manuell eine IP aus dem Netzwerkbereich ein (passend für ihr Subnetz hinter der Fritzbox).
|
||||||
|
* ````Edit IPv4```` an der Netzwerkkarte ````enp0s3```` auswählen.
|
||||||
|
* ````Automatisch (DHCP)```` ändern auf ````Manuell````
|
||||||
|
* Subnetz ````192.168.100.0/24````
|
||||||
|
* Adresse ````192.168.100.250````
|
||||||
|
* Gateway ````192.168.100.1````
|
||||||
|
* Nameserver ````192.168.100.1,1.1.1.1````
|
||||||
|
* Suchdomäne ````TN00.ITO````
|
||||||
|
|
||||||
|
Erstelle Bond: Hiermit könnenn mehrere Netzwerkkarten dann auch gekoppelt werden wenn dies am Switch ebenfalls so konfiguriert ist.
|
||||||
|
|
||||||
|
### Schritt 6: Proxy Konfiguration
|
||||||
|
Leer lassen. Der ````apt-cache-server```` muss an einer anderen Stelle konfiguriert werden.
|
||||||
|
|
||||||
|
### Schritt 7: Mirror
|
||||||
|
Aus standard belassen, da dieser schon in Deutschland ausgewählt ist.
|
||||||
|
|
||||||
|
### Schritt 8: Festplattenpartitionierung
|
||||||
|
|
||||||
|
**Option 1: Eine ganze Festplatte verwenden**
|
||||||
|
|
||||||
|
Beschreibung:
|
||||||
|
|
||||||
|
Diese Option löscht alle Daten auf der ausgewählten Festplatte und verwendet die gesamte Festplatte für die Ubuntu-Installation.
|
||||||
|
Empfohlen für den Meisterkurs IT im Handwerk, wenn Sie eine neue, leere Festplatte in VirtualBox verwenden.
|
||||||
|
Die Festplatte wird automatisch partitioniert (z. B. ``/``, ``/boot``, ``swap``).
|
||||||
|
|
||||||
|
**Ausgewählte Festplatte:**
|
||||||
|
|
||||||
|
VBOX_HARDDISK_XXXXXXXXXXXXX (40.00 GB)
|
||||||
|
> Hinweis: Stellen Sie sicher, dass die richtige Festplatte ausgewählt ist, da alle Daten auf dieser Festplatte gelöscht werden.
|
||||||
|
|
||||||
|
|
||||||
|
**LVM-Gruppe konfigurieren:**
|
||||||
|
|
||||||
|
Aktiviert (X): Diese Option erstellt eine LVM-Gruppe (Logical Volume Manager).
|
||||||
|
Vorteile von LVM:
|
||||||
|
|
||||||
|
* Flexible Verwaltung von Partitionen (z. B. einfache Größenanpassung).
|
||||||
|
* Ermöglicht das Hinzufügen weiterer Festplatten zu einem späteren Zeitpunkt.
|
||||||
|
|
||||||
|
**LVM-Gruppe mit LUKS verschlüsseln:**
|
||||||
|
|
||||||
|
Deaktiviert ( ): Standardmäßig ist die Festplattenverschlüsselung deaktiviert.
|
||||||
|
* Verschlüsselung aktivieren: Falls Sie die Festplatte verschlüsseln möchten, setzen Sie hier ein Häkchen.
|
||||||
|
* Passphrase: Geben Sie ein sicheres Passwort ein, um die Festplatte zu verschlüsseln.
|
||||||
|
> Hinweis: Die Verschlüsselung erhöht die Sicherheit, erfordert aber bei jedem Systemstart die Eingabe der Passphrase.
|
||||||
|
|
||||||
|
* Recovery Key erstellen:
|
||||||
|
|
||||||
|
Deaktiviert ( ): Falls Sie die Verschlüsselung aktivieren, können Sie hier einen Recovery Key erstellen.
|
||||||
|
> Dieser Key wird im Live-System und im Zielsystem gespeichert und kann im Notfall zur Datenwiederherstellung verwendet werden.
|
||||||
|
|
||||||
|
|
||||||
|
**Option 2: Benutzerdefinierte Partitionierung**
|
||||||
|
|
||||||
|
Beschreibung:
|
||||||
|
|
||||||
|
Diese Option ermöglicht die manuelle Partitionierung der Festplatte.
|
||||||
|
Nur für fortgeschrittene Benutzer empfohlen, die spezielle Anforderungen an die Partitionierung haben (z. B. separate Partitionen für /home, /var oder /opt).
|
||||||
|
|
||||||
|
**Zusammenfassung für den Meisterkurs:**
|
||||||
|
|
||||||
|
* Wählen Sie die Option "Eine ganze Festplatte verwenden".
|
||||||
|
* Aktivieren Sie die LVM-Gruppe, um später flexibel auf Speicheränderungen reagieren zu können.
|
||||||
|
* Deaktivieren Sie die Festplattenverschlüsselung, um den Installationsprozess zu vereinfachen.
|
||||||
|
|
||||||
|
Am Ende bestätigen und in der Übersicht dann nochmals ``Erledigt`` auswählen
|
||||||
|
|
||||||
|
*** Schritt 9: Benutzerkonfiguration
|
||||||
|
````
|
||||||
|
Ihr Name: Max Mustermann
|
||||||
|
Your servers name: sv1
|
||||||
|
Nutzername: meisterkurs (oder Ihr gewünschter Name)
|
||||||
|
Passwort: passw0rd#
|
||||||
|
````
|
||||||
|
|
||||||
|
### Schritt 9: Ubuntu Pro
|
||||||
|
Canonical bietet Zusatzleitungen wie automatische updates und Live-Kernel-Updates an. Bei großen Netzwerken kann das Lohnenswert sein.
|
||||||
|
Wählen Sie ``Skip for now`` und ``Fortfahren``
|
||||||
|
|
||||||
|
### Schritt 10: SSH configuration
|
||||||
|
OpenSSH Server installieren: Ja (wichtig für Remote-Zugriff!)
|
||||||
|
|
||||||
|
### Schritt 11: Featured snaps
|
||||||
|
Hier nichts auswählen, da im Kurs alle Pakete manuell installiert werden.
|
||||||
|
|
||||||
|
### Schritt 12: Installation abschließen
|
||||||
|
|
||||||
|
Warten Sie auf den Abschluss und starten Sie die VM neu.
|
||||||
|
|
||||||
|
## Erste Schritte nach der Installation
|
||||||
|
Schritt 0: Sonderfall etz
|
||||||
|
|
||||||
|
!!! warning **Wichtiger Hinweis:**
|
||||||
|
Damit alle Teilnehmer im Kurs effizient Updates und Software installieren können, wird im Schulungsnetzwerk ein lokaler Paket-Cache (Proxy) verwendet.
|
||||||
|
**Diesen Schritt müssen Sie außerhalb der Schulungsstätte (z.B. zu Hause) nicht durchführen!**
|
||||||
|
|
||||||
|
So richten Sie den Proxy ein:
|
||||||
|
|
||||||
|
1. Öffnen Sie ein Terminal (z.B. über das Startmenü).
|
||||||
|
2. Geben Sie folgenden Befehl ein (ersetzen Sie ggf. die IP-Adresse, durch die im Kurs verwendete):
|
||||||
|
|
||||||
|
```bash
|
||||||
|
echo 'Acquire::http::Proxy "http://10.10.224.119:3142";' | sudo tee /etc/apt/apt.conf.d/02proxy
|
||||||
|
```
|
||||||
|
|
||||||
|
3. Fahren Sie nun mitt Schritt 1 fort
|
||||||
|
|
||||||
|
### Schritt 1: System aktualisieren
|
||||||
|
````bash
|
||||||
|
sudo apt update && sudo apt upgrade -y
|
||||||
|
````
|
||||||
|
|
||||||
|
### Schritt 2 SSH-Key-Authentifizierung für Windows/PuTTY
|
||||||
|
#### 1. SSH-Key mit PuTTYgen (Windows) erstellen
|
||||||
|
|
||||||
|
1. Laden Sie PuTTYgen herunter: putty.org
|
||||||
|
2. Öffnen Sie PuTTYgen und wählen Sie "EdSDA" und Ed25519.
|
||||||
|
3. Klicken Sie auf "Generate" und bewegen Sie die Maus zufällig, um Entropie zu erzeugen.
|
||||||
|
4. Speichern Sie den privaten Schlüssel (z. B. ``meisterkurs_priv.ppk``) und kopieren Sie den öffentlichen Schlüssel aus dem oberen Fenster.
|
||||||
|
#### 2. Öffentlichen Schlüssel auf den Server übertragen
|
||||||
|
|
||||||
|
Melden Sie sich per Putty mit Passwort auf ihrem Server an:
|
||||||
|
|
||||||
|
Erstellen Sie das .ssh-Verzeichnis (falls nicht vorhanden):
|
||||||
|
````bash
|
||||||
|
mkdir -p ~/.ssh
|
||||||
|
chmod 700 ~/.ssh
|
||||||
|
````
|
||||||
|
Fügen Sie den öffentlichen Schlüssel zur authorized_keys hinzu:
|
||||||
|
````bash
|
||||||
|
echo "IHR_ÖFFENTLICHER_SCHLÜSSEL" >> ~/.ssh/authorized_keys
|
||||||
|
chmod 600 ~/.ssh/authorized_keys
|
||||||
|
````
|
||||||
|
|
||||||
|
#### 3. SSH-Login mit PuTTY testen
|
||||||
|
|
||||||
|
* Öffnen Sie PuTTY.
|
||||||
|
* Geben Sie die Server-IP ein.
|
||||||
|
* Gehen Sie zu "Connection" → "SSH" → "Auth" → "Credentials" und wählen Sie die bei ``Private Key...`` ihre ``meisterkurs_priv.ppk`` Datei aus.
|
||||||
|
* Klicken Sie auf "Open" und melden Sie sich an.
|
||||||
|
#### 4. Passwort-Login deaktivieren
|
||||||
|
|
||||||
|
!!! warning erst nach erfolgreicher Key-Anmeldung!
|
||||||
|
|
||||||
|
Bearbeiten Sie die SSH-Konfiguration:
|
||||||
|
````bash
|
||||||
|
# Cloud-Init-deaktivieren, da dort Passwort-Login aktiviert wird.
|
||||||
|
sudo rm /etc/ssh/sshd_config.d/50-cloud-init.conf
|
||||||
|
# Die eigentliche config dazu bringen:
|
||||||
|
sudo nano /etc/ssh/sshd_config
|
||||||
|
````
|
||||||
|
|
||||||
|
Setzen Sie folgende Optionen:
|
||||||
|
````ini
|
||||||
|
PasswordAuthentication no
|
||||||
|
PermitRootLogin no
|
||||||
|
````
|
||||||
|
|
||||||
|
Speichern Sie und starten Sie SSH neu:
|
||||||
|
````bash
|
||||||
|
sudo systemctl restart ssh
|
||||||
|
````
|
||||||
|
!!! tip Versuchen Sie sich erneut mit einem Passwort einzuloggen, wenn es nicht geht, ist alles in Ordnung!
|
||||||
|
### Automatische Updates einrichten
|
||||||
|
````bash
|
||||||
|
sudo apt install unattended-upgrades -y
|
||||||
|
sudo dpkg-reconfigure unattended-upgrades
|
||||||
|
````
|
||||||
|
|
||||||
|
Wählen Sie "Ja" für automatische Sicherheitsupdates.
|
||||||
|
|
||||||
|
#### Backup-Strategie (Grundlagen)
|
||||||
|
|
||||||
|
Manuelles Backup mit rsync:
|
||||||
|
````bash
|
||||||
|
sudo apt install rsync -y
|
||||||
|
rsync -av /home/meisterkurs/ /backup/meisterkurs/
|
||||||
|
````
|
||||||
|
!!! note Die Ordner sollten natürlich vorhanden sein, und der User ausreichende Berechtigung dazu haben. Siehe [Ordner erstellen](../basics/Grundlagen_der_Konsole.md) bzw. Berechtigungen in der [Samba-Anleitung](../basics/Windows_Freigaben_fuer_Linux-Einsteiger.md). Wie das regelmäßg gemacht wird, haben Sie schon mit [cron](../basics/Automatisierung_mit_cron_und_systemd.md) gelernt.
|
||||||
@@ -16,12 +16,10 @@ Open-Source mySQL Ableger MariaDB empfohlen.
|
|||||||
```bash
|
```bash
|
||||||
sudo apt install apache2 mariadb-server libapache2-mod-php php php-mysql php-xml php-gd php-curl php-zip php-mbstring php-intl php-bcmath php-gmp php-imagick php-redis redis-server php-ldap php-smbclient unzip phpmyadmin
|
sudo apt install apache2 mariadb-server libapache2-mod-php php php-mysql php-xml php-gd php-curl php-zip php-mbstring php-intl php-bcmath php-gmp php-imagick php-redis redis-server php-ldap php-smbclient unzip phpmyadmin
|
||||||
```
|
```
|
||||||
|
!!! warning
|
||||||
|
Während der Installation für ``phpmyadmin`` werden Sie nach dem zu konfigurierenden webserver abgefragt.Wählen Sie hierfür mit der <kbd>Leertaste</kbd> apache2 aus. Sie erkennen die Auswahl am ````*````.
|
||||||
|
|
||||||
Abfragen nach dem zu verwendenden Webserver: apache2
|
!!! info Konfiguriere phpmyadmin: Ja Datenbank Konfigurieren und Passwort setzen
|
||||||
|
|
||||||
Konfiguriere phpmyadmin: Ja Datenbank Konfigurieren
|
|
||||||
|
|
||||||
Passwort setzen
|
|
||||||
|
|
||||||
Im Anschluss muss die Datenbank noch gesichert werden um etwaigen
|
Im Anschluss muss die Datenbank noch gesichert werden um etwaigen
|
||||||
Missbrauch zu unterbinden und auch das Root-Passwort wird hier gesetzt
|
Missbrauch zu unterbinden und auch das Root-Passwort wird hier gesetzt
|
||||||
@@ -31,38 +29,26 @@ sudo mysql_secure_installation
|
|||||||
```
|
```
|
||||||
1. Abfrage des aktuellen Passwortes NICHTS EINGEBEN NUR BESTÄTIGEN
|
1. Abfrage des aktuellen Passwortes NICHTS EINGEBEN NUR BESTÄTIGEN
|
||||||
|
|
||||||
2. Soll ein Root-Passwort gesetzt werden? Y
|
2. Soll auf Unix-Socket-Auth gewechselt werden? N
|
||||||
|
|
||||||
3. Passwort eingeben und wiederholen
|
3. Soll ein Root-Passwort gesetzt werden? Y
|
||||||
|
|
||||||
4. Soll der Anonyme User entfernt werden? Y
|
4. Passwort eingeben und wiederholen
|
||||||
|
|
||||||
5. Remote-Login für Root deaktivieren? Y
|
5. Soll der Anonyme User entfernt werden? Y
|
||||||
|
|
||||||
6. test-Datenbank entfernen? Y
|
6. Remote-Login für Root deaktivieren? Y
|
||||||
|
|
||||||
7. Änderungen übernehmen? Y
|
7. test-Datenbank entfernen? Y
|
||||||
|
|
||||||
Jetzt muss einmalig in die SQL-Datenbank der Login für root über das
|
8. Änderungen übernehmen? Y
|
||||||
Webinterface aktiviert werden:
|
|
||||||
|
|
||||||
````bash
|
|
||||||
sudo mysql -u root -p
|
|
||||||
````
|
|
||||||
|
|
||||||
````sql
|
|
||||||
use mysql;
|
|
||||||
update user set plugin='' where User='root';
|
|
||||||
flush privileges;
|
|
||||||
\q
|
|
||||||
````
|
|
||||||
|
|
||||||
Zugriff auf ihre Datebank per Webinterface:
|
Zugriff auf ihre Datebank per Webinterface:
|
||||||
|
|
||||||
http://IP/phpmyadmin
|
http://IP/phpmyadmin
|
||||||
|
|
||||||
Legen Sie einen neuen Nutzer für NextCloud an und gewähren Sie dem Nutzer alle Rechte an seiner Datenbank „Nextcloud".
|
!!! attention Legen Sie einen neuen Nutzer für NextCloud an und gewähren Sie dem Nutzer alle Rechte an seiner Datenbank „NextCloud".
|
||||||
/newpage
|
|
||||||
|
|
||||||
## NextCloud installieren
|
## NextCloud installieren
|
||||||
|
|
||||||
@@ -87,7 +73,7 @@ erstellen ````/etc/apache2/sites-available/nextcloud.conf```` mit Inhalt:
|
|||||||
|
|
||||||
<VirtualHost *:80>
|
<VirtualHost *:80>
|
||||||
DocumentRoot "/var/www/nextcloud"
|
DocumentRoot "/var/www/nextcloud"
|
||||||
ServerName nextcloud.hensel.dom
|
ServerName nextcloud.tnxx.ito
|
||||||
ErrorLog ${APACHE_LOG_DIR}/error.log
|
ErrorLog ${APACHE_LOG_DIR}/error.log
|
||||||
CustomLog ${APACHE_LOG_DIR}/access.log combined
|
CustomLog ${APACHE_LOG_DIR}/access.log combined
|
||||||
<Directory /var/www/nextcloud/>
|
<Directory /var/www/nextcloud/>
|
||||||
@@ -123,12 +109,11 @@ sudo a2enmod ssl
|
|||||||
sudo systemctl restart apache2
|
sudo systemctl restart apache2
|
||||||
```
|
```
|
||||||
|
|
||||||
Nun können Sie per http auf den Webserver zugreifen
|
Nun können Sie per http auf den Webserver zugreifen http://IP oder http://nextcloud.tnxx.ito
|
||||||
http://nextcloud.hensel.dom
|
|
||||||
|
|
||||||
{ align=left }
|

|
||||||
|
|
||||||
Hier legen Sie nun das Administrator-Konto ein, wobei natürlich Admin und ein schwaches Passwort hier Tabu sind.
|
Hier legen Sie nun das Administrator-Konto an, wobei natürlich Admin und ein schwaches Passwort hier Tabu sind.
|
||||||
|
|
||||||
Geben Sie als Datenverzeichnis das gerade angelegte Verzeichnis an und geben Sie die entsprechenden Daten die beim Anlagen der Datenbank gesetzt wurden ein.
|
Geben Sie als Datenverzeichnis das gerade angelegte Verzeichnis an und geben Sie die entsprechenden Daten die beim Anlagen der Datenbank gesetzt wurden ein.
|
||||||
|
|
||||||
@@ -146,18 +131,15 @@ Kümmern wir uns erst einmal um den Cache, wobei wir den Redis-Server bereits in
|
|||||||
sudo nano /var/www/nextcloud/config/config.php
|
sudo nano /var/www/nextcloud/config/config.php
|
||||||
```
|
```
|
||||||
Fügen Sie eine weitere Zeile vor der schließenden Klammer ein:
|
Fügen Sie eine weitere Zeile vor der schließenden Klammer ein:
|
||||||
...
|
|
||||||
````php
|
````php
|
||||||
'dbtype' => 'mysql',
|
...
|
||||||
'version' => '12.0.0.29',
|
|
||||||
'dbname' => 'NextCloud',
|
|
||||||
'dbhost' => 'localhost',
|
|
||||||
'dbport' => '',
|
|
||||||
'dbtableprefix' => 'oc_',
|
|
||||||
'dbuser' => 'NextCloud',
|
|
||||||
'dbpassword' => 'passw0rd#',
|
|
||||||
'logtimezone' => 'UTC',
|
|
||||||
'installed' => true,
|
'installed' => true,
|
||||||
|
````
|
||||||
|
neu:
|
||||||
|
|
||||||
|
````php
|
||||||
'memcache.distributed' => '\OC\Memcache\Redis',
|
'memcache.distributed' => '\OC\Memcache\Redis',
|
||||||
'memcache.local' => '\OC\Memcache\Redis',
|
'memcache.local' => '\OC\Memcache\Redis',
|
||||||
'memcache.locking' => '\OC\Memcache\Redis',
|
'memcache.locking' => '\OC\Memcache\Redis',
|
||||||
@@ -165,6 +147,10 @@ Fügen Sie eine weitere Zeile vor der schließenden Klammer ein:
|
|||||||
'host' => 'localhost',
|
'host' => 'localhost',
|
||||||
'port' => 6379,
|
'port' => 6379,
|
||||||
),
|
),
|
||||||
|
````
|
||||||
|
|
||||||
|
zwingend vor:
|
||||||
|
````php
|
||||||
);
|
);
|
||||||
````
|
````
|
||||||
Laden Sie Sie Administrator-Seite neu -- Der Fehler sollte weg sein.
|
Laden Sie Sie Administrator-Seite neu -- Der Fehler sollte weg sein.
|
||||||
@@ -185,7 +171,9 @@ Bearbeiten der Datei ````/etc/apache2/sites-available/nextcloud.conf````
|
|||||||
|
|
||||||
````apacheconf
|
````apacheconf
|
||||||
<VirtualHost *:80>
|
<VirtualHost *:80>
|
||||||
Redirect permanent / https://nextcloud.hensel.dom
|
RewriteEngine On
|
||||||
|
RewriteCond %{HTTPS} Off
|
||||||
|
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI}
|
||||||
</VirtualHost>
|
</VirtualHost>
|
||||||
|
|
||||||
<IfModule mod_ssl.c>
|
<IfModule mod_ssl.c>
|
||||||
@@ -199,8 +187,8 @@ Bearbeiten der Datei ````/etc/apache2/sites-available/nextcloud.conf````
|
|||||||
</IfModule>
|
</IfModule>
|
||||||
|
|
||||||
DocumentRoot "/var/www/nextcloud"
|
DocumentRoot "/var/www/nextcloud"
|
||||||
ServerName nextcloud.hensel.dom
|
ServerName nextcloud.tnxx.ito
|
||||||
ServerAlias www.nextcloud.hensel.dom
|
ServerAlias www.nextcloud.tnxx.ito
|
||||||
|
|
||||||
ErrorLog ${APACHE_LOG_DIR}/error.log
|
ErrorLog ${APACHE_LOG_DIR}/error.log
|
||||||
CustomLog ${APACHE_LOG_DIR}/access.log combined
|
CustomLog ${APACHE_LOG_DIR}/access.log combined
|
||||||
@@ -222,7 +210,6 @@ Bearbeiten der Datei ````/etc/apache2/sites-available/nextcloud.conf````
|
|||||||
Aktivieren:
|
Aktivieren:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
sudo a2ensite default-ssl.conf
|
|
||||||
sudo systemctl restart apache2
|
sudo systemctl restart apache2
|
||||||
```
|
```
|
||||||
|
|
||||||
@@ -230,7 +217,7 @@ Apache Neustarten und Fertig
|
|||||||
|
|
||||||
## CronJob für regelmäßige Aktualisierung der Datenbank
|
## CronJob für regelmäßige Aktualisierung der Datenbank
|
||||||
|
|
||||||
NextCloud aktualisiert bei jedem Zugriff auf das Webinterface die Datenbank, allerdings kostet dies wertvolle Sekunden bei einem „Wohlfühl-Interface" daher aktivieren Wir einen [CronJob](../basics/Automatisierung mit cron und systemd.md)
|
NextCloud aktualisiert bei jedem Zugriff auf das Webinterface die Datenbank, allerdings kostet dies wertvolle Sekunden bei einem „Wohlfühl-Interface" daher aktivieren Wir einen [CronJob](../basics/Automatisierung_mit_cron_und_systemd.md)
|
||||||
|
|
||||||
Die Aktion soll vom User www-data ausgeführt werden
|
Die Aktion soll vom User www-data ausgeführt werden
|
||||||
|
|
||||||
@@ -246,9 +233,27 @@ Wählen Sie nun im Administrations-Bereich von NextCloud bei Cron entsprechend a
|
|||||||
|
|
||||||
Im Anschluss am besten einmal reboot
|
Im Anschluss am besten einmal reboot
|
||||||
|
|
||||||
## LDAP
|
## Optische Anpassung ans Firmenlayout
|
||||||
|
|
||||||
Konfiguration smb.conf bei einem Samba AD-DC
|
Nextcloud ermöglicht eine einfache Anpassung des Designs an Ihr Firmenlayout direkt über das Webinterface.
|
||||||
|
|
||||||
|
> Wichtig: Dateinamen ohne Leerzeichen verwenden, Formate ````.png```` oder ````.jpg````.
|
||||||
|
|
||||||
|
### Design über Webinterface anpassen
|
||||||
|
* Melden Sie sich als Administrator in Nextcloud an.
|
||||||
|
* Klicken Sie oben rechts auf Benutzermenü → Administrationseinstellungen.
|
||||||
|
* Wählen Sie im linken Menü ````Design````.
|
||||||
|
* Passen Sie folgende Elemente an:
|
||||||
|
* Name: Meisterwolke
|
||||||
|
* Slogan: Wir kennen die Festplatte mit Vornamen
|
||||||
|
* Primärfarbe: Primärfarbe: #70706B Hintergrundfarbe: #70706B
|
||||||
|
* Logo: [Firmenlogo](./Nextcloud_Design/Logo.png)
|
||||||
|
* Hintergrund und Anmeldebild: [Eingangsbereich](./Nextcloud_Design/Login_Image.jpg)
|
||||||
|
* Kopfbereichslogo: [Firmenlogo](./Nextcloud_Design/Logo.png)
|
||||||
|
* Favicon: [Favicon](./Nextcloud_Design/favicon.ico)
|
||||||
|
|
||||||
|
## LDAP
|
||||||
|
!!! note Konfiguration ``smb.conf`` bei einem [Samba AD-DC](../bonus/linux-als-ad-server.md)
|
||||||
````ini
|
````ini
|
||||||
[global]
|
[global]
|
||||||
ldap server require strong auth = no
|
ldap server require strong auth = no
|
||||||
@@ -286,4 +291,3 @@ Hier definieren Sie welche Gruppen ihres Servers in NextCloud übernommen werden
|
|||||||

|

|
||||||
|
|
||||||
In der Benutzerübersicht sollen alle Nutzer mit ihrem Benutzernamen und nicht mit der UUID angezeigt werden. Somit ist es auch für die Nutzer einfacher, sich gegenseitig zu finden.
|
In der Benutzerübersicht sollen alle Nutzer mit ihrem Benutzernamen und nicht mit der UUID angezeigt werden. Somit ist es auch für die Nutzer einfacher, sich gegenseitig zu finden.
|
||||||
|
|
||||||
|
|||||||
@@ -1,15 +1,16 @@
|
|||||||
# Automatisierung mit cron und systemd
|
# Automatisierung mit cron und systemd
|
||||||
|
|
||||||
|
|
||||||
Stellen Sie sich vor, Sie betreiben einen Server oder eine Anwendung, die rund um die Uhr laufen muss. Als IT-Meister möchten Sie jederzeit nachvollziehen können, ob Ihr System aktiv ist und wann es zuletzt gestartet wurde. Dafür können Sie zwei klassische Linux-Automatisierungswerkzeuge nutzen:
|
Stellen Sie sich vor, Sie betreiben einen Server oder eine Anwendung, die rund um die Uhr laufen muss. Als IT-Meister möchten Sie jederzeit nachvollziehen können, ob Ihr System aktiv ist und wann es zuletzt gestartet wurde. Dafür können Sie zwei klassische Linux-Automatisierungswerkzeuge nutzen:
|
||||||
|
|
||||||
* **Cronjob:** Führt regelmäßig Aufgaben aus, z.B. jede Minute, jede Stunde oder einmal täglich.
|
* **Cronjob:** Führt regelmäßig Aufgaben aus, z.B. jede Minute, jede Stunde oder einmal täglich.
|
||||||
* **systemd-Unit:** Startet Aufgaben beim Systemstart oder zu bestimmten Ereignissen.
|
* **systemd-Unit:** Startet Aufgaben beim Systemstart oder zu bestimmten Ereignissen.
|
||||||
|
|
||||||
Mit diesen Werkzeugen können Sie z.B. eine Datei anlegen oder aktualisieren, um so einen „Herzschlag" (Heartbeat) Ihres Systems zu dokumentieren.
|
Mit diesen Werkzeugen können Sie z.B. eine Datei anlegen oder aktualisieren, um so einen „Herzschlag" (Heartbeat) Ihres Systems zu dokumentieren.
|
||||||
|
|
||||||
# Cron-Job: Jede Minute eine Datei aktualisieren
|
## Cron-Job: Jede Minute eine Datei aktualisieren
|
||||||
|
|
||||||
> Praxisbeispiel: Heartbeat-File
|
### Praxisbeispiel: Heartbeat-File
|
||||||
|
|
||||||
Sie möchten, dass jede Minute der Zeitstempel einer Datei (/tmp/heartbeat.txt) aktualisiert wird. Das ist nützlich, um zu prüfen, ob Cron und das System laufen.
|
Sie möchten, dass jede Minute der Zeitstempel einer Datei (/tmp/heartbeat.txt) aktualisiert wird. Das ist nützlich, um zu prüfen, ob Cron und das System laufen.
|
||||||
|
|
||||||
@@ -27,7 +28,7 @@ Fügen Sie folgende Zeile hinzu:
|
|||||||
* * * * * /usr/bin/touch /tmp/heartbeat.txt
|
* * * * * /usr/bin/touch /tmp/heartbeat.txt
|
||||||
```
|
```
|
||||||
|
|
||||||
Jetzt wird jede Minute die Datei /tmp/heartbeat.txt neu angelegt oder ihr Zeitstempel aktualisiert. Prüfen Sie das ergebnis, indem Sie sich den Zeitstempel der neuen Datei anschauen:
|
Jetzt wird jede Minute die Datei /tmp/heartbeat.txt neu angelegt oder ihr Zeitstempel aktualisiert. Prüfen Sie das ergebnis, indem Sie sich den Zeitstempel der neuen Datei anschauen:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
ls -lah /tmp/heartbeat.txt
|
ls -lah /tmp/heartbeat.txt
|
||||||
@@ -35,10 +36,10 @@ ls -lah /tmp/heartbeat.txt
|
|||||||
|
|
||||||
\newpage
|
\newpage
|
||||||
|
|
||||||
# Crontab-Syntax erklärt:
|
### Crontab-Syntax erklärt:
|
||||||
|
|
||||||
| Feld | Bedeutung | Wert im Beispiel | Bedeutung |
|
| Feld | Bedeutung | Wert im Beispiel | Bedeutung |
|
||||||
| ----------- | --------------- | --------------------------------- | ------------------- |
|
| ----------* | --------------* | --------------------------------* | ------------------* |
|
||||||
| Minute | 0-59 | \* | jede Minute |
|
| Minute | 0-59 | \* | jede Minute |
|
||||||
| Stunde | 0-23 | \* | jede Stunde |
|
| Stunde | 0-23 | \* | jede Stunde |
|
||||||
| Tag (Monat) | 1-31 | \* | jeder Tag |
|
| Tag (Monat) | 1-31 | \* | jeder Tag |
|
||||||
@@ -66,11 +67,11 @@ ls -lah /tmp/heartbeat.txt
|
|||||||
*/5 * * * * /usr/bin/touch /tmp/every5min.txt
|
*/5 * * * * /usr/bin/touch /tmp/every5min.txt
|
||||||
```
|
```
|
||||||
|
|
||||||
* alle 5 Minuten beginnend 5 Minuten
|
* alle 5 Minuten beginnend 5 Minuten
|
||||||
|
|
||||||
# systemd-Unit: Datei beim Systemstart aktualisieren
|
## systemd-Unit: Datei beim Systemstart aktualisieren
|
||||||
|
|
||||||
## **Praxisbeispiel: Boot-Marker**
|
### Praxisbeispiel: Boot-Marker
|
||||||
|
|
||||||
Sie möchten beim Systemstart eine Datei (/tmp/boot.txt) anlegen oder deren Zeitstempel aktualisieren, um den letzten Bootvorgang zu protokollieren.
|
Sie möchten beim Systemstart eine Datei (/tmp/boot.txt) anlegen oder deren Zeitstempel aktualisieren, um den letzten Bootvorgang zu protokollieren.
|
||||||
|
|
||||||
@@ -105,7 +106,7 @@ sudo systemctl enable touch-at-boot.service
|
|||||||
sudo systemctl start touch-at-boot.service
|
sudo systemctl start touch-at-boot.service
|
||||||
```
|
```
|
||||||
|
|
||||||
Nach jedem Neustart wird /tmp/boot.txt aktualisiert.
|
Nach jedem Neustart wird /tmp/boot.txt aktualisiert.
|
||||||
|
|
||||||
**systemd-Unit erklärt:**
|
**systemd-Unit erklärt:**
|
||||||
|
|
||||||
@@ -1,15 +1,13 @@
|
|||||||
# Einstieg in Linux-Desktop
|
# Einstieg in Linux-Desktop
|
||||||
|
|
||||||
## Inhaltsverzeichnis
|
## Warum Linux? Weil es mehr kann!
|
||||||
[toc]
|
|
||||||
|
|
||||||
## **Warum Linux? Weil es mehr kann!**
|
|
||||||
Linux ist nicht nur ein Betriebssystem – es ist **Freiheit**. Keine Lizenzkosten, keine erzwungenen Updates, keine Datensammelwut. Stattdessen:
|
Linux ist nicht nur ein Betriebssystem – es ist **Freiheit**. Keine Lizenzkosten, keine erzwungenen Updates, keine Datensammelwut. Stattdessen:
|
||||||
- **Volle Kontrolle** über dein System (keine Blackbox wie bei Windows/macOS).
|
|
||||||
- **Sicherheit** durch Open Source: Jeder kann den Code prüfen – Backdoors? Fehlanzeige!
|
* **Volle Kontrolle** über dein System (keine Blackbox wie bei Windows/macOS).
|
||||||
- **Anpassbar** wie Lego: Von minimalistisch bis vollgepackt mit Tools – du entscheidest.
|
* **Sicherheit** durch Open Source: Jeder kann den Code prüfen – Backdoors? Fehlanzeige!
|
||||||
- **Perfekt für Entwickler, Maker & Tüftler**: Docker, Python, Server-Tools – alles läuft out-of-the-box.
|
* **Anpassbar** wie Lego: Von minimalistisch bis vollgepackt mit Tools – du entscheidest.
|
||||||
- **Ressourcenschonend**: Läuft auch auf alter Hardware flüssig (z. B. als Media-Center oder NAS).
|
* **Perfekt für Entwickler, Maker & Tüftler**: Docker, Python, Server-Tools – alles läuft out-of-the-box.
|
||||||
|
* **Ressourcenschonend**: Läuft auch auf alter Hardware flüssig (z. B. als Media-Center oder NAS).
|
||||||
|
|
||||||
**Ihr Ziel heute:**
|
**Ihr Ziel heute:**
|
||||||
Sie richten einen **Ubuntu-Desktop in VirtualBox** ein, lernen die Oberfläche kennen und setzten ein **Mini-Projekt** um: **Einen lokalen Webserver mit Python**, den sie später sogar von ihrem Host-PC aus aufrufen können.
|
Sie richten einen **Ubuntu-Desktop in VirtualBox** ein, lernen die Oberfläche kennen und setzten ein **Mini-Projekt** um: **Einen lokalen Webserver mit Python**, den sie später sogar von ihrem Host-PC aus aufrufen können.
|
||||||
@@ -43,10 +41,9 @@ Sie richten einen **Ubuntu-Desktop in VirtualBox** ein, lernen die Oberfläche k
|
|||||||
|
|
||||||
## Sonderfall etz
|
## Sonderfall etz
|
||||||
|
|
||||||
> **Wichtiger Hinweis:**
|
!!! warning **Wichtiger Hinweis:**
|
||||||
|
Damit alle Teilnehmer im Kurs effizient Updates und Software installieren können, wird im Schulungsnetzwerk ein lokaler Paket-Cache (Proxy) verwendet.
|
||||||
> Damit alle Teilnehmer im Kurs effizient Updates und Software installieren können, wird im Schulungsnetzwerk ein lokaler Paket-Cache (Proxy) verwendet.
|
**Diesen Schritt müssen Sie außerhalb der Schulungsstätte (z.B. zu Hause) nicht durchführen!**
|
||||||
> **Diesen Schritt müssen Sie außerhalb der Schulungsstätte (z.B. zu Hause) nicht durchführen!**
|
|
||||||
|
|
||||||
So richten Sie den Proxy ein:
|
So richten Sie den Proxy ein:
|
||||||
|
|
||||||
@@ -85,5 +82,4 @@ Weitere Programme können Sie in einem kleinen Projekt ausprobieren: [Mein erste
|
|||||||
* Für SSH: Verwenden Sie z.B. das Programm „PuTTY“ von ihrem Windows aus.
|
* Für SSH: Verwenden Sie z.B. das Programm „PuTTY“ von ihrem Windows aus.
|
||||||
* Für RDP: Verwenden Sie Microsoft Remotedesktopverbindung
|
* Für RDP: Verwenden Sie Microsoft Remotedesktopverbindung
|
||||||
|
|
||||||
Falls ihnen das selbst-probieren dieses Abschnittes zu viel wird gibt es [hier](Remotezugriff_einrichten.md0) eine Schitt-für-Schritt anleitung.
|
Versuchen Sie die Remotezugriffe auf eigene Faust einzurichten. Falls Sie doch lieber eine Schritt-für-Schritt-Anleitung möchten, finden Sie diese [hier](Remotezugriff_einrichten.md).
|
||||||
|
|
||||||
@@ -1,143 +0,0 @@
|
|||||||
# Grundlagen der Konsole
|
|
||||||
|
|
||||||
### Installation nützlicher Programme
|
|
||||||
|
|
||||||
Bevor Sie beginnen, installieren Sie bitte folgende Programme, die Sie im Kurs benötigen:
|
|
||||||
|
|
||||||
* nano: Einfache Textbearbeitung im Terminal
|
|
||||||
* tree: Anzeige von Ordnerstrukturen
|
|
||||||
* htop: Übersichtliche Systemüberwachung
|
|
||||||
|
|
||||||
Führen Sie diesen Befehl im Terminal aus:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
sudo apt update
|
|
||||||
sudo apt install nano tree htop
|
|
||||||
```
|
|
||||||
|
|
||||||
### Wo befinden Sie sich?
|
|
||||||
|
|
||||||
Lassen Sie sich das aktuelle Verzeichnis anzeigen.
|
|
||||||
|
|
||||||
```bash
|
|
||||||
pwd
|
|
||||||
```
|
|
||||||
|
|
||||||
### Wechseln Sie in Ihr Home-Verzeichnis.
|
|
||||||
|
|
||||||
Tipp: Das Home-Verzeichnis erreichen Sie mit:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
cd ~
|
|
||||||
```
|
|
||||||
|
|
||||||
### Erstellen Sie im Home-Verzeichnis einen Ordner „projekt".
|
|
||||||
|
|
||||||
```bash
|
|
||||||
mkdir projekt
|
|
||||||
```
|
|
||||||
|
|
||||||
### Erstellen Sie darin zwei Unterordner „dokumente" und „bilder".
|
|
||||||
|
|
||||||
```bash
|
|
||||||
mkdir projekt/dokumente projekt/bilder
|
|
||||||
```
|
|
||||||
|
|
||||||
### Wechseln Sie in den Ordner „projekt".
|
|
||||||
|
|
||||||
```bash
|
|
||||||
cd projekt
|
|
||||||
```
|
|
||||||
|
|
||||||
### Erstellen Sie drei Textdateien: „notizen.txt", „aufgaben.txt", „ideen.txt".
|
|
||||||
|
|
||||||
```bash
|
|
||||||
touch notizen.txt aufgaben.txt ideen.txt
|
|
||||||
```
|
|
||||||
|
|
||||||
### Erstellen Sie zwei Bilddateien (Platzhalter): „bild1.jpg" und „bild2.jpg".
|
|
||||||
|
|
||||||
```bash
|
|
||||||
touch bild1.jpg bild2.jpg
|
|
||||||
```
|
|
||||||
|
|
||||||
### Kopieren Sie „notizen.txt" und „aufgaben.txt" in den Ordner „dokumente".
|
|
||||||
|
|
||||||
```bash
|
|
||||||
cp notizen.txt aufgaben.txt dokumente/
|
|
||||||
```
|
|
||||||
|
|
||||||
### Verschieben Sie „ideen.txt" in den Ordner „dokumente".
|
|
||||||
|
|
||||||
```bash
|
|
||||||
mv ideen.txt dokumente/
|
|
||||||
```
|
|
||||||
|
|
||||||
### Verschieben Sie „bild1.jpg" und „bild2.jpg" in den Ordner „bilder".
|
|
||||||
|
|
||||||
```bash
|
|
||||||
mv bild1.jpg bild2.jpg bilder/
|
|
||||||
```
|
|
||||||
|
|
||||||
### Zeigen Sie die Ordnerstruktur mit „tree" an.
|
|
||||||
|
|
||||||
```bash
|
|
||||||
tree ~/projekt
|
|
||||||
```
|
|
||||||
|
|
||||||
### Öffnen Sie eine der Textdateien mit „nano" und schreiben Sie einen kurzen Text hinein.
|
|
||||||
|
|
||||||
```bash
|
|
||||||
nano dokumente/notizen.txt
|
|
||||||
```
|
|
||||||
|
|
||||||
> Speichern Sie mit Strg+O, beenden Sie mit Strg+X.
|
|
||||||
|
|
||||||
### Zeigen Sie Ihre aktuelle IP-Adresse an.
|
|
||||||
|
|
||||||
```bash
|
|
||||||
ip address
|
|
||||||
```
|
|
||||||
|
|
||||||
**oder**
|
|
||||||
|
|
||||||
```bash
|
|
||||||
hostname -I
|
|
||||||
```
|
|
||||||
|
|
||||||
### Überwachen Sie Ihr System mit „htop".
|
|
||||||
|
|
||||||
```bash
|
|
||||||
htop
|
|
||||||
```
|
|
||||||
|
|
||||||
### Zeigen Sie die Speicherauslastung an.
|
|
||||||
|
|
||||||
```bash
|
|
||||||
df -h
|
|
||||||
```
|
|
||||||
|
|
||||||
### Zeigen Sie die Arbeitsspeicher-Auslastung an.
|
|
||||||
|
|
||||||
```bash
|
|
||||||
free -h
|
|
||||||
```
|
|
||||||
|
|
||||||
### 18. Wie finden Sie Hilfe zu einem Befehl?
|
|
||||||
|
|
||||||
```bash
|
|
||||||
man <Befehl>
|
|
||||||
```
|
|
||||||
|
|
||||||
Beispiel:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
man ls
|
|
||||||
```
|
|
||||||
|
|
||||||
**Zusatzaufgabe:****Erstellen Sie eine weitere Datei im Ordner „dokumente" und verschieben Sie diese anschließend in den Ordner „bilder". Zeigen Sie danach erneut die Struktur mit tree an.**
|
|
||||||
|
|
||||||
> Viel Erfolg beim Erkunden der Linux-Befehle und beim Organisieren Ihrer Dateien!
|
|
||||||
|
|
||||||
|
|
||||||
[PDF herunterladen](Grundlagen_der_Konsole.pdf){ .md-button }
|
|
||||||
259
mkdocs/docs/basics/Grundlagen_der_Konsole.md
Normal file
259
mkdocs/docs/basics/Grundlagen_der_Konsole.md
Normal file
@@ -0,0 +1,259 @@
|
|||||||
|
# Grundlagen der Konsole
|
||||||
|
|
||||||
|
## Installation nützlicher Programme
|
||||||
|
|
||||||
|
Bevor Sie beginnen, installieren Sie bitte folgende Programme, die Sie im Kurs benötigen:
|
||||||
|
|
||||||
|
* nano: Einfache Textbearbeitung im Terminal
|
||||||
|
* tree: Anzeige von Ordnerstrukturen
|
||||||
|
* htop: Übersichtliche Systemüberwachung
|
||||||
|
|
||||||
|
Führen Sie diesen Befehl im Terminal aus:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo apt update
|
||||||
|
sudo apt install nano tree htop
|
||||||
|
```
|
||||||
|
|
||||||
|
## Wo befinden Sie sich?
|
||||||
|
|
||||||
|
Lassen Sie sich das aktuelle Verzeichnis anzeigen.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
pwd
|
||||||
|
```
|
||||||
|
|
||||||
|
Kurzbeispielausgabe:
|
||||||
|
```bash
|
||||||
|
/home/benutzer
|
||||||
|
```
|
||||||
|
|
||||||
|
## Wechseln Sie in Ihr Home-Verzeichnis.
|
||||||
|
|
||||||
|
Tipp: Das Home-Verzeichnis erreichen Sie mit:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
cd ~
|
||||||
|
```
|
||||||
|
|
||||||
|
Kurzbeispielausgabe nach cd:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
pwd
|
||||||
|
/home/benutzer
|
||||||
|
```
|
||||||
|
|
||||||
|
## Erstellen Sie im Home-Verzeichnis einen Ordner „projekt".
|
||||||
|
|
||||||
|
```bash
|
||||||
|
mkdir -p projekt
|
||||||
|
```
|
||||||
|
|
||||||
|
Prüfung:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
ls
|
||||||
|
projekt
|
||||||
|
```
|
||||||
|
|
||||||
|
## Erstellen Sie darin zwei Unterordner „dokumente" und „bilder".
|
||||||
|
|
||||||
|
```bash
|
||||||
|
mkdir -p projekt/dokumente projekt/bilder
|
||||||
|
```
|
||||||
|
|
||||||
|
Prüfung:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
ls -lah projekt
|
||||||
|
```
|
||||||
|
|
||||||
|
## Wechseln Sie in den Ordner „projekt".
|
||||||
|
|
||||||
|
```bash
|
||||||
|
cd projekt
|
||||||
|
```
|
||||||
|
|
||||||
|
Prüfung:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
pwd
|
||||||
|
/home/benutzer/projekt
|
||||||
|
```
|
||||||
|
|
||||||
|
## Erstellen Sie drei Textdateien: „notizen.txt", „aufgaben.txt", „ideen.txt".
|
||||||
|
|
||||||
|
```bash
|
||||||
|
touch notizen.txt aufgaben.txt ideen.txt
|
||||||
|
```
|
||||||
|
|
||||||
|
Prüfung:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
ls -la
|
||||||
|
tree
|
||||||
|
```
|
||||||
|
|
||||||
|
## Erstellen Sie zwei Bilddateien (Platzhalter): „bild1.jpg" und „bild2.jpg".
|
||||||
|
|
||||||
|
```bash
|
||||||
|
touch bild1.jpg bild2.jpg
|
||||||
|
```
|
||||||
|
|
||||||
|
Prüfung:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
ls -la
|
||||||
|
tree
|
||||||
|
```
|
||||||
|
|
||||||
|
## Kopieren Sie „notizen.txt" und „aufgaben.txt" in den Ordner „dokumente".
|
||||||
|
|
||||||
|
```bash
|
||||||
|
cp notizen.txt aufgaben.txt dokumente/
|
||||||
|
```
|
||||||
|
|
||||||
|
Prüfung:
|
||||||
|
```bash
|
||||||
|
tree
|
||||||
|
```
|
||||||
|
|
||||||
|
## Verschieben Sie „ideen.txt" in den Ordner „dokumente".
|
||||||
|
|
||||||
|
```bash
|
||||||
|
mv ideen.txt dokumente/
|
||||||
|
```
|
||||||
|
|
||||||
|
Prüfung:
|
||||||
|
```bash
|
||||||
|
tree -a
|
||||||
|
```
|
||||||
|
|
||||||
|
## Verschieben Sie „bild1.jpg" und „bild2.jpg" in den Ordner „bilder".
|
||||||
|
|
||||||
|
```bash
|
||||||
|
mv bild1.jpg bild2.jpg bilder/
|
||||||
|
```
|
||||||
|
|
||||||
|
Prüfung:
|
||||||
|
```bash
|
||||||
|
tree
|
||||||
|
```
|
||||||
|
|
||||||
|
## Zeigen Sie die Ordnerstruktur mit „tree" an.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
tree ~/projekt
|
||||||
|
```
|
||||||
|
|
||||||
|
Erweiterte Prüfung:
|
||||||
|
```bash
|
||||||
|
tree ~/projekt
|
||||||
|
```
|
||||||
|
|
||||||
|
## Öffnen Sie eine der Textdateien mit „nano" und schreiben Sie einen kurzen Text hinein.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
nano dokumente/notizen.txt
|
||||||
|
```
|
||||||
|
|
||||||
|
!!! note Speichern Sie mit <kbd>strg</kbd>+<kbd>s</kbd>, beenden Sie mit <kbd>strg</kbd>+<kbd>X</kbd>.
|
||||||
|
|
||||||
|
Prüfung:
|
||||||
|
```bash
|
||||||
|
cat dokumente/notizen.txt
|
||||||
|
```
|
||||||
|
|
||||||
|
## Zeigen Sie Ihre aktuelle IP-Adresse an.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
ip address
|
||||||
|
```
|
||||||
|
|
||||||
|
Abgekürzte Beispielausgabe (IPv4):
|
||||||
|
```bash
|
||||||
|
2: eth0: <...>
|
||||||
|
inet 192.168.1.10/24 brd 192.168.1.255 scope global eth0
|
||||||
|
```
|
||||||
|
|
||||||
|
Alternative:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
hostname -I
|
||||||
|
```
|
||||||
|
|
||||||
|
Beispielausgabe:
|
||||||
|
```bash
|
||||||
|
192.168.1.10
|
||||||
|
```
|
||||||
|
|
||||||
|
## Überwachen Sie Ihr System mit „htop".
|
||||||
|
|
||||||
|
```bash
|
||||||
|
htop
|
||||||
|
```
|
||||||
|
|
||||||
|
Abgekürzte Beispielausgabe (nicht-interaktiv, Snap‑Shot):
|
||||||
|
```bash
|
||||||
|
PID USER PRI NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
|
||||||
|
1234 benutzer 20 0 150M 20M 8M S 1.2 0.5 0:01.23 python3
|
||||||
|
567 root 20 0 50M 5M 3M S 0.5 0.1 0:00.45 sshd
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## Zeigen Sie die Speicherauslastung an.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
df -h
|
||||||
|
```
|
||||||
|
|
||||||
|
Abgekürzte Beispielausgabe:
|
||||||
|
```bash
|
||||||
|
Filesystem Size Used Avail Use% Mounted on
|
||||||
|
/dev/sda1 50G 12G 36G 25% /
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## Zeigen Sie die Arbeitsspeicher-Auslastung an.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
free -h
|
||||||
|
```
|
||||||
|
|
||||||
|
Abgekürzte Beispielausgabe:
|
||||||
|
```bash
|
||||||
|
total used free shared buff/cache available
|
||||||
|
Mem: 7.8G 1.2G 4.8G 50M 1.8G 6.1G
|
||||||
|
Swap: 2.0G 0B 2.0G
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## Wie finden Sie Hilfe zu einem Befehl?
|
||||||
|
|
||||||
|
```bash
|
||||||
|
man <Befehl>
|
||||||
|
```
|
||||||
|
|
||||||
|
Beispiel:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
man ls
|
||||||
|
```
|
||||||
|
!!! attention Zum verlassen <kbd>q</kbd> oder <kbd>strg</kbd>+<kbd>c</kbd>
|
||||||
|
|
||||||
|
## Zusatzaufgabe:
|
||||||
|
Erstellen Sie eine weitere Datei im Ordner „dokumente" und verschieben Sie diese anschließend in den Ordner „bilder". Zeigen Sie danach erneut die Struktur mit tree an.
|
||||||
|
|
||||||
|
Beispiel:
|
||||||
|
```bash
|
||||||
|
touch dokumente/zusatz.txt
|
||||||
|
echo "Testinhalt" > dokumente/zusatz.txt
|
||||||
|
mv dokumente/zusatz.txt bilder/
|
||||||
|
tree ~/projekt
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
!!! success Viel Erfolg beim Erkunden der Linux-Befehle und beim Organisieren Ihrer Dateien!
|
||||||
@@ -1,18 +1,15 @@
|
|||||||
# Mein erstes Linux Projekt
|
# Mein erstes Linux Projekt
|
||||||
|
|
||||||
## Inhaltsverzeichnis
|
|
||||||
[toc]
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
**Aufgabe**: Installieren Sie **3 Programme** aus der Liste und dokumentieren:
|
**Aufgabe**: Installieren Sie **3 Programme** aus der Liste und dokumentieren:
|
||||||
1. **Warum** haben SIe sie gewählt?
|
|
||||||
|
1. **Warum** haben Sie sie gewählt?
|
||||||
2. **Wie** haben Sie sie installiert (Terminal vs. Anwendungsverwaltung)?
|
2. **Wie** haben Sie sie installiert (Terminal vs. Anwendungsverwaltung)?
|
||||||
3. **Was** können Sie damit machen? (z. B. Screenshot mit Flameshot, Backup mit Timeshift).
|
3. **Was** können Sie damit machen? (z. B. Screenshot mit Flameshot, Backup mit Timeshift).
|
||||||
|
|
||||||
## Tools für Einsteiger
|
## Tools für Einsteiger
|
||||||
|
|
||||||
Warum diese Programme? Weil sie:
|
Warum diese Programme? Weil sie:
|
||||||
|
|
||||||
* **Alltagsprobleme lösen** (z. B.Screenshots, PDFs bearbeiten).
|
* **Alltagsprobleme lösen** (z. B.Screenshots, PDFs bearbeiten).
|
||||||
* **Spaß machen** (z. B. Spiele, Medien).
|
* **Spaß machen** (z. B. Spiele, Medien).
|
||||||
* **Produktivität steigern** (z. B. Notizen, Cloud-Sync).
|
* **Produktivität steigern** (z. B. Notizen, Cloud-Sync).
|
||||||
@@ -35,7 +32,7 @@ Manche Programme (z. B. GIMP) gibt es dort mit **Bewertungen** - hilfreich für
|
|||||||
| **Programm** | **Nutzen** | **Installationsbefehl** |
|
| **Programm** | **Nutzen** | **Installationsbefehl** |
|
||||||
|---------------|--------------------------------------|-------------------------|
|
|---------------|--------------------------------------|-------------------------|
|
||||||
| **Kdenlive** | Video-Schnitt (einfacher als OpenShot,aber mächtiger). | sudo apt install kdenlive |
|
| **Kdenlive** | Video-Schnitt (einfacher als OpenShot,aber mächtiger). | sudo apt install kdenlive |
|
||||||
| **Spotify** | Musik-Streaming (offizielle Linux-App). | sudo snap install spotify |
|
| **Spotify** | Musik-Streaming (offizielle Linux-App). | sudo flatpak install spotify |
|
||||||
| **GIMP** | Bildbearbeitung (Photoshop-Alternative). | sudo apt install gimp |
|
| **GIMP** | Bildbearbeitung (Photoshop-Alternative). | sudo apt install gimp |
|
||||||
| **OBS Studio** | Bildschirmaufnahmen & Livestreams. | sudo apt install obs-studio |
|
| **OBS Studio** | Bildschirmaufnahmen & Livestreams. | sudo apt install obs-studio |
|
||||||
| **Stacer** | System-Optimierung (wie CCleaner für Linux) | sudo apt install stacer |
|
| **Stacer** | System-Optimierung (wie CCleaner für Linux) | sudo apt install stacer |
|
||||||
@@ -46,7 +43,7 @@ Manche Programme (z. B. GIMP) gibt es dort mit **Bewertungen** - hilfreich für
|
|||||||
|
|
||||||
|**Programm** | **Nutzen** | **Installationsbefehl** |
|
|**Programm** | **Nutzen** | **Installationsbefehl** |
|
||||||
| ----------------|--------------------------------|---------------------------|
|
| ----------------|--------------------------------|---------------------------|
|
||||||
|**OnlyOffice** | Kompatibler mit MS Office (bessere Formatierung als LibreOffice). | sudo snap install onlyoffice-desktopeditors |
|
|**OnlyOffice** | Kompatibler mit MS Office (bessere Formatierung als LibreOffice). | sudo flatpak install onlyoffice-desktopeditors |
|
||||||
| **Flameshot** | Screenshots mit Bearbeitung (besser als gnome-screenshot). | sudo apt install flameshot |
|
| **Flameshot** | Screenshots mit Bearbeitung (besser als gnome-screenshot). | sudo apt install flameshot |
|
||||||
| **KeePassXC** | Passwort-Manager (sicher & offline).| sudo apt install keepassxc|
|
| **KeePassXC** | Passwort-Manager (sicher & offline).| sudo apt install keepassxc|
|
||||||
| **Nextcloud Client** | Cloud-Sync (z. B. für Meisterkurs/Arbeit). | sudo apt install nextcloud-desktop |
|
| **Nextcloud Client** | Cloud-Sync (z. B. für Meisterkurs/Arbeit). | sudo apt install nextcloud-desktop |
|
||||||
@@ -80,10 +77,8 @@ Manche Programme (z. B. GIMP) gibt es dort mit **Bewertungen** - hilfreich für
|
|||||||
|
|
||||||
| **Programm** | **Nutzen** | **Installationsbefehl** |
|
| **Programm** | **Nutzen** | **Installationsbefehl** |
|
||||||
--------------- |-----------------------------------| -------------------------|
|
--------------- |-----------------------------------| -------------------------|
|
||||||
| **VS Code** | Code-Editor (besser als Gedit). | sudo snap install \--classic code|
|
| **VS Code** | Code-Editor (besser als Gedit). | sudo flatpak install \--classic code|
|
||||||
| **Docker** | Container für Projekte (z. B. Webserver, Datenbanken). | sudo apt install docker.io|
|
| **Docker** | Container für Projekte (z. B. Webserver, Datenbanken). | sudo apt install docker.io|
|
||||||
| **GitKraken** | Git-Client mit GUI (einfacher als Terminal). | sudo snap install gitkraken |\--classic |
|
| **GitKraken** | Git-Client mit GUI (einfacher als Terminal). | sudo flatpak install gitkraken |\--classic |
|
||||||
| **Postman** | API-Testing (für Web-Entwickler). | sudo snap install postman|
|
| **Postman** | API-Testing (für Web-Entwickler). | sudo flatpak install postman|
|
||||||
|
|
||||||
------------------------------------------------------------------------
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,27 +1,20 @@
|
|||||||
---
|
# Praxisprojekt Medien-NAS für KODI
|
||||||
title: Praxisprojekt: Medien-Server mit Samba & Kodi
|
|
||||||
subtitle: Schritt-für-Schritt-Anleitung für Linux- und Windows-Einsteiger
|
|
||||||
lang: de-DE
|
|
||||||
---
|
|
||||||
|
|
||||||
# Ziel des Projekts
|
## Ziel des Projekts
|
||||||
|
|
||||||
Aufgebaut wird ein **Medien-Server mit Samba**, auf den **Windows-Clients** Medien (Musik, Videos, Bilder, ROMs) per **Windows-Freigabe** ablegen, und den eine **Kodi-VM** wiederum per SMB einbindet.
|
Aufgebaut wird ein **Medien-Server mit Samba**, auf den **Windows-Clients** Medien (Musik, Videos, Bilder, ROMs) per **Windows-Freigabe** ablegen, und den eine **Kodi-VM** wiederum per SMB einbindet.
|
||||||
Der ursprüngliche USB-Stick entfällt – alle Medien kommen direkt aus dem Netzwerk (z. B. vom Windows-PC).
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## 1. Vorbereitung
|
## 1. Vorbereitung
|
||||||
|
|
||||||
### 1.1 Voraussetzungen
|
### 1.1 Voraussetzungen
|
||||||
|
|
||||||
- Linux-Server (z. B. Ubuntu 24.04 LTS oder Linux Mint)
|
* Linux-Server (z. B. Ubuntu 24.04 LTS oder Linux Mint)
|
||||||
- Samba ist installiert und läuft
|
* Samba ist installiert und läuft
|
||||||
- Windows-PC im gleichen Netzwerk (legt Medien per Freigabe ab)
|
* Windows-PC im gleichen Netzwerk (legt Medien per Freigabe ab)
|
||||||
- Virtuelle Maschine (z. B. VirtualBox) mit:
|
* Virtuelle Maschine (z. B. VirtualBox) mit:
|
||||||
- Linux Mint + Kodi **oder**
|
* Linux Mint + Kodi **oder**
|
||||||
- Direkt in Windows
|
* Direkt in Windows
|
||||||
- Netzwerkzugriff zwischen Server, Windows-PC und VM
|
* Netzwerkzugriff zwischen Server, Windows-PC und VM
|
||||||
|
|
||||||
### 1.2 Samba-Grundkonfiguration prüfen
|
### 1.2 Samba-Grundkonfiguration prüfen
|
||||||
|
|
||||||
@@ -75,8 +68,8 @@ die Worte in den geschweiften Klammern ````{}```` werden nacheinander mit im Bef
|
|||||||
sudo chown -R nobody:nogroup /srv/samba/{musik,videos,bilder,roms}
|
sudo chown -R nobody:nogroup /srv/samba/{musik,videos,bilder,roms}
|
||||||
sudo chmod -R 775 /srv/samba/{musik,videos,bilder,roms}
|
sudo chmod -R 775 /srv/samba/{musik,videos,bilder,roms}
|
||||||
````
|
````
|
||||||
- `nobody:nogroup`: typischer Besitzer für anonyme Zugriffe
|
* `nobody:nogroup`: typischer Besitzer für anonyme Zugriffe
|
||||||
- `775`: Besitzer/Gruppe Vollzugriff, andere lesen + ausführen
|
* `775`: Besitzer/Gruppe Vollzugriff, andere lesen + ausführen
|
||||||
|
|
||||||
## 3. Samba-Freigaben für Medien einrichten
|
## 3. Samba-Freigaben für Medien einrichten
|
||||||
|
|
||||||
@@ -141,11 +134,11 @@ Falls Gastzugriff erlaubt ist (`guest ok = yes`), kann meist ohne Benutzername/P
|
|||||||
In produktiven Szenarien sollten stattdessen Benutzerkonten und `guest ok = no` verwendet werden.
|
In produktiven Szenarien sollten stattdessen Benutzerkonten und `guest ok = no` verwendet werden.
|
||||||
### 4.2 Medien kopieren
|
### 4.2 Medien kopieren
|
||||||
|
|
||||||
- Auf dem Windows-PC:
|
* Auf dem Windows-PC:
|
||||||
- Musik-Dateien nach `\\IP\Musik` kopieren
|
* Musik-Dateien nach `\\IP\Musik` kopieren
|
||||||
- Video-Dateien nach `\\IP\Videos`
|
* Video-Dateien nach `\\IP\Videos`
|
||||||
- Bilder nach `\\IP\Bilder`
|
* Bilder nach `\\IP\Bilder`
|
||||||
- ROMs (z. B. `.nes`, `.sfc`, `.iso`) nach `\\IP\ROMs`
|
* ROMs (z. B. `.nes`, `.sfc`, `.iso`) nach `\\IP\ROMs`
|
||||||
|
|
||||||
Zur Kontrolle auf dem Server:
|
Zur Kontrolle auf dem Server:
|
||||||
````bash
|
````bash
|
||||||
@@ -177,16 +170,16 @@ In Kodi:
|
|||||||
3. **Durchsuchen → Netzwerkfreigabe hinzufügen → SMB**
|
3. **Durchsuchen → Netzwerkfreigabe hinzufügen → SMB**
|
||||||
4. Server-IP eintragen (z. B. `192.168.178.50`)
|
4. Server-IP eintragen (z. B. `192.168.178.50`)
|
||||||
5. Freigabe auswählen, z. B.:
|
5. Freigabe auswählen, z. B.:
|
||||||
- `Musik`
|
* `Musik`
|
||||||
- `Videos`
|
* `Videos`
|
||||||
- `Bilder`
|
* `Bilder`
|
||||||
- `ROMs`
|
* `ROMs`
|
||||||
|
|
||||||
Wenn `guest ok = yes` gesetzt ist, kann meist mit **Gast** zugegriffen werden.
|
Wenn `guest ok = yes` gesetzt ist, kann meist mit **Gast** zugegriffen werden.
|
||||||
Bei Benutzerauthentifizierung:
|
Bei Benutzerauthentifizierung:
|
||||||
|
|
||||||
- Benutzername: Samba-Benutzer (z. B. `medienuser`)
|
* Benutzername: Samba-Benutzer (z. B. `medienuser`)
|
||||||
- Passwort: entsprechend `smbpasswd`
|
* Passwort: entsprechend `smbpasswd`
|
||||||
|
|
||||||
Quelle benennen, z. B. „Musik-Samba“.
|
Quelle benennen, z. B. „Musik-Samba“.
|
||||||
|
|
||||||
@@ -220,15 +213,15 @@ Unter **Bilder** Quellen hinzufügen und direkt als Bilderquelle verwenden.
|
|||||||
2. Ein Wetter-Add-on (z. B. OpenWeatherMap) auswählen
|
2. Ein Wetter-Add-on (z. B. OpenWeatherMap) auswählen
|
||||||
3. Installieren
|
3. Installieren
|
||||||
4. In den Add-on-Einstellungen:
|
4. In den Add-on-Einstellungen:
|
||||||
- API-Schlüssel eintragen (bei Bedarf vorher erstellen)
|
* API-Schlüssel eintragen (bei Bedarf vorher erstellen)
|
||||||
- Standort konfigurieren (z. B. „Berlin, DE“)
|
* Standort konfigurieren (z. B. „Berlin, DE“)
|
||||||
|
|
||||||
### 7.2 Retro-Spiele (ROMs)
|
### 7.2 Retro-Spiele (ROMs)
|
||||||
|
|
||||||
1. **Add-ons → Aus Repository installieren → Spiele → Emulator-Add-ons**
|
1. **Add-ons → Aus Repository installieren → Spiele → Emulator-Add-ons**
|
||||||
2. Passende Emulatoren (z. B. für NES, SNES, PlayStation) installieren
|
2. Passende Emulatoren (z. B. für NES, SNES, PlayStation) installieren
|
||||||
3. In den Emulator-Einstellungen:
|
3. In den Emulator-Einstellungen:
|
||||||
- ROM-Pfade hinzufügen, z. B. `smb://192.168.178.50/ROMs`
|
* ROM-Pfade hinzufügen, z. B. `smb://192.168.178.50/ROMs`
|
||||||
Mehr Funktionen was Spielen angeht müssen Sie sich im Netz informieren.
|
Mehr Funktionen was Spielen angeht müssen Sie sich im Netz informieren.
|
||||||
|
|
||||||
### 7.3 Skin anpassen
|
### 7.3 Skin anpassen
|
||||||
|
|||||||
@@ -4,12 +4,6 @@ Diese Anleitung zeigt Schritt für Schritt, wie Sie von einem Windows-Rechner au
|
|||||||
|
|
||||||
1. Zuerst richten Sie **grafischen Remote-Desktop** mit **xrdp** und der Windows-Remotedesktop-App ein und testen ihn direkt.
|
1. Zuerst richten Sie **grafischen Remote-Desktop** mit **xrdp** und der Windows-Remotedesktop-App ein und testen ihn direkt.
|
||||||
2. Anschließend richten Sie den **SSH-Zugriff** mit **PuTTY** ein und testen ihn ebenfalls sofort.
|
2. Anschließend richten Sie den **SSH-Zugriff** mit **PuTTY** ein und testen ihn ebenfalls sofort.
|
||||||
---
|
|
||||||
|
|
||||||
## Inhaltverzeichnis
|
|
||||||
[toc]
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## 1. Grafischer Remote-Desktop mit xrdp
|
## 1. Grafischer Remote-Desktop mit xrdp
|
||||||
|
|
||||||
@@ -22,7 +16,7 @@ Diese Anleitung zeigt Schritt für Schritt, wie Sie von einem Windows-Rechner au
|
|||||||
5. Klicken Sie auf **„Installieren“** und geben Sie bei Nachfrage Ihr Passwort ein.
|
5. Klicken Sie auf **„Installieren“** und geben Sie bei Nachfrage Ihr Passwort ein.
|
||||||
6. Warten Sie, bis die Installation abgeschlossen ist – der Dienst startet danach automatisch.
|
6. Warten Sie, bis die Installation abgeschlossen ist – der Dienst startet danach automatisch.
|
||||||
|
|
||||||
> Hinweis: Bei der Installation legt xrdp automatisch die Gruppe **„xrdp“** an. Benutzer dieser Gruppe dürfen sich per Remote Desktop anmelden.
|
!!! tip Hinweis: Bei der Installation legt xrdp automatisch die Gruppe **„xrdp“** an. Nur Benutzer dieser Gruppe dürfen sich per Remote Desktop anmelden.
|
||||||
|
|
||||||
### 1.2 Benutzer grafisch der Gruppe „xrdp“ hinzufügen
|
### 1.2 Benutzer grafisch der Gruppe „xrdp“ hinzufügen
|
||||||
|
|
||||||
@@ -51,17 +45,17 @@ Diese Anleitung zeigt Schritt für Schritt, wie Sie von einem Windows-Rechner au
|
|||||||
5. Optional: Klicken Sie auf **„Optionen einblenden“**, um Anzeigeeinstellungen anzupassen.
|
5. Optional: Klicken Sie auf **„Optionen einblenden“**, um Anzeigeeinstellungen anzupassen.
|
||||||
6. Klicken Sie auf **„Verbinden“**.
|
6. Klicken Sie auf **„Verbinden“**.
|
||||||
7. Beim ersten Verbindungsaufbau erscheint ein Hinweis zur Identität des Remotecomputers:
|
7. Beim ersten Verbindungsaufbau erscheint ein Hinweis zur Identität des Remotecomputers:
|
||||||
- Bestätigen Sie mit **„Ja“**.
|
* Bestätigen Sie mit **„Ja“**.
|
||||||
8. Es erscheint der **xrdp-Anmeldebildschirm**:
|
8. Es erscheint der **xrdp-Anmeldebildschirm**:
|
||||||
- Sitzungsart: **„Xorg“** belassen (Standard)
|
* Sitzungsart: **„Xorg“** belassen (Standard)
|
||||||
- **Benutzername**: z. B. `meister`
|
* **Benutzername**: z. B. `meister`
|
||||||
- **Passwort**: Passwort des Linux-Kontos
|
* **Passwort**: Passwort des Linux-Kontos
|
||||||
9. Klicken Sie auf **„OK“** oder **„Anmelden“**.
|
9. Klicken Sie auf **„OK“** oder **„Anmelden“**.
|
||||||
|
|
||||||
Nach kurzer Zeit sollte der Linux‑Mint‑Desktop in einem Fenster auf Ihrem Windows-Rechner erscheinen.
|
Nach kurzer Zeit sollte der Linux‑Mint‑Desktop in einem Fenster auf Ihrem Windows-Rechner erscheinen.
|
||||||
Sie haben damit den ersten Erfolg: grafischer Remote-Zugriff funktioniert.
|
Sie haben damit den ersten Erfolg: grafischer Remote-Zugriff funktioniert.
|
||||||
|
|
||||||
---
|
--*
|
||||||
|
|
||||||
## 2. Textbasierter Zugriff mit SSH und PuTTY
|
## 2. Textbasierter Zugriff mit SSH und PuTTY
|
||||||
|
|
||||||
@@ -76,7 +70,7 @@ Nach dem erfolgreichen grafischen Zugriff richten Sie nun den SSH-Zugriff ein.
|
|||||||
5. Klicken Sie auf **„Installieren“** und geben Sie Ihr Passwort ein.
|
5. Klicken Sie auf **„Installieren“** und geben Sie Ihr Passwort ein.
|
||||||
6. Warten Sie, bis die Installation abgeschlossen ist – der SSH-Dienst startet automatisch und wird beim Systemstart aktiviert.
|
6. Warten Sie, bis die Installation abgeschlossen ist – der SSH-Dienst startet automatisch und wird beim Systemstart aktiviert.
|
||||||
|
|
||||||
> Die IP-Adresse bleibt dieselbe wie im Remote-Desktop-Teil; sie muss nicht neu gesucht werden.
|
!!! tip Die IP-Adresse bleibt dieselbe wie im Remote-Desktop-Teil; sie muss nicht neu gesucht werden.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -95,14 +89,14 @@ Nach dem erfolgreichen grafischen Zugriff richten Sie nun den SSH-Zugriff ein.
|
|||||||
1. Starten Sie **PuTTY** über das Windows-Startmenü.
|
1. Starten Sie **PuTTY** über das Windows-Startmenü.
|
||||||
2. Im Feld **„Host Name (or IP address)“** tragen Sie die IP-Adresse des Linux‑Mint‑Rechners ein, z. B. `192.168.1.50`.
|
2. Im Feld **„Host Name (or IP address)“** tragen Sie die IP-Adresse des Linux‑Mint‑Rechners ein, z. B. `192.168.1.50`.
|
||||||
3. Prüfen Sie:
|
3. Prüfen Sie:
|
||||||
- **Port**: `22`
|
* **Port**: `22`
|
||||||
- **Connection type**: `SSH`
|
* **Connection type**: `SSH`
|
||||||
4. Optional:
|
4. Optional:
|
||||||
- Geben Sie unter **„Saved Sessions“** einen Namen wie `Mint-SSH` ein.
|
* Geben Sie unter **„Saved Sessions“** einen Namen wie `Mint-SSH` ein.
|
||||||
- Klicken Sie auf **„Save“**, um die Sitzung zu speichern.
|
* Klicken Sie auf **„Save“**, um die Sitzung zu speichern.
|
||||||
5. Klicken Sie auf **„Open“**.
|
5. Klicken Sie auf **„Open“**.
|
||||||
6. Beim ersten Verbindungsaufbau erscheint ein Sicherheitshinweis zum Server-Schlüssel:
|
6. Beim ersten Verbindungsaufbau erscheint ein Sicherheitshinweis zum Server-Schlüssel:
|
||||||
- Bestätigen Sie mit **„Accept“** bzw. **„Ja“**.
|
* Bestätigen Sie mit **„Accept“** bzw. **„Ja“**.
|
||||||
7. Geben Sie im Terminalfenster den **Benutzernamen** Ihres Linux-Kontos ein und drücken Sie Enter.
|
7. Geben Sie im Terminalfenster den **Benutzernamen** Ihres Linux-Kontos ein und drücken Sie Enter.
|
||||||
8. Geben Sie anschließend Ihr **Passwort** ein (es wird beim Tippen nicht angezeigt) und bestätigen Sie mit Enter.
|
8. Geben Sie anschließend Ihr **Passwort** ein (es wird beim Tippen nicht angezeigt) und bestätigen Sie mit Enter.
|
||||||
|
|
||||||
@@ -112,11 +106,10 @@ Sie sind nun per SSH mit Linux Mint verbunden und können textbasierte Befehle a
|
|||||||
|
|
||||||
## 3. Kurzer Überblick: Was wurde erreicht?
|
## 3. Kurzer Überblick: Was wurde erreicht?
|
||||||
|
|
||||||
- **xrdp + Remotedesktop**:
|
* **xrdp + Remotede sktop**:
|
||||||
- Grafischer Zugriff auf den Linux‑Mint‑Desktop von Windows aus
|
* Grafischer Zugriff auf den Linux‑Mint‑Desktop von Windows aus
|
||||||
- Benutzersteuerung über die bestehende Gruppe **„xrdp“**
|
* Benutzersteuerung über die bestehende Gruppe **„xrdp“**
|
||||||
|
|
||||||
- **OpenSSH-Server + PuTTY**:
|
|
||||||
- Textbasierter Zugriff (Shell) auf Linux Mint
|
|
||||||
- Ideal für Administration, Skripte und Log-Analyse
|
|
||||||
|
|
||||||
|
* **OpenSSH-Server + PuTTY**:
|
||||||
|
* Textbasierter Zugriff (Shell) auf Linux Mint
|
||||||
|
* Ideal für Administration, Skripte und Log-Analyse
|
||||||
|
|||||||
@@ -1,330 +0,0 @@
|
|||||||
# Windows-Freigabe mit Samba
|
|
||||||
|
|
||||||
Samba ist die Linux-Variante um SMB-Verbindungen zu Windows, Linux und OS X (macOS) herzustellen. Hierfür wird ein Serverdienst installiert und über eine übersichtliche Konfigurationsdatei entsprechend den Anforderungen eingestellt. Es existieren zwar auch Möglichkeiten diese Freigaben über GUI-Programme oder Webinterfaces zu konfigurieren allerdings sind deren Funktionsumfang meist auf Basis-Funktionen beschränkt. Samba bietet eine Überprüfungsmöglichkeit der Konfigurationsdatei, um Schreibfehler und deren Konsequenzen übersichtlich darzustellen.
|
|
||||||
|
|
||||||
## Inhaltsverzeichnis
|
|
||||||
[toc]
|
|
||||||
|
|
||||||
|
|
||||||
## Installation
|
|
||||||
|
|
||||||
Für die Installation empfiehlt sich die Shell da hierüber sinnvoll beobachtet werden kann welche weiteren Abhängigkeiten installiert werden.
|
|
||||||
|
|
||||||
### Shell-Installation
|
|
||||||
|
|
||||||
Update der Paketdatenbank und der installierten Pakete
|
|
||||||
|
|
||||||
```bash
|
|
||||||
sudo apt update && sudo apt-get upgrade -y
|
|
||||||
```
|
|
||||||
|
|
||||||
Installation des Samba-Dienstes
|
|
||||||
|
|
||||||
```bash
|
|
||||||
sudo apt install samba
|
|
||||||
```
|
|
||||||
|
|
||||||
Nach der Installation des Dienstes kann dieser über die Konfigurationsdatei /etc/samba/smb.conf bearbeitet werden. Die von Ubuntu vorkonfigurierte Version ist nahezu vollständig selbsterklärend und mit entsprechenden Beispielen versehen.
|
|
||||||
|
|
||||||
## /etc/samba/smb.conf
|
|
||||||
|
|
||||||
### Samba-Konfiguration (`smb.conf`) einfach erklärt
|
|
||||||
Die Datei `/etc/samba/smb.conf` steuert, wie dein Linux-Server Dateien und Drucker für Windows-, macOS- oder andere Linux-Geräte freigibt.
|
|
||||||
Sie ist in **zwei Hauptbereiche** unterteilt:
|
|
||||||
1. **Globale Einstellungen** (`[global]`): Grundlegende Server-Konfiguration.
|
|
||||||
2. **Freigaben** (`[Freigabename]`): Definition einzelner freigegebener Ordner/Drucker.
|
|
||||||
|
|
||||||
### 1. Globale Einstellungen `[global]`
|
|
||||||
Diese Einstellungen gelten für den **gesamten Samba-Server**.
|
|
||||||
Hier ein Auszug der wichtigsten Optionen für einen **Standalone-Server** (ohne Domain):
|
|
||||||
|
|
||||||
```ini
|
|
||||||
[global]
|
|
||||||
# Name der Arbeitsgruppe (wie in Windows-Netzwerken)
|
|
||||||
workgroup = WORKGROUP
|
|
||||||
|
|
||||||
# Beschreibung des Servers (erscheint z.B. in Windows-Explorer)
|
|
||||||
server string = %h server (Samba, Ubuntu)
|
|
||||||
|
|
||||||
# Netzwerk-Interfaces: Auf welchen IP-Adressen/Netzwerkkarten soll Samba laufen?
|
|
||||||
; interfaces = 127.0.0.0/8 eth0 # Standard: Alle verfügbaren Interfaces
|
|
||||||
; bind interfaces only = yes # Nur auf den oben genannten Interfaces
|
|
||||||
|
|
||||||
# Protokollierung: Wo und wie werden Logs geschrieben?
|
|
||||||
log file = /var/log/samba/log.%m # %m = Name des Clients (z. B. "log.PC1")
|
|
||||||
max log size = 1000 # Maximale Log-Größe in KB
|
|
||||||
logging = file # Logs nur in Dateien (nicht syslog)
|
|
||||||
|
|
||||||
# Sicherheit: Wie authentifizieren sich Nutzer?
|
|
||||||
server role = standalone server # Server arbeitet allein (keine Domain)
|
|
||||||
map to guest = bad user # Unbekannte Nutzer werden als "Gast" behandelt
|
|
||||||
obey pam restrictions = yes # Nutzer müssen sich an Linux-PAM-Regeln halten
|
|
||||||
unix password sync = yes # Samba-Passwort ändert auch Linux-Passwort
|
|
||||||
passwd program = /usr/bin/passwd %u # Programm zum Ändern des Passworts
|
|
||||||
pam password change = yes # Nutze PAM für Passwort-Änderungen
|
|
||||||
|
|
||||||
# Nutzerfreigaben: Erlaube Nutzern, eigene Freigaben zu erstellen
|
|
||||||
usershare allow guests = yes # Gäste dürfen auf Nutzerfreigaben zugreifen
|
|
||||||
```
|
|
||||||
> **Wichtige Hinweise:**
|
|
||||||
> * ````;```` oder ````#````:
|
|
||||||
> * Zeilen mit ````;```` sind deaktivierte Vorschläge (können aktiviert werden).
|
|
||||||
> * Zeilen mit ````#```` sind Standardwerte (werden auch ohne Angabe genutzt).
|
|
||||||
> * ````%h````: Platzhalter für den Hostnamen des Servers.
|
|
||||||
> * ````standalone server````: Der Server arbeitet ohne Domain – Nutzer müssen lokal auf dem Linux-System existieren.
|
|
||||||
|
|
||||||
#### Anpassungen an Windows 11
|
|
||||||
Fügen sie unterhalb dieser Einstellungen im noch im Bereich [Global] :
|
|
||||||
````ini
|
|
||||||
# Protokolle und Kompatibilität
|
|
||||||
server min protocol = SMB2
|
|
||||||
smb encrypt = desired
|
|
||||||
````
|
|
||||||
Erst dadurch kann Windows 11 konsitant darauf zugreifen.
|
|
||||||
|
|
||||||
### 2. Freigaben definieren
|
|
||||||
Freigaben werden in eigenen Abschnitten definiert, z. B. [Musik] oder [Drucker].
|
|
||||||
Jede Freigabe hat einen Namen (erscheint im Netzwerk) und Optionen für Zugriffsrechte.
|
|
||||||
Beispiel 1: Öffentliche Freigabe (z. B. für Musik)
|
|
||||||
````ini
|
|
||||||
[Musik]
|
|
||||||
comment = Musikfreigabe für alle # Beschreibung (erscheint im Explorer)
|
|
||||||
path = /srv/samba/musik # Pfad zum freigegebenen Ordner
|
|
||||||
browseable = yes # Freigabe ist im Netzwerk sichtbar
|
|
||||||
read only = no # Nutzer dürfen Dateien schreiben
|
|
||||||
guest ok = yes # Gäste (ohne Passwort) dürfen zugreifen
|
|
||||||
````
|
|
||||||
Beispiel 2: Eingeschränkte Freigabe (nur für bestimmte Nutzer)
|
|
||||||
````ini
|
|
||||||
[Dokumente]
|
|
||||||
comment = Vertrauliche Dokumente
|
|
||||||
path = /srv/samba/dokumente
|
|
||||||
browseable = yes
|
|
||||||
read only = no
|
|
||||||
guest ok = no # Kein Gastzugriff
|
|
||||||
valid users = @mitarbeiter # Nur Nutzer der Gruppe "mitarbeiter" dürfen zugreifen
|
|
||||||
write list = @teamleitung # Nur Gruppe "teamleitung" darf schreiben
|
|
||||||
````
|
|
||||||
Wichtige Freigabe-Optionen:
|
|
||||||
|Option |Bedeutung |Beispiel |
|
|
||||||
|--------------|------------------------------------------------------------------------|--------------------------|
|
|
||||||
|comment |Beschreibung der Freigabe (erscheint im Explorer). |comment = Medienarchiv |
|
|
||||||
|path |Pfad zum freigegebenen Ordner. |path = /srv/samba/musik |
|
|
||||||
|browseable |yes: Freigabe ist im Netzwerk sichtbar. no: Nur mit direktem Pfad. |browseable = yes |
|
|
||||||
|read only |yes: Nur Lesezugriff. no: Schreibzugriff erlaubt. |read only = no |
|
|
||||||
|guest ok |yes: Gäste (ohne Passwort) dürfen zugreifen. |guest ok = yes |
|
|
||||||
|valid users |Liste der Nutzer/Gruppen, die überhaupt zugreifen dürfen. |valid users = @mitarbeiter|
|
|
||||||
|write list |Liste der Nutzer/Gruppen, die schreiben dürfen (überschreibt read only).|write list = @teamleitung |
|
|
||||||
|create mask |Berechtigungen für neue Dateien (oktal). |create mask = 0664 |
|
|
||||||
|directory mask|Berechtigungen für neue Ordner (oktal). |directory mask = 0775 |
|
|
||||||
|force group |Neue Dateien/Ordner gehören automatisch zu dieser Gruppe. |force group = mitarbeiter |
|
|
||||||
|
|
||||||
### 3. Sonderfälle
|
|
||||||
|
|
||||||
#### Nutzer-Home-Verzeichnisse
|
|
||||||
|
|
||||||
Jeder Nutzer kann automatisch auf sein eigenes Home-Verzeichnis zugreifen:
|
|
||||||
````ini
|
|
||||||
[homes]
|
|
||||||
comment = Persönlicher Ordner
|
|
||||||
browseable = no # Nur der eigene Nutzer sieht die Freigabe
|
|
||||||
read only = no # Nutzer darf schreiben
|
|
||||||
valid users = %S # %S = aktueller Nutzer (z. B. "plustig")
|
|
||||||
````
|
|
||||||
#### Druckerfreigabe
|
|
||||||
|
|
||||||
Samba Drucker für Windows-Clients freigeben:
|
|
||||||
````ini
|
|
||||||
[printers]
|
|
||||||
comment = Alle Drucker
|
|
||||||
path = /var/spool/samba # Spoolfolder für Druckaufträge
|
|
||||||
browseable = no # Drucker sind nicht im Explorer sichtbar
|
|
||||||
printable = yes # Erlaubt Druckaufträge
|
|
||||||
guest ok = no # Nur authentifizierte Nutzer dürfen drucken
|
|
||||||
|
|
||||||
[print\$]
|
|
||||||
comment = Druckertreiber
|
|
||||||
path = /var/lib/samba/printers
|
|
||||||
browseable = yes
|
|
||||||
read only = yes
|
|
||||||
guest ok = no
|
|
||||||
write list = root, @lpadmin # Nur Admins dürfen Treiber hochladen
|
|
||||||
````
|
|
||||||
### 4. Einstellungen prüfen und übernehmen
|
|
||||||
|
|
||||||
Nach Änderungen in der smb.conf immer prüfen:
|
|
||||||
````bash
|
|
||||||
sudo samba-tool testparm
|
|
||||||
````
|
|
||||||
Hierbei werden alle Einstellungen angezeigt. Manche bleiben ausgeblendet, wenn sie per defaqult aktiv sind wie z.B. ````browseable = yes````
|
|
||||||
Wenn keine Fehler auftauchen können alle EInstellungen übernommen werden:
|
|
||||||
````bash
|
|
||||||
sudo systemctl restart smbd nmbd
|
|
||||||
````
|
|
||||||
|
|
||||||
## Samba-Projekt 1 einfache Freigaben für Medienplayer KODI:
|
|
||||||
|
|
||||||
**Vorraussetzungen:**
|
|
||||||
* Samba installiert und in der [Konfiguration für Windows 11](#-Anpassungen an Windows 11) angepasst
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
## Beispiel eingeschränkte Freigabe z.B. Unterlagen für bestimmten Personenkreis.
|
|
||||||
|
|
||||||
Im Vorfeld solcher Freigaben müssen die betreffenden Benutzer zum einen auf dem System vorhanden sein und auch noch ergänzend in Samba bekannt gemacht werden. Dazu legen wir nun 2 neue Nutzer an, um später nachvollziehen zu können wer was darf. Dazu als Beispiel Hans Wurst aus der Produktion und Peter Lustig aus der Verwaltung.
|
|
||||||
|
|
||||||
Im folgenden werden Zugriffsgruppen definiert welche es ermöglichen die Lese- und Schreibrechte sauber Granuliert darzustellen:
|
|
||||||
|
|
||||||
| | Lesen
Angebote | Schreiben
Angebote | Lesen
Lieferscheine | Schreiben
Lieferscheine |
|
|
||||||
| ------------ | ------------------ | ---------------------- | ----------------------- | --------------------------- |
|
|
||||||
| Hans Wurst | X | | | X |
|
|
||||||
| Peter Lustig | | X | | X |
|
|
||||||
|
|
||||||
```bash
|
|
||||||
sudo adduser hwurst
|
|
||||||
sudo adduser plustig
|
|
||||||
sudo addgroup angebote_l
|
|
||||||
sudo addgroup angebote_ae
|
|
||||||
sudo addgroup lieferscheine_l
|
|
||||||
sudo addgroup lieferscheine_ae
|
|
||||||
sudo usermod -aG angebote_l hwurst
|
|
||||||
sudo usermod -aG lieferscheine_ae hwurst
|
|
||||||
sudo usermod -aG angebote_ae plustig
|
|
||||||
sudo usermod -aG lieferscheine_ae plustig
|
|
||||||
```
|
|
||||||
|
|
||||||
Bekanntgabe an Samba:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
sudo smbpasswd -a hwurst
|
|
||||||
sudo smbpasswd -a plustig
|
|
||||||
```
|
|
||||||
|
|
||||||
Erstellen der Verzeichnisse:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
sudo mkdir /srv/samba/angebote
|
|
||||||
sudo chown -R nobody:angebote_ae /srv/samba/angebote
|
|
||||||
sudo chmod -R 0077 /srv/samba/angebote
|
|
||||||
sudo mkdir /srv/samba/lieferscheine
|
|
||||||
sudo chown -R nobody:lieferscheine_ae /srv/samba/lieferscheine
|
|
||||||
sudo chmod -R 0077 /srv/samba/lieferscheine
|
|
||||||
sudo nano /etc/samba/smb.conf
|
|
||||||
```
|
|
||||||
Erklärung:
|
|
||||||
```bash
|
|
||||||
chown Rekursive USER:GRUPPE Pfad
|
|
||||||
chmod Rekurisv OKTALMODE-RECHTE (Siehe Tabelle) Pfad
|
|
||||||
````
|
|
||||||
In der Datei /etc/samba/smb.conf:
|
|
||||||
|
|
||||||
```ini
|
|
||||||
[Angebote]
|
|
||||||
comment = Angebote an Kunden
|
|
||||||
path = /srv/samba/angebote
|
|
||||||
guest ok = no
|
|
||||||
browseable = yes
|
|
||||||
readonly = yes
|
|
||||||
valid users = @angebote_l, @angebote_ae
|
|
||||||
write list = @angebote_ae
|
|
||||||
force create mode = 0775
|
|
||||||
force directory mask = 0775
|
|
||||||
force group = angebote_ae
|
|
||||||
|
|
||||||
[Lieferscheine]
|
|
||||||
copy = Angebote
|
|
||||||
comment = Lieferscheine von Lieferanten
|
|
||||||
path = /srv/samba/lieferscheine
|
|
||||||
valid users = @lieferscheine_l, @lieferscheine_ae
|
|
||||||
write list = @lieferscheine_ae
|
|
||||||
force group = lieferscheine_ae
|
|
||||||
|
|
||||||
```
|
|
||||||
|
|
||||||
## Userverzeichnis
|
|
||||||
|
|
||||||
> Jeder User der Zugriffsrechte auf Samba selbst hat kann durch eine spezielle Freigabe automatisch Zugriff auf sein eigenes Home-Verzeichnis erhalten. Diese ist in der Beispielkonfiguration der smb.conf bereits auskommentiert vorhanden und kann schlicht wieder ein kommentiert werden.
|
|
||||||
|
|
||||||
```ini
|
|
||||||
[homes]
|
|
||||||
comment = Privates Verzeichnis
|
|
||||||
browseable = no
|
|
||||||
read only = yes
|
|
||||||
create mask = 0700
|
|
||||||
directory mask = 0700
|
|
||||||
valid users = %S
|
|
||||||
|
|
||||||
```
|
|
||||||
|
|
||||||
„homes" ist hier nur ein Platzhalter dieser wird automatisch durch den jeweiligen Usernamen ersetzt und auch der Zugriff ist dann nur für diesen User verfügbar.
|
|
||||||
|
|
||||||
## Sonderfall Drucker
|
|
||||||
|
|
||||||
Für Drucker ist standartmäßig eine Freigabe aktiviert ähnlich wie dies auch Windows in einem Heimnetzwerk tut. Die Konfiguration können Sie der Beispielkonfiguration der smb.conf entnehmen es sind 2 Freigaben notwendig, um ALLE Drucker freizugeben.
|
|
||||||
|
|
||||||
```ini
|
|
||||||
[printers]
|
|
||||||
comment = Alle Drucker
|
|
||||||
browseable = no
|
|
||||||
path = /var/spool/samba
|
|
||||||
printable = yes
|
|
||||||
guest ok = no
|
|
||||||
read only = yes
|
|
||||||
create mask = 0700
|
|
||||||
```
|
|
||||||
|
|
||||||
Damit werden Alle Drucker, die am System eingerichtet sind mit jeweils einem eigenen Eintrag freigegeben.
|
|
||||||
|
|
||||||
```ini
|
|
||||||
[print$]
|
|
||||||
comment = Drucker Treiber
|
|
||||||
path /var/lib/samba/printers
|
|
||||||
browseable = yes
|
|
||||||
read only = yes
|
|
||||||
guest ok = no
|
|
||||||
|
|
||||||
```
|
|
||||||
|
|
||||||
Hier sucht Windows nach Druckertreibern. Die Treiber müssen entweder über andere Wege in dieses Verzeichnis gelegt werden oder es kann auch ein write list Eintrag hinzugefügt werden.
|
|
||||||
|
|
||||||
## Netzwerkpapierkorb
|
|
||||||
|
|
||||||
Auf einem Netzlaufwerk gelöschte Dateien können schnell mal verloren gehen, dafür lässt sich ein Netzwerkpapierkorb einsetzen. Entweder unter global für alle Freigaben oder pro Freigabe einmal einsetzen.
|
|
||||||
|
|
||||||
```ini
|
|
||||||
# Virtuelles File System "recycle" wird angelegt
|
|
||||||
vfs object = recycle
|
|
||||||
# Der Pfad zum Papierkorb relativ zur Freigabe (".recyclebin" ist
|
|
||||||
Default).
|
|
||||||
recycle:repository = .recyclebin
|
|
||||||
# Im Papierkorb bleiben Pfad-Angaben erhalten.
|
|
||||||
recycle:keeptree = Yes
|
|
||||||
# Beim Verschieben wird der Zeitstempel angepasst.
|
|
||||||
recycle:touch = Yes
|
|
||||||
# Gleichnamige Dateien werden nicht überschrieben.
|
|
||||||
recycle:versions = Yes
|
|
||||||
# Keine Begrenzung der Dateigröße pro gelöschter Datei.
|
|
||||||
recycle:maxsize = 0
|
|
||||||
```
|
|
||||||
|
|
||||||
Und wer leert den? Durch Cron wird jeden Tag der Papierkorb durchsucht
|
|
||||||
und alles, was älter als 14 Tage ist gelöscht.
|
|
||||||
|
|
||||||
```bash
|
|
||||||
sudo crontab -e
|
|
||||||
```
|
|
||||||
|
|
||||||
In einer Zeile:
|
|
||||||
|
|
||||||
```
|
|
||||||
0 12 * * * for path in $(grep path /etc/samba/smb.conf | cut -d= -f2 | sed -e 's/ //' -e 's/\%S/*/'); do if ; then find ${path}/.recycle -mindepth 1 -mtime +14 -exec rm -rf {} \;; fi; done
|
|
||||||
```
|
|
||||||
|
|
||||||
Was steht da nun drin:
|
|
||||||
|
|
||||||
Jeden Tag um 0:12 soll in der smb.conf nach Pfad-Angaben gesucht werden und innerhalb dieser die Pfade „.recycle" nach Dateien durchsucht werden die älter als 14 Tage sind. Diese werden gelöscht.
|
|
||||||
|
|
||||||
Jetzt in die
|
|
||||||
|
|
||||||
|
|
||||||
[PDF herunterladen](Windows-Freigabe_mit_Samba.pdf){ .md-button }
|
|
||||||
@@ -1,25 +1,17 @@
|
|||||||
# Samba-Konfiguration für Linux-Einsteiger
|
# Samba-Konfiguration für Linux-Einsteiger
|
||||||
*Ein vollständiger Leitfaden zur Einrichtung von Samba-Freigaben, Rechteverwaltung und Gruppen auf einem Standalone-Server*
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Inhaltsverzeichnis
|
|
||||||
[TOC]
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Einführung in Samba
|
## Einführung in Samba
|
||||||
**Samba** ist eine Open-Source-Software, die es Linux-Systemen ermöglicht, **Datei- und Druckdienste** für Windows-, macOS- und andere Linux-Clients bereitzustellen. Samba implementiert das **SMB/CIFS-Protokoll** (Server Message Block / Common Internet File System), das in Windows-Netzwerken standardmäßig verwendet wird.
|
**Samba** ist eine Open-Source-Software, die es Linux-Systemen ermöglicht, **Datei* und Druckdienste** für Windows-, macOS* und andere Linux-Clients bereitzustellen. Samba implementiert das **SMB/CIFS-Protokoll** (Server Message Block / Common Internet File System), das in Windows-Netzwerken standardmäßig verwendet wird.
|
||||||
|
|
||||||
### Wichtige Anwendungsfälle:
|
### Wichtige Anwendungsfälle:
|
||||||
- **Dateifreigaben** im lokalen Netzwerk (z. B. für Medien, Dokumente oder Backups).
|
* **Dateifreigaben** im lokalen Netzwerk (z. B. für Medien, Dokumente oder Backups).
|
||||||
- **Druckerfreigaben** für Windows-Clients.
|
* **Druckerfreigaben** für Windows-Clients.
|
||||||
- **Zentraler Speicher** für mehrere Nutzer (z. B. in kleinen Büros oder Heimnetzwerken).
|
* **Zentraler Speicher** für mehrere Nutzer (z. B. in kleinen Büros oder Heimnetzwerken).
|
||||||
|
|
||||||
### Voraussetzungen:
|
### Voraussetzungen:
|
||||||
- Ein **Linux-Server** (z. B. Ubuntu, Debian, Raspberry Pi OS).
|
* Ein **Linux-Server** (z. B. Ubuntu, Debian, Raspberry Pi OS).
|
||||||
- **Root-Zugriff** oder `sudo`-Berechtigungen.
|
* **Root-Zugriff** oder ````sudo````-Berechtigungen.
|
||||||
- Grundkenntnisse in der **Linux-Kommandozeile**.
|
* Grundkenntnisse in der **Linux-Kommandozeile**.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -81,7 +73,6 @@ Wichtige Optionen für einen Standalone-Server:
|
|||||||
Hinweise:
|
Hinweise:
|
||||||
````
|
````
|
||||||
; oder #:
|
; oder #:
|
||||||
|
|
||||||
; = Deaktivierter Vorschlag (kann aktiviert werden).
|
; = Deaktivierter Vorschlag (kann aktiviert werden).
|
||||||
# = Standardwert (wird auch ohne Angabe genutzt).
|
# = Standardwert (wird auch ohne Angabe genutzt).
|
||||||
````
|
````
|
||||||
@@ -101,6 +92,7 @@ Fügen sie unterhalb dieser Einstellungen im noch im Bereich [Global] :
|
|||||||
### Freigaben definieren
|
### Freigaben definieren
|
||||||
Freigaben werden in eigenen Abschnitten definiert, z. B. [Musik] oder [Dokumente]. Jede Freigabe hat einen Namen (erscheint im Netzwerk) und Optionen für Zugriffsrechte.
|
Freigaben werden in eigenen Abschnitten definiert, z. B. [Musik] oder [Dokumente]. Jede Freigabe hat einen Namen (erscheint im Netzwerk) und Optionen für Zugriffsrechte.
|
||||||
Grundlegende Optionen:
|
Grundlegende Optionen:
|
||||||
|
|
||||||
|Option |Bedeutung |Beispiel |
|
|Option |Bedeutung |Beispiel |
|
||||||
|--------------|------------------------------------------------------------------------|--------------------------|
|
|--------------|------------------------------------------------------------------------|--------------------------|
|
||||||
|comment |Beschreibung der Freigabe (erscheint im Explorer). |comment = Medienarchiv |
|
|comment |Beschreibung der Freigabe (erscheint im Explorer). |comment = Medienarchiv |
|
||||||
@@ -149,7 +141,7 @@ Samba kann Drucker für Windows-Clients freigeben:
|
|||||||
|
|
||||||
|
|
||||||
## Rechteverwaltung unter Linux
|
## Rechteverwaltung unter Linux
|
||||||
Die korrekte Vergabe von Datei- und Ordnerrechten ist essenziell für die Sicherheit und Funktionalität von Samba-Freigaben.
|
Die korrekte Vergabe von Datei* und Ordnerrechten ist essenziell für die Sicherheit und Funktionalität von Samba-Freigaben.
|
||||||
### ````chown````: Besitzer und Gruppe ändern
|
### ````chown````: Besitzer und Gruppe ändern
|
||||||
Jede Datei/Ordner gehört einem **Besitzer (User)** und einer **Gruppe (Group)**.
|
Jede Datei/Ordner gehört einem **Besitzer (User)** und einer **Gruppe (Group)**.
|
||||||
Syntax:
|
Syntax:
|
||||||
@@ -157,10 +149,11 @@ Syntax:
|
|||||||
sudo chown [BESITZER]:[GRUPPE] [DATEI/ORDNER]
|
sudo chown [BESITZER]:[GRUPPE] [DATEI/ORDNER]
|
||||||
````
|
````
|
||||||
Beispiele:
|
Beispiele:
|
||||||
|
|
||||||
|Befehl| Wirkung|
|
|Befehl| Wirkung|
|
||||||
|-|-|
|
|-|-|
|
||||||
|sudo chown felix:mitarbeiter /srv/samba|Besitzer: felix, Gruppe: mitarbeiter. |
|
|sudo chown felix:mitarbeiter /srv/samba|Besitzer: felix, Gruppe: mitarbeiter. |
|
||||||
|sudo chown :mitarbeiter /srv/samba|Ändert nur die Gruppe auf mitarbeiter. |
|
|sudo chgrp mitarbeiter /srv/samba|Ändert nur die Gruppe auf mitarbeiter. |
|
||||||
|sudo chown -R nobody:mitarbeiter /srv/samba|Rekursiv: Besitzer: nobody, Gruppe: mitarbeiter für alle Unterordner/Dateien.|
|
|sudo chown -R nobody:mitarbeiter /srv/samba|Rekursiv: Besitzer: nobody, Gruppe: mitarbeiter für alle Unterordner/Dateien.|
|
||||||
|
|
||||||
|
|
||||||
@@ -228,6 +221,7 @@ sudo chmod [OPTIONEN] [RECHTE] [DATEI/ORDNER]
|
|||||||
* ````-R````: Rekursiv (für alle Unterordner/Dateien).
|
* ````-R````: Rekursiv (für alle Unterordner/Dateien).
|
||||||
|
|
||||||
#### Beispiele:
|
#### Beispiele:
|
||||||
|
|
||||||
|Befehl |Wirkung |
|
|Befehl |Wirkung |
|
||||||
|----------------------------|---------------------------------------------|
|
|----------------------------|---------------------------------------------|
|
||||||
|sudo chmod 755 /srv/samba |Besitzer: rwx, Gruppe/Andere: r-x. |
|
|sudo chmod 755 /srv/samba |Besitzer: rwx, Gruppe/Andere: r-x. |
|
||||||
@@ -267,7 +261,7 @@ sudo usermod -aG mitarbeiter felix # Fügt "felix" der Gruppe "mitarbeiter" hin
|
|||||||
#### 3. Gruppe einer Datei/Ordner zuweisen:
|
#### 3. Gruppe einer Datei/Ordner zuweisen:
|
||||||
````bash
|
````bash
|
||||||
|
|
||||||
sudo chown \:mitarbeiter /srv/samba/dokumente # Setzt die Gruppe auf "mitarbeiter".
|
sudo chgrp mitarbeiter /srv/samba/dokumente # Setzt die Gruppe auf "mitarbeiter".
|
||||||
sudo chmod 770 /srv/samba/dokumente # Gruppe erhält Vollzugriff.
|
sudo chmod 770 /srv/samba/dokumente # Gruppe erhält Vollzugriff.
|
||||||
````
|
````
|
||||||
#### 4. Gruppe in Samba nutzen:
|
#### 4. Gruppe in Samba nutzen:
|
||||||
@@ -286,7 +280,7 @@ Anwendungsfall: Medienfreigabe für alle Nutzer im Netzwerk (z. B. Musik, Filme)
|
|||||||
**Schritt 1: Ordner erstellen und Rechte setzen**
|
**Schritt 1: Ordner erstellen und Rechte setzen**
|
||||||
````bash
|
````bash
|
||||||
sudo mkdir -p /srv/samba/medien
|
sudo mkdir -p /srv/samba/medien
|
||||||
sudo chown nobody\:nogroup /srv/samba/medien # Besitzer: "nobody", Gruppe: "nogroup"
|
sudo chown nobody:nogroup /srv/samba/medien # Besitzer: "nobody", Gruppe: "nogroup"
|
||||||
sudo chmod 777 /srv/samba/medien # Temporär volle Rechte (für Test)
|
sudo chmod 777 /srv/samba/medien # Temporär volle Rechte (für Test)
|
||||||
````
|
````
|
||||||
**Schritt 2: Freigabe in smb.conf definieren**
|
**Schritt 2: Freigabe in smb.conf definieren**
|
||||||
@@ -303,7 +297,7 @@ sudo chmod 777 /srv/samba/medien # Temporär volle Rechte (für Tes
|
|||||||
sudo systemctl restart smbd
|
sudo systemctl restart smbd
|
||||||
````
|
````
|
||||||
**Schritt 4: Von Windows aus testen**
|
**Schritt 4: Von Windows aus testen**
|
||||||
> Im Explorer: \\<IP-des-Servers>\Medien eingeben.
|
> Im Explorer: ````\\<IP-des-Servers>\Medien```` eingeben.
|
||||||
|
|
||||||
### Beispiel 2: Eingeschränkte Freigabe
|
### Beispiel 2: Eingeschränkte Freigabe
|
||||||
Anwendungsfall: Vertrauliche Dokumente für bestimmte Nutzer/Gruppen.
|
Anwendungsfall: Vertrauliche Dokumente für bestimmte Nutzer/Gruppen.
|
||||||
@@ -358,7 +352,7 @@ sudo mkdir -p /srv/samba/neue_freigabe
|
|||||||
|
|
||||||
**2. Besitzer und Gruppe setzen:**
|
**2. Besitzer und Gruppe setzen:**
|
||||||
````bash
|
````bash
|
||||||
sudo chown nobody\:mitarbeiter /srv/samba/neue_freigabe
|
sudo chown nobody:mitarbeiter /srv/samba/neue_freigabe
|
||||||
````
|
````
|
||||||
|
|
||||||
**3. Rechte setzen:**
|
**3. Rechte setzen:**
|
||||||
@@ -392,7 +386,8 @@ sudo systemctl restart smbd
|
|||||||
````
|
````
|
||||||
|
|
||||||
|
|
||||||
## Häufige Fehler und Lösungen
|
## Häufige Fehler und Lösungen:
|
||||||
|
|
||||||
|Problem |Ursache |Lösung |
|
|Problem |Ursache |Lösung |
|
||||||
|------------------------------------|------------------------------------------------------|----------------------------------------------------------------------|
|
|------------------------------------|------------------------------------------------------|----------------------------------------------------------------------|
|
||||||
|Freigabe nicht sichtbar |browseable = no oder Firewall blockiert Samba. |browseable = yes setzen oder Firewall prüfen (sudo ufw allow samba). |
|
|Freigabe nicht sichtbar |browseable = no oder Firewall blockiert Samba. |browseable = yes setzen oder Firewall prüfen (sudo ufw allow samba). |
|
||||||
@@ -412,7 +407,7 @@ sudo systemctl restart smbd
|
|||||||
|````sudo smbpasswd -a nutzername```` |Nutzer zu Samba hinzufügen. |
|
|````sudo smbpasswd -a nutzername```` |Nutzer zu Samba hinzufügen. |
|
||||||
|````sudo chown besitzer:gruppe pfad```` |Besitzer und Gruppe einer Datei/eines Ordners ändern.|
|
|````sudo chown besitzer:gruppe pfad```` |Besitzer und Gruppe einer Datei/eines Ordners ändern.|
|
||||||
|````sudo chmod 755 pfad```` |Rechte auf rwxr-xr-x setzen. |
|
|````sudo chmod 755 pfad```` |Rechte auf rwxr-xr-x setzen. |
|
||||||
|````sudo chmod -R 770 pfad```` |Rechte rekursiv auf rwxrwx--- setzen. |
|
|````sudo chmod -R 770 pfad```` |Rechte rekursiv auf rwxrwx--* setzen. |
|
||||||
|````sudo adduser nutzername```` |Benutzer erstellen. |
|
|````sudo adduser nutzername```` |Benutzer erstellen. |
|
||||||
|````sudo addgroup gruppenname```` |Gruppe erstellen. |
|
|````sudo addgroup gruppenname```` |Gruppe erstellen. |
|
||||||
|````sudo usermod -aG gruppenname nutzername````|Nutzer einer Gruppe hinzufügen. |
|
|````sudo usermod -aG gruppenname nutzername````|Nutzer einer Gruppe hinzufügen. |
|
||||||
@@ -439,7 +434,7 @@ sudo ufw allow samba # Erlaubt Samba-Ports (139, 445).
|
|||||||
|
|
||||||
Logs prüfen:
|
Logs prüfen:
|
||||||
|
|
||||||
Fehler finden Sie in /var/log/samba/log.%m.
|
Fehler finden Sie in ````/var/log/samba/log.%m````.
|
||||||
|
|
||||||
|
|
||||||
## Anhang: Spezialrechte (Sticky Bit, SUID, SGID)
|
## Anhang: Spezialrechte (Sticky Bit, SUID, SGID)
|
||||||
@@ -461,10 +456,8 @@ Für fortgeschrittene Anwendungsfälle können Spezialrechte gesetzt werden:
|
|||||||
|
|
||||||
|
|
||||||
**Samba-spezifische Nutzung:**
|
**Samba-spezifische Nutzung:**
|
||||||
|
|
||||||
* **SGID** ist nützlich, um sicherzustellen, dass neue Dateien/Ordner in einer Freigabe automatisch der richtigen Gruppe gehören:
|
* **SGID** ist nützlich, um sicherzustellen, dass neue Dateien/Ordner in einer Freigabe automatisch der richtigen Gruppe gehören:
|
||||||
````bash
|
````bash
|
||||||
|
|
||||||
sudo chmod 2770 /srv/samba/dokumente # SGID + Besitzer/Gruppe: rwx
|
sudo chmod 2770 /srv/samba/dokumente # SGID + Besitzer/Gruppe: rwx
|
||||||
````
|
````
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -2,15 +2,11 @@
|
|||||||
|
|
||||||
Diese Anleitung zeigt Schritt für Schritt, wie Sie unter Linux Mint zuerst Notepad++ und anschließend 7‑Zip (Windows‑Version) mit Bottles installieren.
|
Diese Anleitung zeigt Schritt für Schritt, wie Sie unter Linux Mint zuerst Notepad++ und anschließend 7‑Zip (Windows‑Version) mit Bottles installieren.
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Voraussetzungen
|
## Voraussetzungen
|
||||||
|
|
||||||
- Installiertes Linux Mint
|
* Installiertes Linux Mint
|
||||||
- Internetzugang
|
* Internetzugang
|
||||||
- Ein normales Benutzerkonto
|
* Ein normales Benutzerkonto
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Bottles installieren
|
## Bottles installieren
|
||||||
|
|
||||||
@@ -19,8 +15,6 @@ Diese Anleitung zeigt Schritt für Schritt, wie Sie unter Linux Mint zuerst Note
|
|||||||
3. Wählen Sie **„Bottles“** (Quelle „Flathub“ oder „Flatpak“) und klicken Sie auf **Installieren**.
|
3. Wählen Sie **„Bottles“** (Quelle „Flathub“ oder „Flatpak“) und klicken Sie auf **Installieren**.
|
||||||
4. Nach der Installation finden Sie Bottles im Menü, z. B. unter **Zubehör → Bottles**.
|
4. Nach der Installation finden Sie Bottles im Menü, z. B. unter **Zubehör → Bottles**.
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Flatseal installieren und Berechtigungen für Bottles setzen
|
## Flatseal installieren und Berechtigungen für Bottles setzen
|
||||||
|
|
||||||
Damit Verknüpfungen (Desktop‑Icons und Menüeinträge) korrekt angelegt werden können, braucht Bottles Zugriff auf bestimmte Ordner.
|
Damit Verknüpfungen (Desktop‑Icons und Menüeinträge) korrekt angelegt werden können, braucht Bottles Zugriff auf bestimmte Ordner.
|
||||||
@@ -37,14 +31,15 @@ Damit Verknüpfungen (Desktop‑Icons und Menüeinträge) korrekt angelegt werde
|
|||||||
2. Wählen Sie in der linken Liste die Anwendung **„Bottles“** aus.
|
2. Wählen Sie in der linken Liste die Anwendung **„Bottles“** aus.
|
||||||
3. Gehen Sie zum Bereich **„Filesystem“** (oder „Dateisystem“).
|
3. Gehen Sie zum Bereich **„Filesystem“** (oder „Dateisystem“).
|
||||||
4. Aktivieren bzw. fügen Sie folgende Pfade hinzu:
|
4. Aktivieren bzw. fügen Sie folgende Pfade hinzu:
|
||||||
- ```xdg-data/applications```
|
* ```xdg-data/applications```
|
||||||
- ```~/.local/share/applications```
|
* ```~/.local/share/applications```
|
||||||
5. Speichern ist nicht nötig; die Änderungen gelten sofort.
|
5. Speichern ist nicht nötig; die Änderungen gelten sofort.
|
||||||
6. Schließen Sie Flatseal und starten Sie **Bottles** einmal neu.
|
6. Schließen Sie Flatseal und starten Sie **Bottles** einmal neu.
|
||||||
|
|
||||||
Damit kann Bottles jetzt Desktop‑Verknüpfungen und Menüeinträge korrekt anlegen.
|
Damit kann Bottles jetzt Desktop‑Verknüpfungen und Menüeinträge korrekt anlegen.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Notepad++
|
## Notepad++
|
||||||
|
|
||||||
### Erste Bottle für Notepad++ anlegen
|
### Erste Bottle für Notepad++ anlegen
|
||||||
@@ -61,7 +56,7 @@ Damit kann Bottles jetzt Desktop‑Verknüpfungen und Menüeinträge korrekt anl
|
|||||||
|
|
||||||
1. Öffnen Sie Ihren **Webbrowser** (z. B. Firefox).
|
1. Öffnen Sie Ihren **Webbrowser** (z. B. Firefox).
|
||||||
2. Rufen Sie die Seite auf:
|
2. Rufen Sie die Seite auf:
|
||||||
- `https://notepad-plus-plus.org`
|
* `https://notepad-plus-plus.org`
|
||||||
3. Klicken Sie auf **Download**.
|
3. Klicken Sie auf **Download**.
|
||||||
4. Laden Sie den **Windows‑Installer** (Dateiname ähnlich `npp.x.y.Installer.exe`) in den Ordner **Downloads** herunter.
|
4. Laden Sie den **Windows‑Installer** (Dateiname ähnlich `npp.x.y.Installer.exe`) in den Ordner **Downloads** herunter.
|
||||||
|
|
||||||
@@ -74,10 +69,10 @@ Damit kann Bottles jetzt Desktop‑Verknüpfungen und Menüeinträge korrekt anl
|
|||||||
3. Navigieren Sie im Dateidialog zum Ordner **Downloads**.
|
3. Navigieren Sie im Dateidialog zum Ordner **Downloads**.
|
||||||
4. Wählen Sie die Datei `npp.x.y.Installer.exe` aus und klicken Sie auf **Öffnen**.
|
4. Wählen Sie die Datei `npp.x.y.Installer.exe` aus und klicken Sie auf **Öffnen**.
|
||||||
5. Im Installationsassistenten:
|
5. Im Installationsassistenten:
|
||||||
- Sprache auswählen (z. B. Deutsch)
|
* Sprache auswählen (z. B. Deutsch)
|
||||||
- Lizenzbedingungen akzeptieren
|
* Lizenzbedingungen akzeptieren
|
||||||
- Standardpfad beibehalten
|
* Standardpfad beibehalten
|
||||||
- Komponenten unverändert lassen
|
* Komponenten unverändert lassen
|
||||||
6. Zum Schluss auf **Fertigstellen** klicken.
|
6. Zum Schluss auf **Fertigstellen** klicken.
|
||||||
|
|
||||||
Bottles legt nun in dieser Bottle einen Programmeintrag für Notepad++ an und kann – mit den eingestellten Rechten – auch Verknüpfungen anlegen.
|
Bottles legt nun in dieser Bottle einen Programmeintrag für Notepad++ an und kann – mit den eingestellten Rechten – auch Verknüpfungen anlegen.
|
||||||
@@ -90,9 +85,9 @@ Bottles legt nun in dieser Bottle einen Programmeintrag für Notepad++ an und ka
|
|||||||
2. Unter **„Programs“** (Programme) finden Sie **„Notepad++“**.
|
2. Unter **„Programs“** (Programme) finden Sie **„Notepad++“**.
|
||||||
3. Klicken Sie auf **Notepad++**, um das Programm zu starten.
|
3. Klicken Sie auf **Notepad++**, um das Programm zu starten.
|
||||||
4. Testen Sie die Funktion:
|
4. Testen Sie die Funktion:
|
||||||
- Neue Datei anlegen
|
* Neue Datei anlegen
|
||||||
- Text schreiben
|
* Text schreiben
|
||||||
- Datei in Ihrem Home‑Ordner speichern
|
* Datei in Ihrem Home‑Ordner speichern
|
||||||
|
|
||||||
Wenn die Berechtigungen korrekt gesetzt sind, können Sie in Bottles außerdem eine **Desktop‑Verknüpfung** oder einen **Menüeintrag** erstellen. Hierfür einfach auf ````...```` klicken und
|
Wenn die Berechtigungen korrekt gesetzt sind, können Sie in Bottles außerdem eine **Desktop‑Verknüpfung** oder einen **Menüeintrag** erstellen. Hierfür einfach auf ````...```` klicken und
|
||||||
|
|
||||||
@@ -112,11 +107,11 @@ Wenn die Berechtigungen korrekt gesetzt sind, können Sie in Bottles außerdem e
|
|||||||
|
|
||||||
1. Öffnen Sie den **Webbrowser**.
|
1. Öffnen Sie den **Webbrowser**.
|
||||||
2. Rufen Sie die offizielle 7‑Zip‑Seite auf:
|
2. Rufen Sie die offizielle 7‑Zip‑Seite auf:
|
||||||
- `https://www.7-zip.org`
|
* `https://www.7-zip.org`
|
||||||
3. Laden Sie die **64‑Bit‑Version für Windows** herunter (Datei ähnlich `7zxx-x64.exe`).
|
3. Laden Sie die **64‑Bit‑Version für Windows** herunter (Datei ähnlich `7zxx-x64.exe`).
|
||||||
4. Speichern Sie die Datei im Ordner **Downloads**.
|
4. Speichern Sie die Datei im Ordner **Downloads**.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
### 7‑Zip in Bottles installieren
|
### 7‑Zip in Bottles installieren
|
||||||
|
|
||||||
@@ -125,9 +120,9 @@ Wenn die Berechtigungen korrekt gesetzt sind, können Sie in Bottles außerdem e
|
|||||||
3. Wählen Sie im Ordner **Downloads** die Datei `7zxx-x64.exe` aus.
|
3. Wählen Sie im Ordner **Downloads** die Datei `7zxx-x64.exe` aus.
|
||||||
4. Bestätigen Sie mit **Öffnen**.
|
4. Bestätigen Sie mit **Öffnen**.
|
||||||
5. Im Installationsfenster von 7‑Zip:
|
5. Im Installationsfenster von 7‑Zip:
|
||||||
- Installationspfad unverändert lassen (`C:\Program Files\7-Zip`)
|
* Installationspfad unverändert lassen (`C:\Program Files\7-Zip`)
|
||||||
- Auf **Install** klicken
|
* Auf **Install** klicken
|
||||||
- Nach Abschluss auf **Close** klicken
|
* Nach Abschluss auf **Close** klicken
|
||||||
|
|
||||||
Auch hier kann Bottles mit den zuvor gesetzten Berechtigungen Verknüpfungen zu 7‑Zip anlegen.
|
Auch hier kann Bottles mit den zuvor gesetzten Berechtigungen Verknüpfungen zu 7‑Zip anlegen.
|
||||||
|
|
||||||
@@ -144,14 +139,14 @@ Auch hier kann Bottles mit den zuvor gesetzten Berechtigungen Verknüpfungen zu
|
|||||||
#### Dateien mit 7‑Zip komprimieren
|
#### Dateien mit 7‑Zip komprimieren
|
||||||
|
|
||||||
1. Im 7‑Zip‑Fenster wählen Sie oben ein Laufwerk aus, z. B. **„Z:“**.
|
1. Im 7‑Zip‑Fenster wählen Sie oben ein Laufwerk aus, z. B. **„Z:“**.
|
||||||
- „Z:“ ist normalerweise mit Ihrem Linux‑Dateisystem verbunden.
|
* „Z:“ ist normalerweise mit Ihrem Linux‑Dateisystem verbunden.
|
||||||
2. Navigieren Sie zu Ihrem **Home‑Ordner** und zu einem Testordner (z. B. `Dokumente/Test`).
|
2. Navigieren Sie zu Ihrem **Home‑Ordner** und zu einem Testordner (z. B. `Dokumente/Test`).
|
||||||
3. Markieren Sie einige Dateien, die Sie komprimieren möchten.
|
3. Markieren Sie einige Dateien, die Sie komprimieren möchten.
|
||||||
4. Klicken Sie oben auf **„Add“** (Hinzufügen).
|
4. Klicken Sie oben auf **„Add“** (Hinzufügen).
|
||||||
5. Im Dialog:
|
5. Im Dialog:
|
||||||
- Archivname eingeben, z. B. `testarchiv.7z`
|
* Archivname eingeben, z. B. `testarchiv.7z`
|
||||||
- Format wählen (z. B. `7z` oder `zip`)
|
* Format wählen (z. B. `7z` oder `zip`)
|
||||||
- Kompressionsstufe auswählen (z. B. „Normal“)
|
* Kompressionsstufe auswählen (z. B. „Normal“)
|
||||||
6. Klicken Sie auf **OK**.
|
6. Klicken Sie auf **OK**.
|
||||||
7. Das neue Archiv erscheint im gleichen Ordner.
|
7. Das neue Archiv erscheint im gleichen Ordner.
|
||||||
|
|
||||||
@@ -172,21 +167,19 @@ Auch hier kann Bottles mit den zuvor gesetzten Berechtigungen Verknüpfungen zu
|
|||||||
|
|
||||||
### Programm startet nicht
|
### Programm startet nicht
|
||||||
|
|
||||||
- Schließen Sie die Bottle und öffnen Sie sie erneut.
|
* Schließen Sie die Bottle und öffnen Sie sie erneut.
|
||||||
- Starten Sie Bottles bei Bedarf vollständig neu und versuchen Sie es noch einmal.
|
* Starten Sie Bottles bei Bedarf vollständig neu und versuchen Sie es noch einmal.
|
||||||
|
|
||||||
### Desktop‑Verknüpfung fehlt
|
### Desktop‑Verknüpfung fehlt
|
||||||
|
|
||||||
- Desktop-Verknüpfungen sind erst mal nur im Startmenü
|
* Desktop-Verknüpfungen sind erst mal nur im Startmenü
|
||||||
- Prüfen Sie in **Flatseal**, ob Bottles Zugriff auf
|
* Prüfen Sie in **Flatseal**, ob Bottles Zugriff auf
|
||||||
- `~/Desktop`
|
* `~/Desktop`
|
||||||
- `~/.local/share/applications`
|
* `~/.local/share/applications`
|
||||||
hat.
|
hat.
|
||||||
- Falls Änderungen vorgenommen wurden, muss bottles neu gestartet werden. Idealerweise reboot.
|
* Falls Änderungen vorgenommen wurden, muss bottles neu gestartet werden. Idealerweise reboot.
|
||||||
|
|
||||||
### Dateien im Linux‑System nicht sichtbar
|
### Dateien im Linux‑System nicht sichtbar
|
||||||
|
|
||||||
- Stellen Sie im 7‑Zip‑Fenster sicher, dass Sie das Laufwerk **„Z:“** gewählt haben.
|
* Stellen Sie im 7‑Zip‑Fenster sicher, dass Sie das Laufwerk **„Z:“** gewählt haben.
|
||||||
- Navigieren Sie von dort in Ihr Home‑Verzeichnis.
|
* Navigieren Sie von dort in Ihr Home‑Verzeichnis.
|
||||||
|
|
||||||
---
|
|
||||||
|
|||||||
Binary file not shown.
|
Before Width: | Height: | Size: 9.4 KiB |
332
mkdocs/docs/bonus/automatisierung-mit-ansible.md
Normal file
332
mkdocs/docs/bonus/automatisierung-mit-ansible.md
Normal file
@@ -0,0 +1,332 @@
|
|||||||
|
# Ansible-Basics-Handbuch
|
||||||
|
|
||||||
|
## 1. Einführung in Ansible
|
||||||
|
|
||||||
|
### Was ist Ansible?
|
||||||
|
Ansible ist ein **Open-Source-Tool zur Automatisierung von IT-Infrastrukturen**. Es ermöglicht die **zentrale Verwaltung, Konfiguration und Bereitstellung** von Servern, Netzwerkgeräten und Anwendungen. Ansible ist besonders nützlich, weil es:
|
||||||
|
|
||||||
|
- **Zeit spart**: Automatisiert Routineaufgaben wie Software-Installationen, Updates oder Benutzerverwaltung.
|
||||||
|
- **Fehler reduziert**: Durch die Verwendung von **Playbooks** (Skripte in YAML) werden Konfigurationen **wiederholbar und konsistent** umgesetzt.
|
||||||
|
- **Einfach zu erlernen**: Nutzt **YAML**, eine leicht lesbare Sprache, und erfordert keine Programmierkenntnisse.
|
||||||
|
- **Agentenlos arbeitet**: Benötigt auf den verwalteten Systemen **keine zusätzliche Software** – nur **SSH** ist erforderlich.
|
||||||
|
- **Flexibel einsetzbar**: Unterstützt eine Vielzahl von Systemen, darunter **Ubuntu-Server, Docker-Container und Netzwerkgeräte**.
|
||||||
|
|
||||||
|
### Typische Anwendungsfälle
|
||||||
|
- **Server-Setup**: Automatisierte Installation und Konfiguration von Servern (z. B. für Webserver oder Datenbanken).
|
||||||
|
- **Benutzerverwaltung**: Erstellen und Verwalten von Benutzern und Gruppen.
|
||||||
|
- **Sicherheitsupdates**: Regelmäßige, automatische Updates für alle Systeme.
|
||||||
|
- **Software-Bereitstellung**: Installation und Konfiguration von Programmen wie **Nginx, Samba oder Docker**.
|
||||||
|
- **Backup-Strategien**: Automatisierte Sicherung von Daten.
|
||||||
|
|
||||||
|
|
||||||
|
### Wie funktioniert Ansible?
|
||||||
|
Ansible arbeitet nach dem **Push-Prinzip**:
|
||||||
|
|
||||||
|
1. **Control Node**: Der Rechner, von dem aus Ansible gesteuert wird. (Im Kurs das Linux Mint)
|
||||||
|
2. **Managed Nodes**: Die Systeme, die von Ansible verwaltet werden. (Im Kurs der Ubuntu-Server)
|
||||||
|
3. **Inventar**: Eine Liste der verwalteten Systeme (IP-Adressen oder Hostnamen).
|
||||||
|
4. **Playbooks**: Skripte, die definieren, welche Aufgaben auf den verwalteten Systemen ausgeführt werden sollen.
|
||||||
|
|
||||||
|
**Beispiel:**
|
||||||
|
Sie möchten auf mehreren Servern **Nginx installieren** und eine **Standard-Webseite** bereitstellen. Statt auf jedem Server manuell Befehle auszuführen, schreiben Sie ein **Ansible-Playbook**, das diese Aufgabe **automatisiert und zentral** erledigt.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### Voraussetzungen
|
||||||
|
- **Ubuntu Server** (als Managed Node).
|
||||||
|
- **SSH-Zugriff** auf die Server (mit Schlüsselpaar).
|
||||||
|
- **Ansible** auf dem Control Node (Linux Mint) installiert.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 2. Vorbereitung: SSH-Key-Paar für Ansible erstellen
|
||||||
|
|
||||||
|
### Schritt 1: Schlüsselpaar auf dem Ansible-Control-Node erstellen
|
||||||
|
````bash
|
||||||
|
ssh-keygen -t ed25519 -C "ansible@control-node"
|
||||||
|
````
|
||||||
|
* Speicherort: /home/benutzer/.ssh/id_ed25519 (Standard)
|
||||||
|
* Passphrase: Optional, aber für zusätzliche Sicherheit empfohlen.
|
||||||
|
|
||||||
|
### Schritt 2: Öffentlichen Schlüssel auf die Managed Nodes übertragen
|
||||||
|
Kopieren Sie den öffentlichen Schlüssel mit folgendem Befehl auf Ihre Server:
|
||||||
|
````bash
|
||||||
|
ssh-copy-id -i ~/.ssh/id_ed25519.pub benutzer@server-ip
|
||||||
|
````
|
||||||
|
Beispiel:
|
||||||
|
````bash
|
||||||
|
ssh-copy-id -i ~/.ssh/id_ed25519.pub meisterkurs@192.168.100.250
|
||||||
|
````
|
||||||
|
Test der Verbindung:
|
||||||
|
````bash
|
||||||
|
ssh Meisterkurs@192.168.100.250
|
||||||
|
````
|
||||||
|
Die Anmeldung sollte jetzt **ohne Passwortabfrage** möglich sein.
|
||||||
|
|
||||||
|
## 3. Ansible installieren und konfigurieren
|
||||||
|
|
||||||
|
### Ansible auf dem Control Node installieren
|
||||||
|
Installieren Sie Ansible mit den folgenden Befehlen:
|
||||||
|
````bash
|
||||||
|
sudo apt update
|
||||||
|
sudo apt install ansible -y
|
||||||
|
````
|
||||||
|
### Inventar-Datei erstellen
|
||||||
|
Legen Sie eine Inventar-Datei an, z. B. ````/etc/ansible/hosts````, und tragen Sie Ihre Server ein:
|
||||||
|
````yaml
|
||||||
|
ubuntu_servers:
|
||||||
|
hosts:
|
||||||
|
sv1:
|
||||||
|
ansible_host: 192.168.100.250
|
||||||
|
ansible_user: meisterkurs
|
||||||
|
ansible_become: true
|
||||||
|
ansible_become_method: sudo
|
||||||
|
ansible_become_password: passw0rd#
|
||||||
|
````
|
||||||
|
### Verbindung testen
|
||||||
|
|
||||||
|
````bash
|
||||||
|
ansible -m ping all
|
||||||
|
````
|
||||||
|
|
||||||
|
> Erwartete Ausgabe:
|
||||||
|
````json
|
||||||
|
"sv1": {
|
||||||
|
"ping": "pong"
|
||||||
|
}
|
||||||
|
````
|
||||||
|
|
||||||
|
## 4. System-Updates mit Ansible durchführen
|
||||||
|
### Playbook: 01-playbook-update_system.yml
|
||||||
|
Erstellen Sie eine Datei namens 01-playbook-update_system.yml mit folgendem Inhalt:
|
||||||
|
````yaml
|
||||||
|
---
|
||||||
|
- name: Ubuntu Updates
|
||||||
|
hosts: ubuntu_servers # Zielgruppe: Alle Ubuntu-Server im Inventar
|
||||||
|
become: yes # Root-Rechte für Paketverwaltung
|
||||||
|
tasks:
|
||||||
|
- name: System-Paketlisten aktualisieren
|
||||||
|
apt:
|
||||||
|
update_cache: yes
|
||||||
|
# Aktualisiert die Paketlisten, um die neuesten Versionen zu erhalten
|
||||||
|
|
||||||
|
- name: Alle Pakete auf den neuesten Stand bringen
|
||||||
|
apt:
|
||||||
|
upgrade: dist # Führt ein Distribution-Upgrade durch
|
||||||
|
autoremove: yes # Entfernt nicht mehr benötigte Pakete
|
||||||
|
# Installiert alle verfügbaren Updates und bereinigt das System
|
||||||
|
|
||||||
|
- name: Überprüfen, ob ein Neustart erforderlich ist
|
||||||
|
stat:
|
||||||
|
path: /var/run/reboot-required
|
||||||
|
register: reboot_required
|
||||||
|
# Prüft, ob ein Neustart nach den Updates erforderlich ist
|
||||||
|
|
||||||
|
- name: Hinweis auf Neustart ausgeben (falls erforderlich)
|
||||||
|
debug:
|
||||||
|
msg: "Ein Neustart des Servers {{ inventory_hostname }} ist erforderlich!"
|
||||||
|
when: reboot_required.stat.exists
|
||||||
|
# Zeigt eine Warnung an, wenn ein Neustart erforderlich ist
|
||||||
|
|
||||||
|
````
|
||||||
|
|
||||||
|
Führen Sie das Playbook aus:
|
||||||
|
````bash
|
||||||
|
ansible-playbook 01-playbook-update_system.yml
|
||||||
|
````
|
||||||
|
|
||||||
|
## 5. Programm installieren und konfigurieren (Beispiel: Nginx)
|
||||||
|
|
||||||
|
### Playbook: 02-playbook-install-nginx.yaml
|
||||||
|
|
||||||
|
Erstellen Sie Datei 01-playbook-install.nginx.yaml
|
||||||
|
|
||||||
|
````yaml
|
||||||
|
---
|
||||||
|
- name: Installiere nginx auf einstellbarem Port
|
||||||
|
hosts: ubuntu_servers
|
||||||
|
become: yes
|
||||||
|
vars:
|
||||||
|
nginx_port: 5000 # Port, auf dem Nginx laufen soll
|
||||||
|
example_page_content: |
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>Nginx auf Port 5000</title>
|
||||||
|
<style>
|
||||||
|
body { font-family: Arial, sans-serif; text-align: center; margin-top: 50px; }
|
||||||
|
h1 { color: #0078d7; }
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<h1>Willkommen auf der Nginx-Beispielseite!</h1>
|
||||||
|
<p>Diese Seite wird auf <strong>Port {{ nginx_port }}</strong> bereitgestellt.</p>
|
||||||
|
<p>Ansible-Playbook erfolgreich ausgeführt!</p>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
|
||||||
|
tasks:
|
||||||
|
- name: Nginx installieren
|
||||||
|
apt:
|
||||||
|
name: nginx
|
||||||
|
state: present
|
||||||
|
# Installiert Nginx, falls nicht bereits vorhanden
|
||||||
|
|
||||||
|
- name: Nginx-Konfiguration für Port 5000 anpassen
|
||||||
|
template:
|
||||||
|
src: nginx.conf.j2 # Template-Datei für die Nginx-Konfiguration
|
||||||
|
dest: /etc/nginx/sites-available/default
|
||||||
|
notify: Nginx neu starten
|
||||||
|
# Ersetzt die Standardkonfiguration von Nginx durch unsere angepasste Version
|
||||||
|
|
||||||
|
- name: Beispiel-HTML-Seite bereitstellen
|
||||||
|
copy:
|
||||||
|
dest: /var/www/nginx/index.html
|
||||||
|
content: "{{ example_page_content }}"
|
||||||
|
notify: Nginx neu starten
|
||||||
|
# Kopiert die Beispiel-HTML-Seite in das Webverzeichnis von Nginx
|
||||||
|
|
||||||
|
- name: Nginx-Dienst starten und aktivieren
|
||||||
|
service:
|
||||||
|
name: nginx
|
||||||
|
state: started
|
||||||
|
enabled: yes
|
||||||
|
# Startet Nginx und aktiviert den Autostart beim Systemstart
|
||||||
|
|
||||||
|
- name: Firewall für Port 5000 öffnen (falls UFW aktiv)
|
||||||
|
ufw:
|
||||||
|
rule: allow
|
||||||
|
port: "{{ nginx_port }}"
|
||||||
|
proto: tcp
|
||||||
|
when: "'ufw' in ansible_facts.packages"
|
||||||
|
# Öffnet den Port 5000 in der Firewall, falls UFW installiert ist
|
||||||
|
|
||||||
|
- name: Überprüfen, ob Nginx auf Port 5000 erreichbar ist
|
||||||
|
uri:
|
||||||
|
url: "http://localhost:{{ nginx_port }}"
|
||||||
|
return_content: yes
|
||||||
|
register: nginx_status
|
||||||
|
until: nginx_status.status == 200
|
||||||
|
retries: 5
|
||||||
|
delay: 10
|
||||||
|
# Prüft, ob Nginx auf dem konfigurierten Port erreichbar ist
|
||||||
|
# - retries: 5: Wiederholt die Prüfung 5 Mal, falls der Port noch nicht erreichbar ist
|
||||||
|
# - delay: 10: Wartezeit von 10 Sekunden zwischen den Versuchen
|
||||||
|
|
||||||
|
- name: Statusmeldung ausgeben
|
||||||
|
debug:
|
||||||
|
msg: "Nginx ist erfolgreich auf Port {{ nginx_port }} gestartet und erreichbar unter http://{{ ansible_host }}:{{ nginx_port }}"
|
||||||
|
# Zeigt eine Erfolgsmeldung mit der URL zur Beispielseite an
|
||||||
|
|
||||||
|
|
||||||
|
handlers:
|
||||||
|
- name: Nginx neu starten
|
||||||
|
service:
|
||||||
|
name: nginx
|
||||||
|
state: restarted
|
||||||
|
# Startet Nginx neu, um Änderungen an der Konfiguration zu übernehmen
|
||||||
|
````
|
||||||
|
#### Was sind Handler?
|
||||||
|
> Handler in Ansible sind spezielle Aufgaben, die nur dann ausgeführt werden, wenn sie von einer anderen Aufgabe explizit benachrichtigt (notify) werden. Sie werden typischerweise für Dienst-Neustarts oder Konfigurationsänderungen verwendet, die nur dann notwendig sind, wenn sich etwas geändert hat.
|
||||||
|
|
||||||
|
|
||||||
|
### Nginx-Konfigurationsdatei (nginx.conf.j2)
|
||||||
|
|
||||||
|
Im Script wird eine Kopierquelle für die konfiguration des Servers angegeben. Diese darf direkt daneben angelegt werden: ````nginx.conf.j2````
|
||||||
|
|
||||||
|
````nginx
|
||||||
|
server {
|
||||||
|
listen {{ nginx_port }} default_server;
|
||||||
|
listen [::]:{{ nginx_port }} default_server;
|
||||||
|
|
||||||
|
root /var/www/nginx;
|
||||||
|
index index.html;
|
||||||
|
|
||||||
|
server_name _;
|
||||||
|
|
||||||
|
location / {
|
||||||
|
try_files $uri $uri/ =404;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
````
|
||||||
|
|
||||||
|
|
||||||
|
Ausführung des Playbooks:
|
||||||
|
````bash
|
||||||
|
ansible-playbook 01-playbook-install.nginx.yaml
|
||||||
|
````
|
||||||
|
|
||||||
|
### Nach der Installation:
|
||||||
|
Öffnen Sie einen Browser und verbinden Sie sich mit port 5000
|
||||||
|
> Sie sollten die Beispielseite sehen.
|
||||||
|
Port-Überprüfung:
|
||||||
|
Das Playbook prüft automatisch, ob Nginx auf Port 5000 erreichbar ist, und gibt eine Erfolgsmeldung aus.
|
||||||
|
|
||||||
|
## 6. Playbook: Benutzer und Gruppen verwalten
|
||||||
|
````03-playbook-manage-users.yml````
|
||||||
|
````yaml
|
||||||
|
---
|
||||||
|
- name: Benutzer und Gruppen auf den Managed Nodes verwalten
|
||||||
|
hosts: sv1
|
||||||
|
become: yes
|
||||||
|
|
||||||
|
vars:
|
||||||
|
users:
|
||||||
|
- name: dbecker
|
||||||
|
groups: ["Geschäftsleitung"]
|
||||||
|
- name: spoller
|
||||||
|
groups: ["Projektleitung"]
|
||||||
|
groups:
|
||||||
|
- Geschäftsleitung
|
||||||
|
- Projektleitung
|
||||||
|
|
||||||
|
tasks:
|
||||||
|
- name: Gruppen erstellen
|
||||||
|
group:
|
||||||
|
name: "{{ item }}"
|
||||||
|
state: present
|
||||||
|
loop: "{{ groups }}"
|
||||||
|
# Erstellt die in der Variable "groups" definierten Gruppen
|
||||||
|
|
||||||
|
- name: Benutzer erstellen
|
||||||
|
user:
|
||||||
|
name: "{{ item.name }}"
|
||||||
|
groups: "{{ item.groups | join(',') }}"
|
||||||
|
shell: /bin/bash
|
||||||
|
loop: "{{ users }}"
|
||||||
|
# Erstellt die in der Variable "users" definierten Benutzer
|
||||||
|
# - groups: Fügt die Benutzer den angegebenen Gruppen hinzu
|
||||||
|
# - shell: Setzt die Standard-Shell auf Bash
|
||||||
|
````
|
||||||
|
|
||||||
|
## 7. Playbook: Automatische Updates einrichten
|
||||||
|
````04-playbook-auto-update.yml````
|
||||||
|
|
||||||
|
````yaml
|
||||||
|
---
|
||||||
|
- name: Automatische Updates auf den Managed Nodes einrichten
|
||||||
|
hosts: ubuntu_servers
|
||||||
|
become: yes
|
||||||
|
|
||||||
|
tasks:
|
||||||
|
- name: unattended-upgrades installieren
|
||||||
|
apt:
|
||||||
|
name: unattended-upgrades
|
||||||
|
state: present
|
||||||
|
# Installiert das Paket für automatische Updates
|
||||||
|
|
||||||
|
- name: Automatische Updates aktivieren
|
||||||
|
copy:
|
||||||
|
dest: /etc/apt/apt.conf.d/20auto-upgrades
|
||||||
|
content: |
|
||||||
|
APT::Periodic::Update-Package-Lists "1";
|
||||||
|
APT::Periodic::Unattended-Upgrade "1";
|
||||||
|
# Konfiguriert die automatische Aktualisierung der Paketlisten und Installation von Updates
|
||||||
|
````
|
||||||
|
## 8. Zusammenfassung
|
||||||
|
Was wurde erreicht?
|
||||||
|
|
||||||
|
* SSH-Key-Authentifizierung für sichere Ansible-Kommunikation.
|
||||||
|
* Automatisierte System-Updates und Programm-Installation.
|
||||||
|
* Benutzer- und Gruppenverwaltung.
|
||||||
|
* Automatische Sicherheitsupdates.
|
||||||
256
mkdocs/docs/bonus/docker-grundlagen.md
Normal file
256
mkdocs/docs/bonus/docker-grundlagen.md
Normal file
@@ -0,0 +1,256 @@
|
|||||||
|
# Docker-Grundlagen
|
||||||
|
## Virtuelle Maschinen (VMs) vs. Container
|
||||||
|
|
||||||
|
|Kriterium |Virtuelle Maschine (VM) |Container |
|
||||||
|
|-------------------|----------------------------------------------|------------------------------------|
|
||||||
|
|Isolation |Vollständige OS-Isolation (Hardware-Ebene) |Prozess-Isolation (OS-Ebene) |
|
||||||
|
|Ressourcenverbrauch|Hoch (eigenes OS pro VM) |Gering (teilt Host-OS-Kernel) |
|
||||||
|
|Startzeit |Minuten |Sekunden |
|
||||||
|
|Portabilität |Schwerer (große Images) |Leicht (kleine Images) |
|
||||||
|
|Anwendungsfall |Vollständige Systeme (z. B. Windows auf Linux)|Mikroservices, Web-Apps, Datenbanken|
|
||||||
|
|
||||||
|
**Fazit**: Container sind ideal für schnelle, ressourcenschonende Bereitstellung von Anwendungen.
|
||||||
|
## Docker installieren
|
||||||
|
|
||||||
|
[Immer aktuelles Setup anschauen](https://docs.docker.com/engine/install/ubuntu/)
|
||||||
|
|
||||||
|
````bash
|
||||||
|
# Alte Docker-Versionen entfernen
|
||||||
|
sudo apt removes docker.io docker-compose docker-compose-v2 docker-doc podman-docker containerd runc
|
||||||
|
# Abhängigkeiten installieren
|
||||||
|
sudo apt update
|
||||||
|
sudo apt install -y ca-certificates curl gnupg
|
||||||
|
|
||||||
|
# Docker-Repository hinzufügen
|
||||||
|
sudo install -m 0755 -d /etc/apt/keyrings
|
||||||
|
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
|
||||||
|
sudo chmod a+r /etc/apt/keyrings/docker.asc
|
||||||
|
sudo tee /etc/apt/sources.list.d/docker.sources <<EOF
|
||||||
|
Types: deb
|
||||||
|
URIs: https://download.docker.com/linux/ubuntu
|
||||||
|
Suites: $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}")
|
||||||
|
Components: stable
|
||||||
|
Signed-By: /etc/apt/keyrings/docker.asc
|
||||||
|
EOF
|
||||||
|
|
||||||
|
# Docker installieren
|
||||||
|
sudo apt update
|
||||||
|
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
|
||||||
|
|
||||||
|
# Docker-Dienst starten und aktivieren
|
||||||
|
sudo systemctl enable docker
|
||||||
|
sudo systemctl start docker
|
||||||
|
|
||||||
|
# Benutzer zur Docker-Gruppe hinzufügen (für Passwortlosigkeit)
|
||||||
|
sudo usermod -aG docker $USER
|
||||||
|
newgrp docker # Aktuelle Shell aktualisieren
|
||||||
|
````
|
||||||
|
|
||||||
|
## Erste Schritte: "Hello World" mit Docker
|
||||||
|
Fertigen Container ausprobieren:
|
||||||
|
````bash
|
||||||
|
docker run hello-world
|
||||||
|
````
|
||||||
|
> Ausgabe:
|
||||||
|
````
|
||||||
|
Hello from Docker!
|
||||||
|
This message shows that your installation appears to be working correctly.
|
||||||
|
...
|
||||||
|
````
|
||||||
|
Tatsächlich erklärt der Container selbst was er getan hat.
|
||||||
|
* ````docker run````: Führt einen Container aus.
|
||||||
|
* ````hello-world````: Offizielles Test-Image von Docker Hub.
|
||||||
|
|
||||||
|
## Eigenes Dockerfile für einen Webserver (Nginx)
|
||||||
|
|
||||||
|
### Dockerfile
|
||||||
|
Erstellen Sie eine Datei namens ````Dockerfile```` mit folgendem Inhalt:
|
||||||
|
````dockerfile
|
||||||
|
# Basis-Image: Offizielles Nginx-Image
|
||||||
|
FROM nginx:latest
|
||||||
|
|
||||||
|
# Standard-HTML-Seite ersetzen
|
||||||
|
COPY index.html /usr/share/nginx/html
|
||||||
|
|
||||||
|
# Port 80 freigeben
|
||||||
|
EXPOSE 80
|
||||||
|
````
|
||||||
|
### HTML-Datei bereitstellen
|
||||||
|
Erstellen Sie eine Datei ````index.html```` im selben Verzeichnis:
|
||||||
|
````html
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>Meisterkurs IT</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<h1>Willkommen zum Docker-Webserver!</h1>
|
||||||
|
<p>Dieser Container läuft auf Port 80.</p>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
````
|
||||||
|
###
|
||||||
|
Image bauen und Container starten
|
||||||
|
````bash
|
||||||
|
# Image aus dem Dockerfile bauen
|
||||||
|
docker build -t mein-nginx .
|
||||||
|
|
||||||
|
# Container im Hintergrund starten und Port 8080 des Hosts auf Port 80 des Containers mappen
|
||||||
|
docker run -d -p 8080:80 --name mein-webserver mein-nginx
|
||||||
|
````
|
||||||
|
|
||||||
|
### Testen
|
||||||
|
|
||||||
|
Öffnen Sie einen Browser und rufen Sie ````http://<Ihre-Server-IP>:8080```` auf.
|
||||||
|
Sie sollten die HTML-Seite sehen.
|
||||||
|
|
||||||
|
## Docker Compose für BackupPC
|
||||||
|
|
||||||
|
Warum Docker Compose?
|
||||||
|
|
||||||
|
* Vereinfacht das Management mehrerer Container
|
||||||
|
* Definiert alle Dienste in einer YAML-Datei.
|
||||||
|
### Beispiel: backuppc/docker-compose.yml für BackupPC
|
||||||
|
compose-Dateien immer in einem Ordner!
|
||||||
|
|
||||||
|
````yaml
|
||||||
|
services:
|
||||||
|
backuppc:
|
||||||
|
image: adferrand/backuppc
|
||||||
|
container_name: backuppc
|
||||||
|
restart: unless-stopped
|
||||||
|
ports:
|
||||||
|
- "8081:80" # Webinterface auf Port 8081
|
||||||
|
volumes:
|
||||||
|
- /etc/localtime:/etc/localtime:ro # Uhrzeit vom Host
|
||||||
|
- /etc/timezone:/etc/timezone:ro # Zeitzone vom Host
|
||||||
|
- ./etc:/etc/backuppc # Einstellungen
|
||||||
|
- ./home:/home/backuppc # "Userdata" von backuppc. z.B. ssh-keys
|
||||||
|
- ./backups:/data/backuppc # Das Backupverzeichnis
|
||||||
|
environment:
|
||||||
|
- BACKUPC_WEB_USER=meisterkurs
|
||||||
|
- BACKUPC_WEB_PASSWORD=passw0rd#
|
||||||
|
- BACKUPPC_UUID=100
|
||||||
|
- BACKUPPC_GUID=101
|
||||||
|
|
||||||
|
````
|
||||||
|
### Projekt starten
|
||||||
|
````bash
|
||||||
|
# Docker Compose-Projekt starten
|
||||||
|
docker compose up -d
|
||||||
|
|
||||||
|
# Status prüfen
|
||||||
|
docker compose ps
|
||||||
|
|
||||||
|
# Log des Container anzeigen
|
||||||
|
docker compose logs
|
||||||
|
````
|
||||||
|
|
||||||
|
### Zugriff auf BackupPC
|
||||||
|
|
||||||
|
Öffnen Sie ````http://<Ihre-Server-IP>:8081```` im Browser.
|
||||||
|
Anmeldung mit ````meisterkurs```` und ````passw0rd````.
|
||||||
|
|
||||||
|
## Docker-Grundlagenbefehle
|
||||||
|
|
||||||
|
### Container-Verwaltung
|
||||||
|
|Befehl |Beschreibung |
|
||||||
|
|--------------------------------|-----------------------------------------|
|
||||||
|
|docker ps |Liste aller laufenden Container anzeigen.|
|
||||||
|
|docker ps -a |Liste aller Container (auch gestoppte) anzeigen.|
|
||||||
|
|docker start <Container> |Einen gestoppten Container starten. |
|
||||||
|
|docker stop <Container> |Einen laufenden Container stoppen. |
|
||||||
|
|docker restart <Container> |Einen Container neu starten. |
|
||||||
|
|docker rm <Container> |Einen gestoppten Container entfernen. |
|
||||||
|
|docker rm -f <Container> |Einen Container erzwingen zu entfernen (auch laufende).|
|
||||||
|
|docker logs <Container> |Logs eines Containers anzeigen. |
|
||||||
|
|docker logs -f <Container> |Logs eines Containers live verfolgen. |
|
||||||
|
|docker exec -it <Container> bash|Eine interaktive Shell im laufenden Container öffnen.|
|
||||||
|
|docker inspect <Container> |Detaillierte Informationen zu einem Container anzeigen (z. B. IP, Volumes).|
|
||||||
|
|
||||||
|
### Image-Verwaltung
|
||||||
|
|
||||||
|
|Befehl |Beschreibung |
|
||||||
|
|------------------------|--------------------------------------------------------------|
|
||||||
|
|docker images |Liste aller lokalen Images anzeigen. |
|
||||||
|
|docker pull <Image> |Ein Image von Docker Hub herunterladen. |
|
||||||
|
|docker rmi <Image> |Ein Image entfernen. |
|
||||||
|
|docker rmi -f <Image> |Ein Image erzwingen zu entfernen. |
|
||||||
|
|docker build -t <Name> .|Ein Image aus einem Dockerfile im aktuellen Verzeichnis bauen.|
|
||||||
|
|docker push <Image> |Ein Image zu Docker Hub oder einer Registry hochladen. |
|
||||||
|
|
||||||
|
### Docker Compose-Befehle
|
||||||
|
|
||||||
|
|Befehl |Beschreibung |
|
||||||
|
|--------------------------------|---------------------------------------------------------------------------|
|
||||||
|
|docker compose up -d |Ein Projekt im Hintergrund starten (Detached-Modus). |
|
||||||
|
|docker compose up --build |Projekt starten und Images neu bauen (falls Änderungen im Dockerfile). |
|
||||||
|
|docker compose down |Ein Projekt komplett stoppen und entfernen (Container, Netzwerke, Volumes).|
|
||||||
|
|docker compose ps |Status aller Container im Projekt anzeigen. |
|
||||||
|
|docker compose logs |Logs aller Container im Projekt anzeigen. |
|
||||||
|
|docker compose logs -f |Logs aller Container live verfolgen. |
|
||||||
|
|docker compose logs <Service> |Logs eines bestimmten Services anzeigen. |
|
||||||
|
|docker compose restart <Service>|Einen bestimmten Service im Projekt neu starten. |
|
||||||
|
|docker compose build |Images für alle Services im Projekt neu bauen. |
|
||||||
|
|docker compose pull |Alle Images für das Projekt neu herunterladen. |
|
||||||
|
|docker compose config |Die Konfiguration des Projekts validieren (z. B. Syntax prüfen). |
|
||||||
|
|docker compose top |Prozesse in den Containern des Projekts anzeigen. |
|
||||||
|
|
||||||
|
### Volumes und Netzwerke
|
||||||
|
|
||||||
|
|Befehl |Beschreibung |
|
||||||
|
|---------------------------------|----------------------------------------------------------------|
|
||||||
|
|docker volume ls |Liste aller Docker-Volumes anzeigen. |
|
||||||
|
|docker volume inspect <Volume> |Details zu einem Volume anzeigen (z. B. Mountpunkt). |
|
||||||
|
|docker volume rm <Volume> |Ein Volume entfernen. |
|
||||||
|
|docker network ls |Liste aller Docker-Netzwerke anzeigen. |
|
||||||
|
|docker network inspect <Netzwerk>|Details zu einem Netzwerk anzeigen (z. B. verbundene Container).|
|
||||||
|
|
||||||
|
### Praktische Beispiele:
|
||||||
|
|
||||||
|
#### BackupPC-Projekt neu starten
|
||||||
|
````bash
|
||||||
|
# Projekt stoppen und entfernen
|
||||||
|
docker compose down
|
||||||
|
|
||||||
|
# Projekt mit neuem Passwort starten
|
||||||
|
docker compose up -d
|
||||||
|
````
|
||||||
|
|
||||||
|
#### Logs von BackupPC live verfolgen
|
||||||
|
````bash
|
||||||
|
docker compose logs -f backuppc
|
||||||
|
````
|
||||||
|
|
||||||
|
#### Shell im BackupPC-Container öffnen
|
||||||
|
````bash
|
||||||
|
docker exec -it backuppc bash
|
||||||
|
````
|
||||||
|
|
||||||
|
#### BackupPC-Image neu bauen (nach Änderungen am Dockerfile)
|
||||||
|
````bash
|
||||||
|
docker compose build backuppc
|
||||||
|
docker compose up -d
|
||||||
|
````
|
||||||
|
#### Alle Images und Container bereinigen
|
||||||
|
````bash
|
||||||
|
# Alle gestoppten Container entfernen
|
||||||
|
docker container prune
|
||||||
|
|
||||||
|
# Alle nicht verwendeten Images entfernen
|
||||||
|
docker image prune -a
|
||||||
|
|
||||||
|
# Alle nicht verwendeten Volumes entfernen
|
||||||
|
docker volume prune
|
||||||
|
````
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -104,7 +104,3 @@ Eintragen (Beispiel):
|
|||||||
**Hinweis:**\
|
**Hinweis:**\
|
||||||
Bei Fehlern prüfen Sie die Logdateien (/var/log/sssd/, /var/log/auth.log,
|
Bei Fehlern prüfen Sie die Logdateien (/var/log/sssd/, /var/log/auth.log,
|
||||||
/var/log/syslog) und die Netzwerkkonfiguration.
|
/var/log/syslog) und die Netzwerkkonfiguration.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
[PDF herunterladen](linux-als-ad-client.pdf){ .md-button }
|
|
||||||
|
|||||||
@@ -102,18 +102,19 @@ sudo nano /etc/netplan/01-tnXX-netz.yaml
|
|||||||
# This file describes the network interfaces available on your system
|
# This file describes the network interfaces available on your system
|
||||||
# For more information, see netplan(5).
|
# For more information, see netplan(5).
|
||||||
network:
|
network:
|
||||||
|
version: 2
|
||||||
ethernets:
|
ethernets:
|
||||||
enp0s3:
|
enp0s3:
|
||||||
addresses: [192.168.2XX.250/24]
|
dhcp4: false
|
||||||
routes:
|
addresses:
|
||||||
- to: 0.0.0.0/0
|
- 192.168.2XX.250/24
|
||||||
via: 192.168.2XX.1
|
routes:
|
||||||
dhcp4: no
|
- to: default
|
||||||
nameservers:
|
via: 192.168.2XX.1
|
||||||
addresses: \[192.168.2.XX.250,1.1.1.1\]
|
nameservers:
|
||||||
search: \[tnXX.ito\]
|
addresses: [192.168.2XX.250, 1.1.1.1]
|
||||||
optional: true
|
search: [tnXX.ito]
|
||||||
version: 2
|
optional: true
|
||||||
```
|
```
|
||||||
Die Anpassung des Hostnamen wurde auch kompatibel mit der Cloud-Config
|
Die Anpassung des Hostnamen wurde auch kompatibel mit der Cloud-Config
|
||||||
gemacht daher neuer Vorgehensweise:
|
gemacht daher neuer Vorgehensweise:
|
||||||
@@ -189,7 +190,7 @@ sudo systemctl restart chrony
|
|||||||
```
|
```
|
||||||
Testen ob der Dienst aktiv ist:
|
Testen ob der Dienst aktiv ist:
|
||||||
```bash
|
```bash
|
||||||
ss -tulpen:
|
ss -tulpen
|
||||||
```
|
```
|
||||||
> udp 0 0 0.0.0.0:123 0.0.0.0:\* 0 22432 1180/chronyd
|
> udp 0 0 0.0.0.0:123 0.0.0.0:\* 0 22432 1180/chronyd
|
||||||
|
|
||||||
@@ -221,7 +222,7 @@ Fertig.
|
|||||||
```bash
|
```bash
|
||||||
sudo systemctl enable --now samba-ad-dc
|
sudo systemctl enable --now samba-ad-dc
|
||||||
```
|
```
|
||||||
Samba nur auf den angegeben Netzwerkkarten starten, auf diese Weise gibt es keine Konflikte mit dem internen Nameserver edit in /etc/samba/smb.conf unter global
|
Samba nur auf den angegeben Netzwerkkarten starten, auf diese Weise gibt es keine Konflikte mit dem internen Nameserver edit in ````/etc/samba/smb.conf```` unter global
|
||||||
```bash
|
```bash
|
||||||
bind interfaces only = yes
|
bind interfaces only = yes
|
||||||
interfaces = lo enp0s3
|
interfaces = lo enp0s3
|
||||||
@@ -260,8 +261,7 @@ sudo netplan apply
|
|||||||
Internen Resolver übernehmen
|
Internen Resolver übernehmen
|
||||||
```bash
|
```bash
|
||||||
sudo rm /etc/resolv.conf
|
sudo rm /etc/resolv.conf
|
||||||
echo -e \"nameserver 127.0.0.1\\nsearch TNXX.ITO\" \| sudo tee
|
echo -e \"nameserver 127.0.0.1\\nsearch TNXX.ITO\" \| sudo tee /etc/resolv.conf
|
||||||
/etc/resolv.conf
|
|
||||||
```
|
```
|
||||||
|
|
||||||
## Überprüfen der DNS-Konfiguration
|
## Überprüfen der DNS-Konfiguration
|
||||||
@@ -503,6 +503,3 @@ nt acl support = yes
|
|||||||
|
|
||||||
Jetzt kann die Freigabe vom Admin mit den Jeweiligen User-Gruppenrechten
|
Jetzt kann die Freigabe vom Admin mit den Jeweiligen User-Gruppenrechten
|
||||||
gesetzt werden. Hierfür in einer Windows-Umgebung die Eigenschaften des Netzlaufwerkes anpassen.
|
gesetzt werden. Hierfür in einer Windows-Umgebung die Eigenschaften des Netzlaufwerkes anpassen.
|
||||||
|
|
||||||
|
|
||||||
[PDF herunterladen](ubuntu-ad-dc.pdf){ .md-button }
|
|
||||||
|
|||||||
BIN
mkdocs/docs/image.png
Normal file
BIN
mkdocs/docs/image.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 187 KiB |
@@ -1,22 +1,26 @@
|
|||||||
site_name: Linux Grundlagen MK-IT
|
site_name: Linux Grundlagen Meisterkurs IT
|
||||||
|
site_author: Florian Hensel
|
||||||
|
|
||||||
nav:
|
nav:
|
||||||
- Home: index.md
|
- Home: index.md
|
||||||
- Grundlagen:
|
- Grundlagen:
|
||||||
- Einstieg in Linux-Desktop: basics/Einstieg_in_Linux-Desktop.md
|
- Einstieg in Linux-Desktop: basics/Einstieg_in_Linux-Desktop.md
|
||||||
- Remotezugriff einrichten: basics/Remotezugriff_einrichten.md
|
- Remotezugriff einrichten: basics/Remotezugriff_einrichten.md
|
||||||
- Kleines Linux-Projekt: basics/Mein_erstes_kleines_Linux-Projekt.md
|
- Kleines Linux-Projekt: basics/Mein_erstes_kleines_Linux-Projekt.md
|
||||||
- Windows-Programme unter Linux: basics/Windows-Programme unter Linux.md
|
- Windows-Programme unter Linux: basics/Windows_Programme_unter_Linux.md
|
||||||
- Grundlagen der Konsole: basics/Grundlagen der Konsole.md
|
- Grundlagen der Konsole: basics/Grundlagen_der_Konsole.md
|
||||||
- Automatisierung mit cron und systemd: basics/Automatisierung mit cron und systemd.m
|
- Automatisierung mit cron und systemd: basics/Automatisierung_mit_cron_und_systemd.md
|
||||||
- Windows-Freigaben für Linux-Einsteiger: basics/Windows_Freigaben_fuer_Linux-Einsteiger.md
|
- Windows-Freigaben für Linux-Einsteiger: basics/Windows_Freigaben_fuer_Linux-Einsteiger.md
|
||||||
- Praxisprojekt Medien-NAS für KODI: basics/Praxisprojekt_Medien-NAS_fuer_KODI.md
|
- Praxisprojekt Medien-NAS für KODI: basics/Praxisprojekt_Medien-NAS_fuer_KODI.md
|
||||||
- Linux im Unternehmen:
|
- Linux im Unternehmen:
|
||||||
|
- Ubuntu Server installieren und konfigurieren: Linux_Unternehmen/Server_Installation.md
|
||||||
- Praxisprojekt Freigaben im Unternehmen: Linux_Unternehmen/Praxisprojekt_Freigaben_im_Unternehmen.md
|
- Praxisprojekt Freigaben im Unternehmen: Linux_Unternehmen/Praxisprojekt_Freigaben_im_Unternehmen.md
|
||||||
- Nextcloud mit LDAP-Anbindung: Linux_Unternehmen/nextcloud-ldap.md
|
- Nextcloud mit LDAP-Anbindung: Linux_Unternehmen/nextcloud-ldap.md
|
||||||
- Bonuskapitel:
|
- Bonuskapitel:
|
||||||
- Linux als Active Directory Server: bonus/linux-als-ad-server.md
|
- Linux als Active Directory Server: bonus/linux-als-ad-server.md
|
||||||
- Linux als Client in Active Directory: bonus/linux-als-ad-client.md
|
- Linux als Client in Active Directory: bonus/linux-als-ad-client.md
|
||||||
|
- Automatisierung mit Ansible: bonus/automatisierung-mit-ansible.md
|
||||||
|
- Docker Grundlagen: bonus/docker-grundlagen.md
|
||||||
# Theme
|
# Theme
|
||||||
theme:
|
theme:
|
||||||
logo: assets/Logo.png
|
logo: assets/Logo.png
|
||||||
@@ -50,4 +54,26 @@ markdown_extensions:
|
|||||||
# permalink: true
|
# permalink: true
|
||||||
- pymdownx.highlight
|
- pymdownx.highlight
|
||||||
- pymdownx.superfences
|
- pymdownx.superfences
|
||||||
|
- admonition
|
||||||
|
- pymdownx.details
|
||||||
|
- pymdownx.superfences
|
||||||
|
- pymdownx.critic
|
||||||
|
- pymdownx.caret
|
||||||
|
- pymdownx.keys
|
||||||
|
- pymdownx.mark
|
||||||
|
- pymdownx.tilde
|
||||||
|
plugins:
|
||||||
|
- offline
|
||||||
|
- search:
|
||||||
|
- optimize:
|
||||||
|
concurrency: 2
|
||||||
|
- to-pdf:
|
||||||
|
enabled: true
|
||||||
|
output_path: pdf/linux-grundlagen-mk-it.pdf
|
||||||
|
author: "Florian Hensel"
|
||||||
|
toc_level: 2
|
||||||
|
toc_title: "Inhaltsverzeichnis"
|
||||||
|
ordered_chapter_level: 2
|
||||||
|
cover: true
|
||||||
|
cover_subtitle: "Umfangreiches Handbuch für Einsteiger und Fortgeschrittene"
|
||||||
|
download_link: header
|
||||||
|
|||||||
Reference in New Issue
Block a user