Linux Tutorials
Kleine Wissenssammlung zu sonstigen Linux tutorials
- Nützliche Commands
- Arch
- Arch installieren (Youtube Verlinkung)
- Docker Networking in Arch
- LTS Kernel als Boot option bei Systemd-boot hinzufügen
- Serial Port (tty) user group
- Server
- Neuer User
- SSH sicher nutzen
- UFW-Firewall
- WebDAV einbinden
- Docker und Docker Netzwerke ipv6 ready machen
- Skript wiederholt als Service ausführen
- Nextcloud mounten mit WebDAV
- Dolibarr CheatSheet
- Allgemein
Nützliche Commands
Hier eine Zusammenfassung von einigen basic Commands. Auf den Servern ist auch das Paket 'tldr' installiert, welches schnell und einfach im Terminal Infos zu einigen Commands liefert:
tldr [command]
Move, verschieben, mv
sudo mv <filename> <path_of_destination_directory>
Umbenennen mit mv
sudo mv [current file name] [new file name]
Copy, kopieren, cp
sudo cp <file> <copy>
bei <copy> den Namen der Kopie eintragen.
-R für rekursiv, also für Unterverzeichnisse
Remove, löschen, rm
sudo rm <name>
-r wenn ein Ordner gelöscht werden soll
Change ownership, besitz eines Ordners ändern, chown
Ownership in einem Ordner anzeigen:
ls -l
Ownership eines Ordners <filde> ändern:
sudo chown USER:Group <file>
Make directory, Ordner erstellen, mkdir
sudo mkdir <name>
SSH Keys
Key generieren:
ssh-keygen -t ed25519
Achtung: der generierte Key muss möglicherweise noch nach /home/<user>/.ssh verschoben werden.
Key zu Server kopieren:
ssh-copy-id user@adresse.de
Größe der Directories anzeigen
cd /
sudo du -hs * | sort -rh | head -5
Datenträger Speicher anzeigen
df -h
Variables $
Beispiel: Variable zu einem Pfad erstellen:
export VARIABLE=/path/to/directory
Scan to pdf und anderer Pdf Schabernack
Arch
Tutorials speziell zu Arch
Arch installieren (Youtube Verlinkung)
Docker Networking in Arch
Wenn unter Arch systemd-network verwendet wird, muss eine config Datei unter /etc/systemd/network hinzugefügt werden, damit die Container Zugriff auf das Internet haben.
cd /etc/systemd/network
sudo nano 20-docker.network
Nun muss folgendes in diese Datei eingefügt werden:
[Match]
Name=veth*
[Link]
Unmanaged=yes
LTS Kernel als Boot option bei Systemd-boot hinzufügen
Mehr infos zu Systemd-Boot im Arch Wiki
Als command:
bootctl [update]
benutzen, mehr dazu im Arch Wiki
LTS Kernel Paket installien
Zuerst muss das LTS-Kernel installiert werden:
pacman -S linux-lts
Loader entry anlgegen
Als nächstes einen Entry für den Bootloader anlegen im folgen verzeichnis:
cd /boot/loader/entries
Dort sollte sich mindestens eine .conf Datei befinden.
Am besten die bestehende Config der Linux installation kopieren (Namen ggf anpassen):
cp linux.conf linux-lts.conf
In der linux-lts.conf anschließend ein paar Zeilen anpassen:
title Arch Linux-LTS (linux)
linux /vmlinuz-linux-lts
initrd /amd-ucode.img
initrd /initramfs-linux-lts.img
options root=PARTUUID=[hier-UUID-der-Partition-Eintragen] zswap.enabled=0 rw intel_pstate=no_hwp rootfstype=ext4
Hier Zeile 2 und 3 anpassen und -lts einfügen.
Wichtig am Ende nicht vergessen den Bootloader zu aktualisieren:
bootctl update
Serial Port (tty) user group
Um auf die Serial Ports unter Arch zugreifen zu können muss der user teil der uucp group sein.
Mit folgendem command kann der User hinzugefügt werden:
sudo usermod -aG uucp $USER
Danach einmal den PC neustarten, damit die Änderungen angenommen werden.
Server
Tutorials für Linux Server
Neuer User
Neuer User durch
sudo useradd -m <Benutzername>
mit Passwort:
sudo passwd <Benutzername>
Im User update und Shell
sudo apt install git build-essential
chsh -s /bin/bash
(danach reconnect)
Optional zu sudo und docker hinzufügen:
adduser <Benutzername> sudo
adduser <Benutzername> docker
SSH sicher nutzen
Zum einen sollte ein SSH-key genutzt werden. Anleitung dazu hier
Key zu server kopieren:
ssh-copy-id user@adresse.de
SSH_D Config
Zusätzlich sollten folgende Werte auf dem Server in /etc/ssh/sshd_config auf no gesetzt werden:
- PermitRootLogin
- PasswordAuthentication
- ChallengeResponseAuthentication
Anschließend sshd neustarten:
sudo service ssh restart
Um ein neues Gerät hinzuzufügen kann wie oben beschrieben der Wert von PasswordAuthentication auf yes gesetzt werden.
NICHT VERGESSEN wieder auf no zu setzten und zwischendurch den shhd service neustarten!
UFW-Firewall
Mehr Infos hier.
Einen neuen Port freigeben:
sudo ufw allow <PORT>
Einen neuen Port limitiert freigeben:
sudo ufw limit <PORT>
Alle Regeln anzeigen lassen:
sudo ufw status
Die Firewall starten / stoppen:
sudo ufw enable
sudo ufw disable
Regel entfernen:
ufw status numbered
ufw delete <number>
WebDAV einbinden
Inspiriert von dieser Website: wiki.ubuntuusers.de/WebDAV/ unter der Sektion Verbindung per davfs2
Zu installierende Paket
- ca-certificates
- davfs2 (universe)
Vorgehen
In der Datei /etc/fstab muss folgende Zeile hinzugefügt werden:
http://<webdavurl> <mountpunkt> davfs defaults,_netdev 0 0
Um nun ein Auto-Login einzubinden muss in folgender Datei /etc/davfs2/secrets Folgende Zeile eingebunden werden:
<Mountpunkt / WebDAV-URL> <login> "<passwort>"
Eventuell müssen noch die Berechtigungen angepasst werden mit:
chmod 600 /etc/davfs2/secrets
Nun kann es eingehängt werden mit:
mount <mountpunkt>
Gegebenfalls muss das Mountverzeichnis vorher noch erstellt werden.
Docker und Docker Netzwerke ipv6 ready machen
- Docker ipv6 enabeln Tutorial
- Falls netzwerk schon vorhanden dieses löschen. Es muss neu erstellt werden.
- Tutorial öffen
- Sektion Configuring IPv6 NAT ausführen für
-sselbe einstellung wie beifixed-cidr-v6beim enablen benutzen und selben command nochmal mit subnet für ein eigens Netzwerk zb.:fc00::/80 - folgenden Command für das neue netzwerk mit dem vergeben subnet ausführen:
docker network create --ipv6 --subnet=fc00::/80 name_meines_netzwerks
- die iptables speicher Tutorial dazu muss man sudo apt-get install iptables-persistent ausführen
Skript wiederholt als Service ausführen
Als Tutorial wird hier eine Anleitung beschrieben anhand des Falls für die Synchronisation eines Ordners mit der Nextcloud.
Für die Synchronisation mit der Nextcloud soll der Command nextcloudcmd periodisch ausgeführt werden.
Anleitung Orientiert sich am Fall mit restic.
Skript erstellen
Im Verzeichnis /etc/nextcloud wird das folgende Skript auto_sync.sh erstellt (USER und PASSWORT entsprechend anpassen):
#!/bin/bash
nextcloudcmd /opt/nextcloud/ https://<USER>:<PASSWORT>@nx22569.your-storageshare.de/
Das Skript wird ausführbar gemacht:
chmod +x auto_sync.sh
Timer erstellen
/etc/systemd/system/nextcloud-sync.timer erstellen:
[Unit]
Description=Nextcloud Sync every 30 seconds
[Timer]
OnCalendar=*-*-* *:*:00,30
Persistent=true
[Install]
WantedBy=timers.target
/etc/systemd/system/nextcloud-sync.service erstellen:
[Unit]
Description=Nextcloud Sync with nextcloudcmd
[Service]
Type=simple
Nice=10
ExecStart=/etc/nextcloud/auto_sync.sh
Timer starten
Timer muss einmalig gestartet werden mit
systemctl enable nextcloud-sync.timer --now
Nextcloud mounten mit WebDAV
Ausführlich ist das mounten der Nextcloud in der offiziellen Dokumentation beschieben.
Anmerkung zur Anleitung aus der offiziellen Dokumentation
- In Abschnitt 3 kann der
nextcloudOrdner in einem beliebigen Verzeichnis erstellt werdne. Sinnvoll ist möglichweise auch das/mntVerzeichnis. - In Abschnitt 7 kann
autodurchnoautoersetzt werden, wenn das mounten nicht bei jedem Neustart geschehen muss. - Wie im Abschnitt Known Issues beschrieben muss
use_locks 0gesetzt werden
Dolibarr CheatSheet
Allgemein
Allgemein gültige Tutorials
Yubikey Nutzung
Yubikey GPG
Zu PGP siehe E-Mail Verschlüsselung mit OpenPGP
E-Mail 2 Yubikeys
Having created two (or more Yubikeys) with the same GPG key (as described above) where the stubs are pointing to the second Yubikey.
Insert the first Yubikey (which has a different serial number) and run the following command:
$ gpg-connect-agent "scd serialno" "learn --force" /bye
GPG will then scan your first Yubikey for GPG keys and recreate the stubs to point to the GPG keyID and Yubikey Serial number of this first Yubikey. To return to using the second Yubikey just repeat (insert other Yubikey and re-run command).
E-Mail Verschlüsselung mit OpenPGP
Tiefere Infos unter gnupg.org. GnuPG (GPG) implementiert den OpenPGP Standard.
Clients
Um verschlüsselte E-Mails versenden zu können benötigt man einen Client zum verwalten der Schlüssel, sowie einen E-Mail Client, welcher fähig ist verschlüsselte Mails zu senden und zu empfangen. Eine Liste an E-Mail Clients kann hier gefunden werden. Für Desktop empfehle ich Thunderbird, für Android FairMail, sowie OpenKeychain zum verwalten der Schlüssel.
Schlüssel erstellen
Ein Schlüssel Paar bestehen aus Privatem und Öffentlichem Key kann einfach in Thunderbird erstellt werden: Extras --> OpenPGP-Schlüssel verwalten --> Erzeugen --> Neues Schlüsselpaar Anschließend die E-mail auswählen und mit den Standardeinstellungen erzeugen.
Schlüssel verteilen
Wichtig niemals den privaten Schlüssel weitergeben!!
Privaten Schlüssel
Der Private Schlüssel kann in Thunderbird mit der Option Datei --> Sicherheitskopie für geheimen Schlüssel erstellen als Datei gespeichert werden. Diese Datei sollte dann über einen Sicheren Weg (z.B unsere Nextcloud) auf die anderen Clients(z.B. dein Handy), von denen du verschlüsselte Mails senden möchtest verteilt werden.
Öffentlicher Schlüssel
Um deinem E-Mail Empfänger deinen Öffentlichen Schlüssel zugänglich zu machen, sollte dieser auf einem Key-Server hochgeladen werden. key.openpgp.org wird als Standard von den meisten Clients verwendet. Der Öffentliche Schlüssel kann über das Webinterface hochgeladen werden.
Schlüssel eines Anderen suchen
Über Thunderbird sowie allen anderen Clients kann über eine Option wie z.B in Thunderbird OpenPGP-Schlüssel verwalten --> Schlüsselserver --> Schlüssel online finden der Öffentliche Schlüssel andere Leute importiert werden.
Verschlüsselte E-mails senden/empfangen/unterschreiben
Wichtig in Thunderbird muss möglicherweise unter den Konteneinstellungen den jeweiligen Identitäten unter "Ende-zu-Ende-Verschlüsselung" der richtige Schlüssel zugeordnet werden.
Senden
Zum Senden kann in den Mailclients mit einer Funktion, wie z.B. in Thunderbird OpenPGP --> Verschlüsseln beim verfassen der Mail diese verschlüsselt werden. Anschließend einfach Senden. Wichtig zum Senden einer verschlüsselten Mail wird der Öffentliche Schlüssel des Empfängers benötigt!
Empfangen
Beim Empfangen sollten die verschlüsselten Mails automatisch entschlüsselt werden.
Unterschreiben
E-mails können mit einem OpenPGP Schlüssel unterschrieben werden, sodass der Empfänger sicherstellen kann, dass diese nicht verändert wurde (Man-in-the-Middle). Um eine empfangene unterschriebene Mail als authentisch zu erkennen, wird der Öffentliche Schlüssel des Senders benötigt.
Archiv komprimieren mit Tar und Gzip
Archiv komprimieren mit Tar und Gzip
Archiv extrahieren:
sudo tar -xvzf documents.tar.gz
oder mit Zielordner:
sudo tar -xvzf documents.tar.gz -C /opt/containers
now Variable erstellen:
now=`date +"%Y-%m-%d"`
Inhalt eines Ordner komprimieren:
cd /opt
sudo tar -cvzf containers_${now}.tar.gz containers
Daten Größen auflisten
Mit dem commandline tool ncdu kann aufgelistet werden wo welche daten und wie groß gespeichert sind
sudo pacman -S ncdu
Latex und VS-Code
Hier gibts das Tutorial für Latex und VS-Code: mathjiajia.github.io
Battery Status Laptop
Mit folgendem Command können sie alle möglichen Informationen über ihere Laptopbattery bekommen:
sudo tlp-stat -b
ZSH mit Theme
- Empfehlenswert alle zsh sachen mit oh-my-zsh zu machen
- change to zsh shell:
chsh -s /bin/zsh username - zsh-syntax-highlighting
- zsh-autosuggestions
- zsh-history-substring-search
- Powerlevel 10K Theme
- Da Powerlevel 10K nicht mehr maintend wird gibt es Starship als alternative. Ich kann empfehlen seine shell initial mit einem Preset zu stylen
- change to zsh shell:
Link zu meiner (Michi) .zshrc Konfig hier
Windows Virtualization with Gnome-Boxes
For easy virtualisation i recommend gnome-boxes. Any Linuxdistro is easy to virtualize Windows is a little harder. There are two guides Win 10 i tryed and it worked. The Win 11 guide i haven't tried yet: