apt-key-Ersatz ab Jammy 22.04

Das Problem, wenn man ein zusätzliches Repository in /etc/apt/sourced.list.d hinzufügt, ist für gewöhnlich der fehlende Verifizierungs-Key. Nicht alle Quellen liefern den gleich mit.
Bis 20.04 hat man den Key mit apt-key hinzugefügt. Das geht bei 22.04 immer noch, aber es führt zu einer Warnmeldung, weil dieses Verfahren abgeschaltet werden wird. Der Grund ist der, dass so hinzugefügte Keys systemweit gültig sind, was ein potenzielles Sicherheitsleck darstellt. Mit der neuen Methode gilt ein Key nur noch für ein Repository und sonst für nix.

Den apt-key-Ersatzbefehl musste ich lange suchen und mir teilweise noch selber zusammen basteln. Deswegen hier das neue Verfahren:

Bei dem gpg-Befehl wird in /root/.gnupg gearbeitet. Wer das nicht möchte, erstellt ein temporäres Verzeichnis und gibt vorher diesen Befehl ein:
sudo export GNUPGHOME=[Verzeichnis als absoluter Pfad]
Diese Einstellung gilt nur für die eine Terminal-Session und ist nicht dauerhaft.
Das Unterverzeichnis .gnupg muss aber auch vorhanden sein bzw. ggf. erstellt werden.

sudo gpg --no-default-keyring --keyring /usr/share/keyrings/[Dateiame].gpg --keyserver [Keyserver] --recv-keys [Key-Code]

Dabei gilt:
[Dateiname] Dateiname, den man frei vergeben kann. Beim Pfad ist Jammy zickig, also den hier vorgegebenen benutzen.
[Keyserver] z.B. keyserver.ubuntu.com, man kann auch noch den Port mit Doppelpunkt anhängen (:80)
[Key-Code] wie früher bei apt-key die Hex-Zeichen, die in der apt-get update Fehlermeldung stehen, ohne Leerzeichen*

Nun muss man noch den Pfad zur Key-Datei in die Repository-List-Datei aufnehmen. Man editiert sie (mit sudo) wie folgt:
Zwischen deb bzw. deb-src und http… kommt:
[signed-by=/usr/share/keyrings/[Dateiname.gpg]
Wenn die Architektur angegeben ist, kommt das signed-by in die vorhandene eckige Klammer:
[arch=amd64 signed-by=/usr/share/keyrings/[Dateiname.gpg]

Hat man noch den Key im alten Verfahren gespeichert, löscht man ihn mit diesem Befehl:
apt-key del [Letzte-8-Zeichen-des-Key-Codes]

Nach dem nächsten apt-get update sollten keine Fehlermeldungen mehr auftauchen und man auf das Repository zugreifen.

*) Leerzeichen sind nicht in der apt-get update Fehlermeldung, aber in der Ausgabe, wenn man nach dem Key sucht.

Hier alles am Beispiel Firefox-ESR:
PPA hinzufügen:
sudo add-apt-repository ppa:mozillateam/ppa
=> Datei /etc/apt/sources.list.d/mozillateam-ubuntu-ppa-jammy.list hinzugefügt
=> und den Key /etc/apt/trusted.gpg.d/mozillateam-ubuntu-ppa.gpg hinzugefügt – das führt zwar nicht zur Warnung, ist aber genauso unsicher!!
sudo rm /etc/apt/trusted.gpg.d/mozillateam-ubuntu-ppa.gpg
apt-get update
=> Fehler NO_PUBKEY 9BDB3D89CE49EC21
sudo gpg --no-default-keyring --keyring /usr/share/keyrings/mozilla.gpg --keyserver keyserver.ubuntu.com --recv-keys 9BDB3D89CE49EC21
=> Da steht was von wegen importiert: 1
Hier die erste Zeile der Datei /etc/apt/sources.list.d/mozillateam-ubuntu-ppa-jammy.list
deb [signed-by=/usr/share/keyrings/mozilla.gpg] https://ppa.launchpadcontent.net/mozillateam/ppa/ubuntu/ jammy main
Das Löschen in apt-key sähe so aus:
sudo apt-key del CE49EC21

Multicore ZIP mit pigz

Um mit mehreren Kernen zu zippen, kann man pigz benutzen. Der entsprechende tar-Befehl sieht dann so aus:
tar [Optionen] – [Quelle] | pigz -[Kompression] -p [Anzahl-Kerne] > [Ziel-Archiv]
Für die Kompression wird man typischer Weise 9 eingeben. Beispiel mit 6 Kernen:
tar cpf - . | pigz -9 -p 6 > /media/Backup/System.tar.gz

Quelle: https://stackoverflow.com/questions/12313242/utilizing-multi-core-for-targzip-bzip-compression-decompression/12320421#12320421

Hinweise zu tar und rsync

Hier ein paar Hinweise zu den beliebten Tools tar und rsync.

tar
Bislang hatte ich immer Ärger mit dem exclude. Mein Befehl für tar lautete nämlich stets tar -c..f /Pfad/zur/tar-Datei.tar –Optionen .
Wenn exclude hier platziert wird, stresst tar rum. Baut man den Befehl aber so um, dass -f /Pfad/zur/tar-Datei.tar erst ganz am Schluss kommt, klappt die Sache:
tar -c.. --Optionen . -f /Pfad/zur/tar-Datei.tar

rsync
Wie man die neuen Dateien in ein anderes Verzeichnis speichert, um so eine Art differenzielles Backup oder in meinem Fall eine überlappende Synchronisation zwischen zwei Standorten hinzukriegen, steht hier. Die Option lautet compare-dest und funktioniert so:
rsync --andere_Optionen --compare-dest=/Pfad/zum/Vergleich* /Pfad/zur/Quelle/ /Pfad/zum/Ziel*
*) Vergleich: beim normalen rsync das Ziel (Angabe ohne letztes / )
Ziel: hier landet das differenzielle Backup (Angabe ohne letztes / )
(Bei der Quelle Angabe mit letztem / )
Nicht wundern, rsync legt hier die komplette Verzeichnisstruktur an, schreibt aber nur geänderte und neue Dateien. Bei diesem Aufbau ist ein exaktes Abbild nicht möglich, weil man nichts löschen kann. Die Option prune-empty-dirs klappte im Zusammenhang mit compare-dest bei mir nicht. Zur Übersicht könnte man ein zweites rsync so nachschalten und dessen Inhalt dann sichern. Am Ende wird man eh aufräumen. In meinem Fall brauche ich dieses zweite rsync zwischen den Standorten ohnehin.

Plugins und die DSGVO

Auf dieser Seite nutze ich folgende WordPress-Plugins:

  • + Add From Server: Laut WP Ninjas arbeitet dieses Plugin nur lokal.
  • ? Custom Meta Widget: mein anfragender Post ist bislang nicht mal freigegeben …
  • + List category posts: Der Autor schreibt „List Category Posts doesn’t collect any kind of data. You can check the code and see there are no third party services being called or any personal information from you or your readers collected anywhere (not even in your own database).“
  • + Photo Gallery: Der Hersteller web-dorado.com schrieb mir, dass Photo Gallery unter 2 Voraussetzungen Daten erfasst: zum einen muss die Funktion aktiviert sein, zum anderen müssen Fotos kommentiert werden – beides ist auf dieser Seite nicht der Fall. Die Antwort ist komplett unten in diesem Beitrag.
  • + Posts in Page: Auf die Frage „I need to know if your plugin „Posts in Page“ for WP collects any kind of data and if these data are stored anywhere else than in my wordpress database“ wurde mir geantwortet: „A terrific question with a simple answer: *no*. Posts in Page simply helps pull data from your existing database into a page or other area of a WordPress site. It currently stores no information at all.“
  • + WP Cerber Security & Antispam: Laut future_bizz sammelt und verarbeitet das Plugin keine Daten außerhalb der WordPress-Installation. Näheres steht hier.

Die DSVGO heißt auf englisch übrigens GDPR.

Antwort zum Plugin Photo Gallery:
Please note that the Photo Gallery WD plugin does not collect any data. Only in the case, someone is commenting on the photos, then the IP and the email address is saved, in the case the option is switched on.
In the case they do not comment on the photos no data is kept.
Please as well note that without having the users permission we are not collecting any data. While installing the plugin the user is asked whether he/she allows the plugin too collect data or not. In the case, the user clicks on „skip“ button no data is collected.

