Linux Tutorials

Kleine Wissenssammlung zu sonstigen Linux tutorials

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

Arch installieren (Youtube Verlinkung)

Arch

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
Arch

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
Arch

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

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
Server

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:

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!

Server

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>
Server

WebDAV einbinden

Inspiriert von dieser Website: wiki.ubuntuusers.de/WebDAV/ unter der Sektion Verbindung per davfs2

Zu installierende Paket

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.

Server

Docker und Docker Netzwerke ipv6 ready machen

docker network create --ipv6 --subnet=fc00::/80 name_meines_netzwerks
Server

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
Server

Nextcloud mounten mit WebDAV

Ausführlich ist das mounten der Nextcloud in der offiziellen Dokumentation beschieben.

Anmerkung zur Anleitung aus der offiziellen Dokumentation

Server

Dolibarr CheatSheet

DolibarrUserCheatSheet-EN-v1.jpg

Allgemein

Allgemein gültige Tutorials

Allgemein

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).

Allgemein

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.

Allgemein

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
Allgemein

Daten Größen auflisten

Mit dem commandline tool ncdu kann aufgelistet werden wo welche daten und wie groß gespeichert sind

sudo pacman -S ncdu
Allgemein

Latex und VS-Code

Hier gibts das Tutorial für Latex und VS-Code: mathjiajia.github.io

Allgemein

Battery Status Laptop

Mit folgendem Command können sie alle möglichen Informationen über ihere Laptopbattery bekommen:

sudo tlp-stat -b 
Allgemein

ZSH mit Theme

Allgemein

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: