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/
|
||||
*.pdf
|
||||
*.PDF
|
||||
.cache
|
||||
26
Dockerfile
26
Dockerfile
@@ -1,12 +1,16 @@
|
||||
FROM pandoc/latex:latest
|
||||
FROM squidfunk/mkdocs-material:latest
|
||||
|
||||
WORKDIR /data
|
||||
|
||||
## Eisvogel Template kopieren (lokal notwendig)
|
||||
#COPY eisvogel.tex /data/eisvogel.tex
|
||||
|
||||
# Script kopieren und ausführbar machen
|
||||
COPY mkdocs-to-pdf.sh /usr/local/bin/mkdocs-to-pdf.sh
|
||||
RUN chmod +x /usr/local/bin/mkdocs-to-pdf.sh
|
||||
|
||||
ENTRYPOINT ["/usr/local/bin/mkdocs-to-pdf.sh"]
|
||||
# Laufzeit-Pakete (inkl. weasyprint) + temporäre Build-Dependencies zum Kompilieren (z.B. libsass)
|
||||
RUN apk add --no-cache \
|
||||
weasyprint \
|
||||
cairo \
|
||||
pango \
|
||||
gdk-pixbuf \
|
||||
libjpeg-turbo \
|
||||
zlib \
|
||||
fontconfig \
|
||||
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
|
||||
````bash
|
||||
Alle Markdown-Dateien in mkdocs/docs pdfen:
|
||||
./mkdocs-to-pdf.sh
|
||||
./mkdocs-complete.sh
|
||||
|
||||
Einzelne Datei konvertieren:
|
||||
./mkdocs-to-pdf.sh Linux_Unternehmen/nextcloud-ldap.md
|
||||
@@ -34,7 +34,7 @@ Mehrere Dateien gleichzeitig
|
||||
- LaTeX Template Datei `eisvogel.latex` im Projektverzeichnis
|
||||
|
||||
## Verzeichnisstruktur
|
||||
|
||||
````
|
||||
mkdocs/
|
||||
├── docs/ <- Markdown Quelldateien und Medien
|
||||
│ ├── Linux_Unternehmen/
|
||||
@@ -43,7 +43,7 @@ mkdocs/
|
||||
│ └── basics/
|
||||
├── mkdocs.yml <- MkDocs Konfigurationsdatei
|
||||
└── site/ <- Ergebnis von MkDocs Build (HTML, PDF)
|
||||
|
||||
````
|
||||
mkdocs-to-pdf.sh <- Bash Skript zur automatischen PDF-Erstellung
|
||||
eisvogel.latex <- LaTeX Vorlage für Pandoc PDF Export
|
||||
docker-compose.yml <- Containerdefintionen für MkDocs Umgebung
|
||||
@@ -60,3 +60,6 @@ text
|
||||
|
||||
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.
|
||||
|
||||
Für mkdocs highlighiting und so:
|
||||
https://github.com/domWalters/mkdocs-to-pdf/tree/develop/docs/examples
|
||||
@@ -1,6 +1,7 @@
|
||||
services:
|
||||
mkdocs:
|
||||
image: squidfunk/mkdocs-material:latest
|
||||
build: .
|
||||
#image: squidfunk/mkdocs-material:latest
|
||||
volumes:
|
||||
- ./mkdocs:/docs
|
||||
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
|
||||
*Anleitung zur Einrichtung von Samba-Freigaben mit granularen Rechten für Hans Wurst (Produktion) und Peter Lustig (Verwaltung)*
|
||||
|
||||
## Inhaltsverzeichnis
|
||||
[TOC]
|
||||
|
||||
## 1. Zielbeschreibung
|
||||
Dieses Projekt zeigt eine saubere, praxisnahe Einrichtung von
|
||||
|
||||
@@ -16,6 +13,8 @@ Dieses Projekt zeigt eine saubere, praxisnahe Einrichtung von
|
||||
| Hans Wurst | X | | | X |
|
||||
| Peter Lustig | | X | | X |
|
||||
|
||||
!!! Note ``Samba`` sollte bereits installiert sein
|
||||
|
||||
---
|
||||
|
||||
## 2. Benutzer und Gruppen anlegen
|
||||
@@ -29,20 +28,20 @@ sudo adduser plustig # Peter Lustig (Verwaltung)
|
||||
### 2.2 Gruppen für Rechteverwaltung erstellen
|
||||
````bash
|
||||
# Gruppen für Lese-/Schreibrechte
|
||||
sudo addgroup angebote_l # Leserechte für Angebote
|
||||
sudo addgroup angebote_ae # Schreibrechte für Angebote
|
||||
sudo addgroup lieferscheine_l # Leserechte für Lieferscheine (hier nicht genutzt)
|
||||
sudo addgroup lieferscheine_ae # Schreibrechte für Lieferscheine
|
||||
sudo addgroup angebote_r # Leserechte für Angebote
|
||||
sudo addgroup angebote_w # Schreibrechte für Angebote
|
||||
sudo addgroup lieferscheine_r # Leserechte für Lieferscheine (hier nicht genutzt)
|
||||
sudo addgroup lieferscheine_w # Schreibrechte für Lieferscheine
|
||||
````
|
||||
### 2.3 Benutzer den Gruppen zuweisen
|
||||
````bash
|
||||
# Hans Wurst: Darf Angebote lesen und Lieferscheine schreiben
|
||||
sudo usermod -aG angebote_l hwurst
|
||||
sudo usermod -aG lieferscheine_ae hwurst
|
||||
sudo usermod -aG angebote_r hwurst
|
||||
sudo usermod -aG lieferscheine_w hwurst
|
||||
|
||||
# Peter Lustig: Darf Angebote und Lieferscheine schreiben
|
||||
sudo usermod -aG angebote_ae plustig
|
||||
sudo usermod -aG lieferscheine_ae plustig
|
||||
sudo usermod -aG angebote_w plustig
|
||||
sudo usermod -aG lieferscheine_w plustig
|
||||
````
|
||||
|
||||
### 2.4 Benutzer in Samba bekannt machen
|
||||
@@ -60,11 +59,11 @@ sudo mkdir -p /srv/samba/{angebote,lieferscheine}
|
||||
````
|
||||
### 3.2 Besitzer und Gruppe setzen
|
||||
````bash
|
||||
# Angebote: Besitzer = nobody, Gruppe = angebote_ae (Schreibrechte)
|
||||
sudo chown -R nobody\:angebote_ae /srv/samba/angebote
|
||||
# Angebote: Besitzer = nobody, Gruppe = angebote_w (Schreibrechte)
|
||||
sudo chown -R nobody:angebote_w /srv/samba/angebote
|
||||
|
||||
# Lieferscheine: Besitzer = nobody, Gruppe = lieferscheine_ae (Schreibrechte)
|
||||
sudo chown -R nobody\:lieferscheine_ae /srv/samba/lieferscheine
|
||||
# Lieferscheine: Besitzer = nobody, Gruppe = lieferscheine_w (Schreibrechte)
|
||||
sudo chown -R nobody:lieferscheine_w /srv/samba/lieferscheine
|
||||
````
|
||||
### 3.3 Berechtigungen setzen
|
||||
|
||||
@@ -76,7 +75,7 @@ sudo chmod -R 0077 /srv/samba/lieferscheine
|
||||
# - 7: Gruppe hat Vollzugriff (rwx)
|
||||
# - 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
|
||||
|
||||
@@ -93,19 +92,19 @@ Fügen Sie folgende Abschnitte am Ende der Datei ein:
|
||||
guest ok = no
|
||||
browseable = yes
|
||||
read only = yes # Standardmäßig schreibgeschützt
|
||||
valid users = @angebote_l, @angebote_ae # Nur diese Gruppen dürfen zugreifen
|
||||
write list = @angebote_ae # Nur diese Gruppe darf schreiben
|
||||
valid users = @angebote_r, @angebote_w # Nur diese Gruppen dürfen zugreifen
|
||||
write list = @angebote_w # Nur diese Gruppe darf schreiben
|
||||
force create mode = 0775 # Neue Dateien: 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]
|
||||
copy = Angebote # Überträgt alle Einstellungen von Angebote, die nicht nachfolgend angepasst werden:
|
||||
comment = Lieferscheine von Lieferanten
|
||||
path = /srv/samba/lieferscheine
|
||||
valid users = @lieferscheine, @lieferscheine_ae # Nur diese Gruppe darf zugreifen
|
||||
write list = @lieferscheine_ae # Nur diese Gruppe darf schreiben
|
||||
force group = lieferscheine_ae
|
||||
valid users = @lieferscheine, @lieferscheine_w # Nur diese Gruppe darf zugreifen
|
||||
write list = @lieferscheine_w # Nur diese Gruppe darf schreiben
|
||||
force group = lieferscheine_w
|
||||
````
|
||||
## 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------
|
||||
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
|
||||
Gelöschte Dateien auf Netzlaufwerken können mit dem **Samba Recycle Bin Modul** gesichert werden.
|
||||
### 6.1 Konfiguration in ````smb.conf````
|
||||
Fügen Sie folgende Optionen global (unter [global]) oder pro Freigabe ein:
|
||||
````ini
|
||||
vfs objects = recycle # Virtuelles Dateisystem für Papierkorb
|
||||
recycle\:repository = .recyclebin # Ordner für gelöschte Dateien
|
||||
recycle\:keeptree = yes # Pfadstruktur im Papierkorb erhalten
|
||||
recycle\:versions = yes # Gleichnamige Dateien nicht überschreiben
|
||||
recycle\:maxsize = 0 # Keine Größenbegrenzung pro Datei
|
||||
recycle\:touch = yes # Zeitstempel anpassen
|
||||
recycle:repository = .recyclebin # Ordner für gelöschte Dateien
|
||||
recycle:keeptree = yes # Pfadstruktur im Papierkorb erhalten
|
||||
recycle:versions = yes # Gleichnamige Dateien nicht überschreiben
|
||||
recycle:maxsize = 0 # Keine Größenbegrenzung pro Datei
|
||||
recycle:touch = yes # Zeitstempel anpassen
|
||||
````
|
||||
### 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
|
||||
sudo crontab -e
|
||||
````
|
||||
Fügen Sie folgende Zeile ein (löscht Dateien älter als 14 Tage):
|
||||
````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:
|
||||
* ````0 12 * * *````: Täglich um 12:00 Uhr.
|
||||
* ````grep "path ="````: Sucht alle ````path````-Einträge in ````smb.conf````.
|
||||
* ````find ... -mtime +14````: Löscht Dateien älter als 14 Tage im .recyclebin-Ordner.
|
||||
!!! note Erklärung
|
||||
* ````0 12 * * *````: Täglich um 12:00 Uhr.
|
||||
* ````grep "path ="````: Sucht alle ````path````-Einträge in ````smb.conf````.
|
||||
* ````find ... -mtime +14````: Löscht Dateien älter als 14 Tage im .recyclebin-Ordner.
|
||||
|
||||
## 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. |
|
||||
|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. |
|
||||
|
||||
|
||||
|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
|
||||
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
|
||||
|
||||
Konfiguriere phpmyadmin: Ja Datenbank Konfigurieren
|
||||
|
||||
Passwort setzen
|
||||
!!! info Konfiguriere phpmyadmin: Ja Datenbank Konfigurieren und Passwort setzen
|
||||
|
||||
Im Anschluss muss die Datenbank noch gesichert werden um etwaigen
|
||||
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
|
||||
|
||||
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
|
||||
Webinterface aktiviert werden:
|
||||
8. Änderungen übernehmen? Y
|
||||
|
||||
````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:
|
||||
|
||||
http://IP/phpmyadmin
|
||||
|
||||
Legen Sie einen neuen Nutzer für NextCloud an und gewähren Sie dem Nutzer alle Rechte an seiner Datenbank „Nextcloud".
|
||||
/newpage
|
||||
!!! attention Legen Sie einen neuen Nutzer für NextCloud an und gewähren Sie dem Nutzer alle Rechte an seiner Datenbank „NextCloud".
|
||||
|
||||
## NextCloud installieren
|
||||
|
||||
@@ -87,7 +73,7 @@ erstellen ````/etc/apache2/sites-available/nextcloud.conf```` mit Inhalt:
|
||||
|
||||
<VirtualHost *:80>
|
||||
DocumentRoot "/var/www/nextcloud"
|
||||
ServerName nextcloud.hensel.dom
|
||||
ServerName nextcloud.tnxx.ito
|
||||
ErrorLog ${APACHE_LOG_DIR}/error.log
|
||||
CustomLog ${APACHE_LOG_DIR}/access.log combined
|
||||
<Directory /var/www/nextcloud/>
|
||||
@@ -123,12 +109,11 @@ sudo a2enmod ssl
|
||||
sudo systemctl restart apache2
|
||||
```
|
||||
|
||||
Nun können Sie per http auf den Webserver zugreifen
|
||||
http://nextcloud.hensel.dom
|
||||
Nun können Sie per http auf den Webserver zugreifen http://IP oder http://nextcloud.tnxx.ito
|
||||
|
||||
{ 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.
|
||||
|
||||
@@ -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
|
||||
```
|
||||
Fügen Sie eine weitere Zeile vor der schließenden Klammer ein:
|
||||
...
|
||||
|
||||
````php
|
||||
'dbtype' => 'mysql',
|
||||
'version' => '12.0.0.29',
|
||||
'dbname' => 'NextCloud',
|
||||
'dbhost' => 'localhost',
|
||||
'dbport' => '',
|
||||
'dbtableprefix' => 'oc_',
|
||||
'dbuser' => 'NextCloud',
|
||||
'dbpassword' => 'passw0rd#',
|
||||
'logtimezone' => 'UTC',
|
||||
...
|
||||
|
||||
'installed' => true,
|
||||
````
|
||||
neu:
|
||||
|
||||
````php
|
||||
'memcache.distributed' => '\OC\Memcache\Redis',
|
||||
'memcache.local' => '\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',
|
||||
'port' => 6379,
|
||||
),
|
||||
````
|
||||
|
||||
zwingend vor:
|
||||
````php
|
||||
);
|
||||
````
|
||||
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
|
||||
<VirtualHost *:80>
|
||||
Redirect permanent / https://nextcloud.hensel.dom
|
||||
RewriteEngine On
|
||||
RewriteCond %{HTTPS} Off
|
||||
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI}
|
||||
</VirtualHost>
|
||||
|
||||
<IfModule mod_ssl.c>
|
||||
@@ -199,8 +187,8 @@ Bearbeiten der Datei ````/etc/apache2/sites-available/nextcloud.conf````
|
||||
</IfModule>
|
||||
|
||||
DocumentRoot "/var/www/nextcloud"
|
||||
ServerName nextcloud.hensel.dom
|
||||
ServerAlias www.nextcloud.hensel.dom
|
||||
ServerName nextcloud.tnxx.ito
|
||||
ServerAlias www.nextcloud.tnxx.ito
|
||||
|
||||
ErrorLog ${APACHE_LOG_DIR}/error.log
|
||||
CustomLog ${APACHE_LOG_DIR}/access.log combined
|
||||
@@ -222,7 +210,6 @@ Bearbeiten der Datei ````/etc/apache2/sites-available/nextcloud.conf````
|
||||
Aktivieren:
|
||||
|
||||
```bash
|
||||
sudo a2ensite default-ssl.conf
|
||||
sudo systemctl restart apache2
|
||||
```
|
||||
|
||||
@@ -230,7 +217,7 @@ Apache Neustarten und Fertig
|
||||
|
||||
## 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
|
||||
|
||||
@@ -246,9 +233,27 @@ Wählen Sie nun im Administrations-Bereich von NextCloud bei Cron entsprechend a
|
||||
|
||||
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
|
||||
[global]
|
||||
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.
|
||||
|
||||
|
||||
@@ -1,15 +1,16 @@
|
||||
# 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:
|
||||
|
||||
* **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.
|
||||
* **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.
|
||||
|
||||
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.
|
||||
|
||||
@@ -27,7 +28,7 @@ Fügen Sie folgende Zeile hinzu:
|
||||
* * * * * /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
|
||||
ls -lah /tmp/heartbeat.txt
|
||||
@@ -35,10 +36,10 @@ ls -lah /tmp/heartbeat.txt
|
||||
|
||||
\newpage
|
||||
|
||||
# Crontab-Syntax erklärt:
|
||||
### Crontab-Syntax erklärt:
|
||||
|
||||
| Feld | Bedeutung | Wert im Beispiel | Bedeutung |
|
||||
| ----------- | --------------- | --------------------------------- | ------------------- |
|
||||
| ----------* | --------------* | --------------------------------* | ------------------* |
|
||||
| Minute | 0-59 | \* | jede Minute |
|
||||
| Stunde | 0-23 | \* | jede Stunde |
|
||||
| Tag (Monat) | 1-31 | \* | jeder Tag |
|
||||
@@ -66,11 +67,11 @@ ls -lah /tmp/heartbeat.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.
|
||||
|
||||
@@ -105,7 +106,7 @@ sudo systemctl enable 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:**
|
||||
|
||||
@@ -1,15 +1,13 @@
|
||||
# Einstieg in Linux-Desktop
|
||||
|
||||
## Inhaltsverzeichnis
|
||||
[toc]
|
||||
|
||||
## **Warum Linux? Weil es mehr kann!**
|
||||
## Warum Linux? Weil es mehr kann!
|
||||
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!
|
||||
- **Anpassbar** wie Lego: Von minimalistisch bis vollgepackt mit Tools – du entscheidest.
|
||||
- **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).
|
||||
|
||||
* **Volle Kontrolle** über dein System (keine Blackbox wie bei Windows/macOS).
|
||||
* **Sicherheit** durch Open Source: Jeder kann den Code prüfen – Backdoors? Fehlanzeige!
|
||||
* **Anpassbar** wie Lego: Von minimalistisch bis vollgepackt mit Tools – du entscheidest.
|
||||
* **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:**
|
||||
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
|
||||
|
||||
> **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!**
|
||||
!!! 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:
|
||||
|
||||
@@ -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 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
|
||||
|
||||
## Inhaltsverzeichnis
|
||||
[toc]
|
||||
|
||||
---
|
||||
|
||||
**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)?
|
||||
3. **Was** können Sie damit machen? (z. B. Screenshot mit Flameshot, Backup mit Timeshift).
|
||||
|
||||
## Tools für Einsteiger
|
||||
|
||||
Warum diese Programme? Weil sie:
|
||||
|
||||
* **Alltagsprobleme lösen** (z. B.Screenshots, PDFs bearbeiten).
|
||||
* **Spaß machen** (z. B. Spiele, Medien).
|
||||
* **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** |
|
||||
|---------------|--------------------------------------|-------------------------|
|
||||
| **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 |
|
||||
| **OBS Studio** | Bildschirmaufnahmen & Livestreams. | sudo apt install obs-studio |
|
||||
| **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** |
|
||||
| ----------------|--------------------------------|---------------------------|
|
||||
|**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 |
|
||||
| **KeePassXC** | Passwort-Manager (sicher & offline).| sudo apt install keepassxc|
|
||||
| **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** |
|
||||
--------------- |-----------------------------------| -------------------------|
|
||||
| **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|
|
||||
| **GitKraken** | Git-Client mit GUI (einfacher als Terminal). | sudo snap install gitkraken |\--classic |
|
||||
| **Postman** | API-Testing (für Web-Entwickler). | sudo snap install postman|
|
||||
|
||||
------------------------------------------------------------------------
|
||||
| **GitKraken** | Git-Client mit GUI (einfacher als Terminal). | sudo flatpak install gitkraken |\--classic |
|
||||
| **Postman** | API-Testing (für Web-Entwickler). | sudo flatpak install postman|
|
||||
|
||||
|
||||
@@ -1,27 +1,20 @@
|
||||
---
|
||||
title: Praxisprojekt: Medien-Server mit Samba & Kodi
|
||||
subtitle: Schritt-für-Schritt-Anleitung für Linux- und Windows-Einsteiger
|
||||
lang: de-DE
|
||||
---
|
||||
# Praxisprojekt Medien-NAS für KODI
|
||||
|
||||
# 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.
|
||||
Der ursprüngliche USB-Stick entfällt – alle Medien kommen direkt aus dem Netzwerk (z. B. vom Windows-PC).
|
||||
|
||||
---
|
||||
|
||||
## 1. Vorbereitung
|
||||
|
||||
### 1.1 Voraussetzungen
|
||||
|
||||
- Linux-Server (z. B. Ubuntu 24.04 LTS oder Linux Mint)
|
||||
- Samba ist installiert und läuft
|
||||
- Windows-PC im gleichen Netzwerk (legt Medien per Freigabe ab)
|
||||
- Virtuelle Maschine (z. B. VirtualBox) mit:
|
||||
- Linux Mint + Kodi **oder**
|
||||
- Direkt in Windows
|
||||
- Netzwerkzugriff zwischen Server, Windows-PC und VM
|
||||
* Linux-Server (z. B. Ubuntu 24.04 LTS oder Linux Mint)
|
||||
* Samba ist installiert und läuft
|
||||
* Windows-PC im gleichen Netzwerk (legt Medien per Freigabe ab)
|
||||
* Virtuelle Maschine (z. B. VirtualBox) mit:
|
||||
* Linux Mint + Kodi **oder**
|
||||
* Direkt in Windows
|
||||
* Netzwerkzugriff zwischen Server, Windows-PC und VM
|
||||
|
||||
### 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 chmod -R 775 /srv/samba/{musik,videos,bilder,roms}
|
||||
````
|
||||
- `nobody:nogroup`: typischer Besitzer für anonyme Zugriffe
|
||||
- `775`: Besitzer/Gruppe Vollzugriff, andere lesen + ausführen
|
||||
* `nobody:nogroup`: typischer Besitzer für anonyme Zugriffe
|
||||
* `775`: Besitzer/Gruppe Vollzugriff, andere lesen + ausführen
|
||||
|
||||
## 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.
|
||||
### 4.2 Medien kopieren
|
||||
|
||||
- Auf dem Windows-PC:
|
||||
- Musik-Dateien nach `\\IP\Musik` kopieren
|
||||
- Video-Dateien nach `\\IP\Videos`
|
||||
- Bilder nach `\\IP\Bilder`
|
||||
- ROMs (z. B. `.nes`, `.sfc`, `.iso`) nach `\\IP\ROMs`
|
||||
* Auf dem Windows-PC:
|
||||
* Musik-Dateien nach `\\IP\Musik` kopieren
|
||||
* Video-Dateien nach `\\IP\Videos`
|
||||
* Bilder nach `\\IP\Bilder`
|
||||
* ROMs (z. B. `.nes`, `.sfc`, `.iso`) nach `\\IP\ROMs`
|
||||
|
||||
Zur Kontrolle auf dem Server:
|
||||
````bash
|
||||
@@ -177,16 +170,16 @@ In Kodi:
|
||||
3. **Durchsuchen → Netzwerkfreigabe hinzufügen → SMB**
|
||||
4. Server-IP eintragen (z. B. `192.168.178.50`)
|
||||
5. Freigabe auswählen, z. B.:
|
||||
- `Musik`
|
||||
- `Videos`
|
||||
- `Bilder`
|
||||
- `ROMs`
|
||||
* `Musik`
|
||||
* `Videos`
|
||||
* `Bilder`
|
||||
* `ROMs`
|
||||
|
||||
Wenn `guest ok = yes` gesetzt ist, kann meist mit **Gast** zugegriffen werden.
|
||||
Bei Benutzerauthentifizierung:
|
||||
|
||||
- Benutzername: Samba-Benutzer (z. B. `medienuser`)
|
||||
- Passwort: entsprechend `smbpasswd`
|
||||
* Benutzername: Samba-Benutzer (z. B. `medienuser`)
|
||||
* Passwort: entsprechend `smbpasswd`
|
||||
|
||||
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
|
||||
3. Installieren
|
||||
4. In den Add-on-Einstellungen:
|
||||
- API-Schlüssel eintragen (bei Bedarf vorher erstellen)
|
||||
- Standort konfigurieren (z. B. „Berlin, DE“)
|
||||
* API-Schlüssel eintragen (bei Bedarf vorher erstellen)
|
||||
* Standort konfigurieren (z. B. „Berlin, DE“)
|
||||
|
||||
### 7.2 Retro-Spiele (ROMs)
|
||||
|
||||
1. **Add-ons → Aus Repository installieren → Spiele → Emulator-Add-ons**
|
||||
2. Passende Emulatoren (z. B. für NES, SNES, PlayStation) installieren
|
||||
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.
|
||||
|
||||
### 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.
|
||||
2. Anschließend richten Sie den **SSH-Zugriff** mit **PuTTY** ein und testen ihn ebenfalls sofort.
|
||||
---
|
||||
|
||||
## Inhaltverzeichnis
|
||||
[toc]
|
||||
|
||||
---
|
||||
|
||||
## 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.
|
||||
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
|
||||
|
||||
@@ -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.
|
||||
6. Klicken Sie auf **„Verbinden“**.
|
||||
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**:
|
||||
- Sitzungsart: **„Xorg“** belassen (Standard)
|
||||
- **Benutzername**: z. B. `meister`
|
||||
- **Passwort**: Passwort des Linux-Kontos
|
||||
* Sitzungsart: **„Xorg“** belassen (Standard)
|
||||
* **Benutzername**: z. B. `meister`
|
||||
* **Passwort**: Passwort des Linux-Kontos
|
||||
9. Klicken Sie auf **„OK“** oder **„Anmelden“**.
|
||||
|
||||
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.
|
||||
|
||||
---
|
||||
--*
|
||||
|
||||
## 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.
|
||||
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ü.
|
||||
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:
|
||||
- **Port**: `22`
|
||||
- **Connection type**: `SSH`
|
||||
* **Port**: `22`
|
||||
* **Connection type**: `SSH`
|
||||
4. Optional:
|
||||
- Geben Sie unter **„Saved Sessions“** einen Namen wie `Mint-SSH` ein.
|
||||
- Klicken Sie auf **„Save“**, um die Sitzung zu speichern.
|
||||
* Geben Sie unter **„Saved Sessions“** einen Namen wie `Mint-SSH` ein.
|
||||
* Klicken Sie auf **„Save“**, um die Sitzung zu speichern.
|
||||
5. Klicken Sie auf **„Open“**.
|
||||
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.
|
||||
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?
|
||||
|
||||
- **xrdp + Remotedesktop**:
|
||||
- Grafischer Zugriff auf den Linux‑Mint‑Desktop von Windows aus
|
||||
- Benutzersteuerung über die bestehende Gruppe **„xrdp“**
|
||||
|
||||
- **OpenSSH-Server + PuTTY**:
|
||||
- Textbasierter Zugriff (Shell) auf Linux Mint
|
||||
- Ideal für Administration, Skripte und Log-Analyse
|
||||
* **xrdp + Remotede sktop**:
|
||||
* Grafischer Zugriff auf den Linux‑Mint‑Desktop von Windows aus
|
||||
* Benutzersteuerung über die bestehende Gruppe **„xrdp“**
|
||||
|
||||
* **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
|
||||
*Ein vollständiger Leitfaden zur Einrichtung von Samba-Freigaben, Rechteverwaltung und Gruppen auf einem Standalone-Server*
|
||||
|
||||
---
|
||||
|
||||
## Inhaltsverzeichnis
|
||||
[TOC]
|
||||
|
||||
---
|
||||
|
||||
## 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:
|
||||
- **Dateifreigaben** im lokalen Netzwerk (z. B. für Medien, Dokumente oder Backups).
|
||||
- **Druckerfreigaben** für Windows-Clients.
|
||||
- **Zentraler Speicher** für mehrere Nutzer (z. B. in kleinen Büros oder Heimnetzwerken).
|
||||
* **Dateifreigaben** im lokalen Netzwerk (z. B. für Medien, Dokumente oder Backups).
|
||||
* **Druckerfreigaben** für Windows-Clients.
|
||||
* **Zentraler Speicher** für mehrere Nutzer (z. B. in kleinen Büros oder Heimnetzwerken).
|
||||
|
||||
### Voraussetzungen:
|
||||
- Ein **Linux-Server** (z. B. Ubuntu, Debian, Raspberry Pi OS).
|
||||
- **Root-Zugriff** oder `sudo`-Berechtigungen.
|
||||
- Grundkenntnisse in der **Linux-Kommandozeile**.
|
||||
* Ein **Linux-Server** (z. B. Ubuntu, Debian, Raspberry Pi OS).
|
||||
* **Root-Zugriff** oder ````sudo````-Berechtigungen.
|
||||
* Grundkenntnisse in der **Linux-Kommandozeile**.
|
||||
|
||||
---
|
||||
|
||||
@@ -81,7 +73,6 @@ Wichtige Optionen für einen Standalone-Server:
|
||||
Hinweise:
|
||||
````
|
||||
; oder #:
|
||||
|
||||
; = Deaktivierter Vorschlag (kann aktiviert werden).
|
||||
# = Standardwert (wird auch ohne Angabe genutzt).
|
||||
````
|
||||
@@ -101,6 +92,7 @@ Fügen sie unterhalb dieser Einstellungen im noch im Bereich [Global] :
|
||||
### 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.
|
||||
Grundlegende Optionen:
|
||||
|
||||
|Option |Bedeutung |Beispiel |
|
||||
|--------------|------------------------------------------------------------------------|--------------------------|
|
||||
|comment |Beschreibung der Freigabe (erscheint im Explorer). |comment = Medienarchiv |
|
||||
@@ -149,7 +141,7 @@ Samba kann Drucker für Windows-Clients freigeben:
|
||||
|
||||
|
||||
## 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
|
||||
Jede Datei/Ordner gehört einem **Besitzer (User)** und einer **Gruppe (Group)**.
|
||||
Syntax:
|
||||
@@ -157,10 +149,11 @@ Syntax:
|
||||
sudo chown [BESITZER]:[GRUPPE] [DATEI/ORDNER]
|
||||
````
|
||||
Beispiele:
|
||||
|
||||
|Befehl| Wirkung|
|
||||
|-|-|
|
||||
|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.|
|
||||
|
||||
|
||||
@@ -228,6 +221,7 @@ sudo chmod [OPTIONEN] [RECHTE] [DATEI/ORDNER]
|
||||
* ````-R````: Rekursiv (für alle Unterordner/Dateien).
|
||||
|
||||
#### Beispiele:
|
||||
|
||||
|Befehl |Wirkung |
|
||||
|----------------------------|---------------------------------------------|
|
||||
|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:
|
||||
````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.
|
||||
````
|
||||
#### 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**
|
||||
````bash
|
||||
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)
|
||||
````
|
||||
**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
|
||||
````
|
||||
**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
|
||||
Anwendungsfall: Vertrauliche Dokumente für bestimmte Nutzer/Gruppen.
|
||||
@@ -358,7 +352,7 @@ sudo mkdir -p /srv/samba/neue_freigabe
|
||||
|
||||
**2. Besitzer und Gruppe setzen:**
|
||||
````bash
|
||||
sudo chown nobody\:mitarbeiter /srv/samba/neue_freigabe
|
||||
sudo chown nobody:mitarbeiter /srv/samba/neue_freigabe
|
||||
````
|
||||
|
||||
**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 |
|
||||
|------------------------------------|------------------------------------------------------|----------------------------------------------------------------------|
|
||||
|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 chown besitzer:gruppe pfad```` |Besitzer und Gruppe einer Datei/eines Ordners ändern.|
|
||||
|````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 addgroup gruppenname```` |Gruppe erstellen. |
|
||||
|````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:
|
||||
|
||||
Fehler finden Sie in /var/log/samba/log.%m.
|
||||
Fehler finden Sie in ````/var/log/samba/log.%m````.
|
||||
|
||||
|
||||
## Anhang: Spezialrechte (Sticky Bit, SUID, SGID)
|
||||
@@ -461,10 +456,8 @@ Für fortgeschrittene Anwendungsfälle können Spezialrechte gesetzt werden:
|
||||
|
||||
|
||||
**Samba-spezifische Nutzung:**
|
||||
|
||||
* **SGID** ist nützlich, um sicherzustellen, dass neue Dateien/Ordner in einer Freigabe automatisch der richtigen Gruppe gehören:
|
||||
````bash
|
||||
|
||||
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.
|
||||
|
||||
---
|
||||
|
||||
## Voraussetzungen
|
||||
|
||||
- Installiertes Linux Mint
|
||||
- Internetzugang
|
||||
- Ein normales Benutzerkonto
|
||||
|
||||
---
|
||||
* Installiertes Linux Mint
|
||||
* Internetzugang
|
||||
* Ein normales Benutzerkonto
|
||||
|
||||
## 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**.
|
||||
4. Nach der Installation finden Sie Bottles im Menü, z. B. unter **Zubehör → Bottles**.
|
||||
|
||||
---
|
||||
|
||||
## 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.
|
||||
@@ -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.
|
||||
3. Gehen Sie zum Bereich **„Filesystem“** (oder „Dateisystem“).
|
||||
4. Aktivieren bzw. fügen Sie folgende Pfade hinzu:
|
||||
- ```xdg-data/applications```
|
||||
- ```~/.local/share/applications```
|
||||
* ```xdg-data/applications```
|
||||
* ```~/.local/share/applications```
|
||||
5. Speichern ist nicht nötig; die Änderungen gelten sofort.
|
||||
6. Schließen Sie Flatseal und starten Sie **Bottles** einmal neu.
|
||||
|
||||
Damit kann Bottles jetzt Desktop‑Verknüpfungen und Menüeinträge korrekt anlegen.
|
||||
|
||||
---
|
||||
|
||||
## Notepad++
|
||||
|
||||
### 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).
|
||||
2. Rufen Sie die Seite auf:
|
||||
- `https://notepad-plus-plus.org`
|
||||
* `https://notepad-plus-plus.org`
|
||||
3. Klicken Sie auf **Download**.
|
||||
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**.
|
||||
4. Wählen Sie die Datei `npp.x.y.Installer.exe` aus und klicken Sie auf **Öffnen**.
|
||||
5. Im Installationsassistenten:
|
||||
- Sprache auswählen (z. B. Deutsch)
|
||||
- Lizenzbedingungen akzeptieren
|
||||
- Standardpfad beibehalten
|
||||
- Komponenten unverändert lassen
|
||||
* Sprache auswählen (z. B. Deutsch)
|
||||
* Lizenzbedingungen akzeptieren
|
||||
* Standardpfad beibehalten
|
||||
* Komponenten unverändert lassen
|
||||
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.
|
||||
@@ -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++“**.
|
||||
3. Klicken Sie auf **Notepad++**, um das Programm zu starten.
|
||||
4. Testen Sie die Funktion:
|
||||
- Neue Datei anlegen
|
||||
- Text schreiben
|
||||
- Datei in Ihrem Home‑Ordner speichern
|
||||
* Neue Datei anlegen
|
||||
* Text schreiben
|
||||
* 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
|
||||
|
||||
@@ -112,11 +107,11 @@ Wenn die Berechtigungen korrekt gesetzt sind, können Sie in Bottles außerdem e
|
||||
|
||||
1. Öffnen Sie den **Webbrowser**.
|
||||
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`).
|
||||
4. Speichern Sie die Datei im Ordner **Downloads**.
|
||||
|
||||
|
||||
---
|
||||
|
||||
### 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.
|
||||
4. Bestätigen Sie mit **Öffnen**.
|
||||
5. Im Installationsfenster von 7‑Zip:
|
||||
- Installationspfad unverändert lassen (`C:\Program Files\7-Zip`)
|
||||
- Auf **Install** klicken
|
||||
- Nach Abschluss auf **Close** klicken
|
||||
* Installationspfad unverändert lassen (`C:\Program Files\7-Zip`)
|
||||
* Auf **Install** klicken
|
||||
* Nach Abschluss auf **Close** klicken
|
||||
|
||||
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
|
||||
|
||||
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`).
|
||||
3. Markieren Sie einige Dateien, die Sie komprimieren möchten.
|
||||
4. Klicken Sie oben auf **„Add“** (Hinzufügen).
|
||||
5. Im Dialog:
|
||||
- Archivname eingeben, z. B. `testarchiv.7z`
|
||||
- Format wählen (z. B. `7z` oder `zip`)
|
||||
- Kompressionsstufe auswählen (z. B. „Normal“)
|
||||
* Archivname eingeben, z. B. `testarchiv.7z`
|
||||
* Format wählen (z. B. `7z` oder `zip`)
|
||||
* Kompressionsstufe auswählen (z. B. „Normal“)
|
||||
6. Klicken Sie auf **OK**.
|
||||
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
|
||||
|
||||
- Schließen Sie die Bottle und öffnen Sie sie erneut.
|
||||
- Starten Sie Bottles bei Bedarf vollständig neu und versuchen Sie es noch einmal.
|
||||
* Schließen Sie die Bottle und öffnen Sie sie erneut.
|
||||
* Starten Sie Bottles bei Bedarf vollständig neu und versuchen Sie es noch einmal.
|
||||
|
||||
### Desktop‑Verknüpfung fehlt
|
||||
|
||||
- Desktop-Verknüpfungen sind erst mal nur im Startmenü
|
||||
- Prüfen Sie in **Flatseal**, ob Bottles Zugriff auf
|
||||
- `~/Desktop`
|
||||
- `~/.local/share/applications`
|
||||
* Desktop-Verknüpfungen sind erst mal nur im Startmenü
|
||||
* Prüfen Sie in **Flatseal**, ob Bottles Zugriff auf
|
||||
* `~/Desktop`
|
||||
* `~/.local/share/applications`
|
||||
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
|
||||
|
||||
- Stellen Sie im 7‑Zip‑Fenster sicher, dass Sie das Laufwerk **„Z:“** gewählt haben.
|
||||
- Navigieren Sie von dort in Ihr Home‑Verzeichnis.
|
||||
|
||||
---
|
||||
* Stellen Sie im 7‑Zip‑Fenster sicher, dass Sie das Laufwerk **„Z:“** gewählt haben.
|
||||
* 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:**\
|
||||
Bei Fehlern prüfen Sie die Logdateien (/var/log/sssd/, /var/log/auth.log,
|
||||
/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
|
||||
# For more information, see netplan(5).
|
||||
network:
|
||||
version: 2
|
||||
ethernets:
|
||||
enp0s3:
|
||||
addresses: [192.168.2XX.250/24]
|
||||
dhcp4: false
|
||||
addresses:
|
||||
- 192.168.2XX.250/24
|
||||
routes:
|
||||
- to: 0.0.0.0/0
|
||||
- to: default
|
||||
via: 192.168.2XX.1
|
||||
dhcp4: no
|
||||
nameservers:
|
||||
addresses: \[192.168.2.XX.250,1.1.1.1\]
|
||||
search: \[tnXX.ito\]
|
||||
addresses: [192.168.2XX.250, 1.1.1.1]
|
||||
search: [tnXX.ito]
|
||||
optional: true
|
||||
version: 2
|
||||
```
|
||||
Die Anpassung des Hostnamen wurde auch kompatibel mit der Cloud-Config
|
||||
gemacht daher neuer Vorgehensweise:
|
||||
@@ -189,7 +190,7 @@ sudo systemctl restart chrony
|
||||
```
|
||||
Testen ob der Dienst aktiv ist:
|
||||
```bash
|
||||
ss -tulpen:
|
||||
ss -tulpen
|
||||
```
|
||||
> udp 0 0 0.0.0.0:123 0.0.0.0:\* 0 22432 1180/chronyd
|
||||
|
||||
@@ -221,7 +222,7 @@ Fertig.
|
||||
```bash
|
||||
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
|
||||
bind interfaces only = yes
|
||||
interfaces = lo enp0s3
|
||||
@@ -260,8 +261,7 @@ sudo netplan apply
|
||||
Internen Resolver übernehmen
|
||||
```bash
|
||||
sudo rm /etc/resolv.conf
|
||||
echo -e \"nameserver 127.0.0.1\\nsearch TNXX.ITO\" \| sudo tee
|
||||
/etc/resolv.conf
|
||||
echo -e \"nameserver 127.0.0.1\\nsearch TNXX.ITO\" \| sudo tee /etc/resolv.conf
|
||||
```
|
||||
|
||||
## Überprüfen der DNS-Konfiguration
|
||||
@@ -503,6 +503,3 @@ nt acl support = yes
|
||||
|
||||
Jetzt kann die Freigabe vom Admin mit den Jeweiligen User-Gruppenrechten
|
||||
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:
|
||||
- Home: index.md
|
||||
- Grundlagen:
|
||||
- Einstieg in Linux-Desktop: basics/Einstieg_in_Linux-Desktop.md
|
||||
- Remotezugriff einrichten: basics/Remotezugriff_einrichten.md
|
||||
- Kleines Linux-Projekt: basics/Mein_erstes_kleines_Linux-Projekt.md
|
||||
- Windows-Programme unter Linux: basics/Windows-Programme unter Linux.md
|
||||
- Grundlagen der Konsole: basics/Grundlagen der Konsole.md
|
||||
- Automatisierung mit cron und systemd: basics/Automatisierung mit cron und systemd.m
|
||||
- Windows-Programme unter Linux: basics/Windows_Programme_unter_Linux.md
|
||||
- Grundlagen der Konsole: basics/Grundlagen_der_Konsole.md
|
||||
- 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
|
||||
- Praxisprojekt Medien-NAS für KODI: basics/Praxisprojekt_Medien-NAS_fuer_KODI.md
|
||||
- Linux im Unternehmen:
|
||||
- Ubuntu Server installieren und konfigurieren: Linux_Unternehmen/Server_Installation.md
|
||||
- Praxisprojekt Freigaben im Unternehmen: Linux_Unternehmen/Praxisprojekt_Freigaben_im_Unternehmen.md
|
||||
- Nextcloud mit LDAP-Anbindung: Linux_Unternehmen/nextcloud-ldap.md
|
||||
- Bonuskapitel:
|
||||
- Linux als Active Directory Server: bonus/linux-als-ad-server.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:
|
||||
logo: assets/Logo.png
|
||||
@@ -50,4 +54,26 @@ markdown_extensions:
|
||||
# permalink: true
|
||||
- pymdownx.highlight
|
||||
- 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