Firefox: alle Ports erlauben

Firefox umsorgt einen dermaßen, dass man nicht auf alle Ports surfen darf. In 99,9% aller Fälle ist das auch sinnvoll, aber eben nicht immer.
In about:config diesen string anlegen:
network.security.ports.banned.override
und als Wert:
0-65535
eintragen. Dann darf man wieder alles!

Port durch SSH tunneln

Mal wieder ein Eintrag gegen die / wegen der Vergesslichkeit:
ssh -L [lokaler Port]:[IP im Zielnetz]:[Port auf Zielrechner] [Benutzer]@[Server/IP]
ggf. sind weitere Optionen wie eine Portangabe nötig
Bsp.: ssh -L 6000:10.10.1.10:443 admin@server.net
=> So kann der interne Port 443 vom Browser aus erreicht werden, indem man im Browser „https://localhost:6000“ eingibt.

Befehl gegen flackerndes KDE

Das Problem scheint nur bei AMD-Grafikkarten aufzutauchen. Bei Blenden wird flackert der Bildschirm, wenn Fenster angezeigt werden sollen, kann es passieren, dass nur die Knöpfe da sind bis man mit der Maus drüber fährt, bei der Office fehlen Textteile, wobei hier zoomen hilft, usw.
Abhilfe: mit Alt+F2 das Befehl-ausführen Minifenster ganz oben starten und darin eingeben:
kwin –replace
Enter und gut is‘!

IP-Adresse und Browserdaten

Die IP-Ermittlungsseite ist noch aus Zeiten vor WordPress. In diesem neuen Fenster bekommt man aber die gewünschten Daten.
Hinweis: Ob eine IPv4 oder eine IPv6 angezeigt wird, hängt davon ab, womit sich der Client zum Server verbindet.

Mount-Befehle und fstab

Mount-Befehle

SMB mounten:
mount -t smbfs //server/freigabe /lokalesVerzeichnis -o ro,uid=1000,gid=1000,username=SMBName\\Benutzer,password=Passwort
Bemerkungen: -o ro = read only. SMBName\\ nur, falls Zielrechner in einer Domäne befindlich und auf einen lokalen, Nicht-Domänen-Benutzer verbunden werden soll.
uid=Nummer des lokalen Linux-Users, gid=Nummer der lokalen Linux-Gruppe => Rechteproblem gelöst
encfs /media/[Beispiel]/[Quellverzeichnis]/ /media/Beispiel/[Zielverzeichnis]/

fstab

LABEL=[NAME] / ext4 discard,noatime,nodiratime,errors=remount-ro 0 1
discard,noatime,nodiratime schonen SSDs
UUID=[UUID] /media/Beispiel ext4 nofail,errors=remount-ro 0 3
Die 3 hinten führt das fsck später durch
tmpfs /tmp tmpfs defaults,noatime,mode=1777 0 0
tmpfs /var/tmp tmpfs defaults,noatime,mode=1777 0 0
man kann auch /var/cache/apt/archives nach tmp mounten, muss aber seit 16.04 immer ./partial erstellen und kassiert bei Synamtic am Ende eine ignorierbare Fehlermeldung wegen der Rechte. Dafür läuft einem aber nie die Platte voll mit Paketen.
/dev/sda3 none swap sw 0 0
UUID=[UUID] /media/Beispiel ext4 defaults,nofail 0 5
UUID=[UUID] /media/Windows ntfs-3g ro,nofail,nls=utf8,uid=1000,gid=1000 0 7
anstelle von ro (read-only) geht auch rw (read-write) – will man ggf. aber besser nicht
//[IPv4]/[FREIGABENAME] /media/Beispiel cifs noperm,credentials=/root/.smbpwd,_netdev 0 0

Ohne die Option nofail hängt das System, falls beim Booten ein Laufwerk nicht verfügbar oder sauber ist.

Linux Datei-Rechte-Codes

chmod-Tabelle

CHMOD-Tabelle für all jene, die sich die Zahlen nicht merken können:
Reihenfolge: Besitzer, Gruppe, Public.

R: Lesen + + + +
W: Schreiben + + + +
X: Ausführen + + + +
chmod-Zahl 0 1 2 3 4 5 6 7