<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom"><title>debinux.de</title><link href="https://debinux.de/" rel="alternate"></link><link href="https://debinux.de/feeds/all.atom.xml" rel="self"></link><id>https://debinux.de/</id><updated>2023-12-16T08:34:00+01:00</updated><subtitle>an admins notepad</subtitle><entry><title>EHLOcomputer: EHLO git repository</title><link href="https://debinux.de/ehlocomputer-ehlo-git-repository.html" rel="alternate"></link><published>2023-12-16T08:34:00+01:00</published><updated>2023-12-16T08:34:00+01:00</updated><author><name>André Peters</name></author><id>tag:debinux.de,2023-12-16:/ehlocomputer-ehlo-git-repository.html</id><summary type="html">&lt;p&gt;Feel free to follow &lt;a href="https://github.com/andryyy/ehlocomputer"&gt;https://github.com/andryyy/ehlocomputer&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;More information is about to be released.&lt;/p&gt;
&lt;p&gt;I am currently in ...&lt;a class="read-more" href="/ehlocomputer-ehlo-git-repository.html"&gt;&lt;span&gt;weiterlesen&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;</summary><content type="html">&lt;p&gt;Feel free to follow &lt;a href="https://github.com/andryyy/ehlocomputer"&gt;https://github.com/andryyy/ehlocomputer&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;More information is about to be released.&lt;/p&gt;
&lt;p&gt;I am currently in a kind-of-holiday-mode. :-)&lt;/p&gt;
&lt;p&gt;PS: There's a tiny chance I will need to re-init the repository in the next days.&lt;/p&gt;</content><category term="Linux"></category><category term="linux"></category><category term="mta"></category><category term="mailcow"></category><category term="mail"></category><category term="router"></category><category term="ehlo"></category><category term="ehlocomputer"></category></entry><entry><title>Firefox Nightly Repository für Debian-basierte Systeme vorgestellt</title><link href="https://debinux.de/firefox-nightly-repository-fur-debian-basierte-systeme-vorgestellt.html" rel="alternate"></link><published>2023-11-07T05:29:00+01:00</published><updated>2023-11-07T05:29:00+01:00</updated><author><name>André Peters</name></author><id>tag:debinux.de,2023-11-07:/firefox-nightly-repository-fur-debian-basierte-systeme-vorgestellt.html</id><summary type="html">&lt;p&gt;Freunde der Sonne, die ihr nach Vitamin D sehnt und vom tr&amp;#252;ben Herbstwetter entt&amp;#228;uscht seid.&lt;/p&gt;
&lt;p&gt;Ich habe eine gute Nachricht ...&lt;a class="read-more" href="/firefox-nightly-repository-fur-debian-basierte-systeme-vorgestellt.html"&gt;&lt;span&gt;weiterlesen&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;</summary><content type="html">&lt;p&gt;Freunde der Sonne, die ihr nach Vitamin D sehnt und vom trüben Herbstwetter enttäuscht seid.&lt;/p&gt;
&lt;p&gt;Ich habe eine gute Nachricht: Mozilla hat ein offizielles &lt;a href="https://blog.nightly.mozilla.org/2023/10/30/introducing-mozillas-firefox-nightly-deb-packages-for-debian-based-linux-distributions/"&gt;&lt;strong&gt;Firefox Nightly Repository für Debian-basierte Systeme&lt;/strong&gt;&lt;/a&gt; vorgestellt.&lt;/p&gt;
&lt;p&gt;Und das schon am 30. Oktober.&lt;/p&gt;
&lt;p&gt;OH MY GOOHHHD.&lt;/p&gt;
&lt;p&gt;Zwar habe ich darauf nicht mein Leben lang gewartet, mein Tag - oder wenigstens die ersten Minuten dieses Tages - sind gerettet.&lt;/p&gt;
&lt;p&gt;Entschuldigt die anstrengende Schreibweise, ich freue mich einfach.&lt;/p&gt;</content><category term="Firefox"></category><category term="firefox"></category><category term="nightly"></category></entry><entry><title>sqlite3 CLI Alternative: litecli</title><link href="https://debinux.de/sqlite3-cli-alternative-litecli.html" rel="alternate"></link><published>2022-10-06T08:10:00+02:00</published><updated>2022-10-06T08:10:00+02:00</updated><author><name>André Peters</name></author><id>tag:debinux.de,2022-10-06:/sqlite3-cli-alternative-litecli.html</id><summary type="html">&lt;p&gt;Wenn ihr euch schon einmal mit der sqlite3 rum&amp;#228;rgern musstet und bislang zu bequem gewesen seid, nehme ich euch nun ...&lt;a class="read-more" href="/sqlite3-cli-alternative-litecli.html"&gt;&lt;span&gt;weiterlesen&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;</summary><content type="html">&lt;p&gt;Wenn ihr euch schon einmal mit der sqlite3 rumärgern musstet und bislang zu bequem gewesen seid, nehme ich euch nun die Arbeit ab:&lt;/p&gt;
&lt;p&gt;Es gibt eine Alternative zu der fürchterlichen CLI: &lt;strong&gt;litecli&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Das Tool behandelt nicht nur Pfeiltasten korrekt. Es hat viele sehr nützliche Features im Gepäck, darunter Autocomplete, Multiline-Mode und Syntax-Highlighting.&lt;/p&gt;
&lt;p&gt;Das Fuzzy-Matching schaut ebenfalls super aus.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;sudo apt install litecli
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Siehe &lt;a href="https://litecli.com"&gt;litecli.com&lt;/a&gt; und &lt;a href="https://github.com/dbcli/litecli"&gt;GitHub dbcli/litecli&lt;/a&gt;.&lt;/p&gt;</content><category term="Linux"></category><category term="linux"></category><category term="sqlite"></category></entry><entry><title>sudo: Aliases beibehalten (Beispiel: `sudo ll`)</title><link href="https://debinux.de/sudo-aliases-beibehalten-beispiel-sudo-ll.html" rel="alternate"></link><published>2022-07-15T08:15:00+02:00</published><updated>2022-07-15T08:15:00+02:00</updated><author><name>André Peters</name></author><id>tag:debinux.de,2022-07-15:/sudo-aliases-beibehalten-beispiel-sudo-ll.html</id><summary type="html">&lt;p&gt;Nervt: Aliases werden nicht via sudo interpretiert.&lt;/p&gt;
&lt;p&gt;Ein Workaround daf&amp;#252;r ist, einen Alias f&amp;#252;r &lt;code&gt;sudo&lt;/code&gt; zu setzen, etwa in der ...&lt;a class="read-more" href="/sudo-aliases-beibehalten-beispiel-sudo-ll.html"&gt;&lt;span&gt;weiterlesen&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;</summary><content type="html">&lt;p&gt;Nervt: Aliases werden nicht via sudo interpretiert.&lt;/p&gt;
&lt;p&gt;Ein Workaround dafür ist, einen Alias für &lt;code&gt;sudo&lt;/code&gt; zu setzen, etwa in der Datei &lt;code&gt;/etc/bash.bashrc&lt;/code&gt; in Ubuntu/Debian oder lokal via &lt;code&gt;~/bashrc&lt;/code&gt;:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;alias sudo=&amp;#39;sudo &amp;#39;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Warum das funktioniert, ist &lt;a href="https://unix.stackexchange.com/a/349290"&gt;hier&lt;/a&gt; beschrieben.&lt;/p&gt;</content><category term="Linux"></category><category term="ubuntu"></category><category term="sudo"></category></entry><entry><title>Apple iCloud Mail als Relay in OPNsense verwenden</title><link href="https://debinux.de/apple-icloud-mail-als-relay-in-opnsense-verwenden.html" rel="alternate"></link><published>2022-07-12T07:15:00+02:00</published><updated>2022-07-12T07:15:00+02:00</updated><author><name>André Peters</name></author><id>tag:debinux.de,2022-07-12:/apple-icloud-mail-als-relay-in-opnsense-verwenden.html</id><summary type="html">&lt;p&gt;Bei Verwendung von iCloud als E-Mail-Relay auf einer OPNsense ist eine Umschreibung des Absenders notwendig, sollte der interne Postfix-Service der ...&lt;a class="read-more" href="/apple-icloud-mail-als-relay-in-opnsense-verwenden.html"&gt;&lt;span&gt;weiterlesen&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;</summary><content type="html">&lt;p&gt;Bei Verwendung von iCloud als E-Mail-Relay auf einer OPNsense ist eine Umschreibung des Absenders notwendig, sollte der interne Postfix-Service der Firewall zum Einsatz kommen.&lt;/p&gt;
&lt;p&gt;Vorab muss eine App in den Apple-Account Einstellungen erstellt werden, siehe &lt;a href="https://support.apple.com/de-de/HT204397"&gt;hier&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Apple prüft den Envelope-From in der SMTP-Session (&lt;code&gt;MAIL FROM: X&lt;/code&gt;) sowie den From-Header aus dem Inhalt der E-Mail (&lt;code&gt;From: Ich &amp;lt;ich@woanders&amp;gt;&lt;/code&gt;) auf eine gültige/dem Account zugeordnete E-Mail-Absenderadresse. Ich kann auch unter Verwendung der eigenen Domain nicht jeden belieben Absender @meinedomain verwenden - finde ich gut.&lt;/p&gt;
&lt;p&gt;Ich verwende eine eigene Domain, wenig überraschend debinux.de, via Apple Mail und muss daher den Envelope-From als auch den Header auf meine private E-Mail-Adresse &lt;code&gt;geheim@debinux.de&lt;/code&gt; ändern.&lt;/p&gt;
&lt;h3&gt;Services: Postfix: General&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;System Hostname&lt;ul&gt;
&lt;li&gt;Der Hostname des Mailservers, in meinem Fall &lt;code&gt;opnsense.hai.internal&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;System Domain&lt;ul&gt;
&lt;li&gt;In meinem Fall &lt;code&gt;hai.internal&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;System Origin&lt;ul&gt;
&lt;li&gt;Entspricht dem System Hostnamen &lt;code&gt;opnsense.hai.internal&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Trusted Networks&lt;ul&gt;
&lt;li&gt;Hinzufügen von internem Netzwerk, falls gewünscht, etwa &lt;code&gt;192.168.2.0/24&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Smart Host&lt;ul&gt;
&lt;li&gt;Für iCloud &lt;code&gt;[smtp.mail.me.com]:587&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Enable SMTP Authentication aktivieren&lt;/li&gt;
&lt;li&gt;Authentication Username&lt;/li&gt;
&lt;li&gt;Entsprechend dem Login für Apps setzen. In den meisten Fällen ist es die me.com E-Mail-Adresse ohne Domain, also etwa &lt;code&gt;meinbenutzer&lt;/code&gt; bei &lt;code&gt;meinbenutzer@me.com&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Authentication Password&lt;/li&gt;
&lt;li&gt;Entsprechend dem Login des App Passworts setzen&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Services: Postfix: Sender Canonical Rewriting&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Sender Canonical Rewriting (Umschreibung des Senders beim Eingang der E-Mail) Regel erstellen&lt;/p&gt;
&lt;p&gt;Diese Map ist eine &lt;strong&gt;regexp Map&lt;/strong&gt; in Postfix.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Rewrite From &lt;code&gt;/^.*@.*\.hai.internal/i&lt;/code&gt;, um alle E-Mails eines Absenders in meiner lokalen Domain umzuschreiben&lt;/li&gt;
&lt;li&gt;Rewrite To &lt;code&gt;geheim@debinux.de&lt;/code&gt; - ich verwende wie eingangs erwähnt meine eigene Domain mit iCloud Mail, daher entspricht der Rewrite To &lt;code&gt;geheim@debinux.de&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Services: Postfix: Header Checks&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Header Checks (Umschreibung des &lt;code&gt;From:&lt;/code&gt; Headers bei Ausgang) Regel erstellen&lt;/p&gt;
&lt;p&gt;Ebenfalls eine &lt;strong&gt;regexp Map&lt;/strong&gt; in Postfix.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Expression &lt;code&gt;/From:.*/ REPLACE From: geheim@debinux.de&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Filter &lt;code&gt;while delivering mail&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Andere Einstellungen sind in OPNsense 22.1.10-amd64 nicht zu setzen.&lt;/p&gt;
&lt;p&gt;Die E-Mail-Alerts des HAProxys einer OPNsense Firewall werden übrigens auch ohne Rewrites funktionieren, da die Alerts korrekterweise sowohl den Envelope-From als auch den From-Header auf den Wert der in den Einstellungen des Checks definierten E-Mail-Absenderadresse setzen. Puh, was ein Satz.&lt;/p&gt;</content><category term="Firewall"></category><category term="opnsense"></category><category term="apple"></category><category term="icloud"></category><category term="mail"></category></entry><entry><title>Noson, der SONOS Controller für Linux</title><link href="https://debinux.de/noson-der-sonos-controller-fur-linux.html" rel="alternate"></link><published>2022-06-24T08:29:00+02:00</published><updated>2022-06-24T08:29:00+02:00</updated><author><name>André Peters</name></author><id>tag:debinux.de,2022-06-24:/noson-der-sonos-controller-fur-linux.html</id><content type="html">&lt;p&gt;Ich habe mit &lt;a href="https://janbar.github.io/noson-app/"&gt;Noson&lt;/a&gt; endlich einen SONOS Controller gefunden, der für mich funktioniert.&lt;/p&gt;
&lt;p&gt;Super Sache.&lt;/p&gt;</content><category term="Linux"></category><category term="linux"></category><category term="sonos"></category><category term="audio"></category></entry><entry><title>Pushover Benachrichtigung bei USB Anschluss</title><link href="https://debinux.de/pushover-benachrichtigung-bei-usb-anschluss.html" rel="alternate"></link><published>2022-04-08T08:58:00+02:00</published><updated>2022-04-08T08:58:00+02:00</updated><author><name>André Peters</name></author><id>tag:debinux.de,2022-04-08:/pushover-benachrichtigung-bei-usb-anschluss.html</id><summary type="html">&lt;p&gt;Kommt her, meine Kinder, und nehmt euch einen Aluhut.&lt;/p&gt;
&lt;p&gt;Mal nicht zu Hause und besorgt, dass jemand den Computer infiltriert ...&lt;a class="read-more" href="/pushover-benachrichtigung-bei-usb-anschluss.html"&gt;&lt;span&gt;weiterlesen&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;</summary><content type="html">&lt;p&gt;Kommt her, meine Kinder, und nehmt euch einen Aluhut.&lt;/p&gt;
&lt;p&gt;Mal nicht zu Hause und besorgt, dass jemand den Computer infiltriert?&lt;/p&gt;
&lt;p&gt;Ganz schnell und easy, so getestet auf einem Ubuntu Jammy:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;sudo apt install python3-pip
pip install pyudev
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Eine Datei &lt;code&gt;/usr/local/sbin/pyudev_notify.py&lt;/code&gt; anlegen:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="ch"&gt;#!/usr/bin/env python3&lt;/span&gt;

&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;pyudev&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;http.client&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;urllib&lt;/span&gt;

&lt;span class="n"&gt;context&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;pyudev&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Context&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="n"&gt;monitor&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;pyudev&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Monitor&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;from_netlink&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;context&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;monitor&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;filter_by&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;subsystem&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;usb&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;device&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nb"&gt;iter&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;monitor&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;poll&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kc"&gt;None&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
  &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;device&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;action&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;add&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="n"&gt;conn&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;http&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;client&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;HTTPSConnection&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;api.pushover.net:443&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;conn&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;request&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;POST&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;/1/messages.json&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
      &lt;span class="n"&gt;urllib&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;parse&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;urlencode&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
          &lt;span class="s2"&gt;&amp;quot;token&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;APP_TOKEN&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
          &lt;span class="s2"&gt;&amp;quot;user&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;USER_TOKEN&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
          &lt;span class="s2"&gt;&amp;quot;message&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;USB Change @ XY: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;device&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
      &lt;span class="p"&gt;}),&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;Content-type&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;application/x-www-form-urlencoded&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;})&lt;/span&gt;
    &lt;span class="n"&gt;conn&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;getresponse&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Die Werte &lt;code&gt;APP_TOKEN&lt;/code&gt; und &lt;code&gt;USER_TOKEN&lt;/code&gt; abändern, ebenso die Nachricht anpassen.&lt;/p&gt;
&lt;p&gt;Das Script kann natürlich wesentlich verbessert werden, es ist ziemlich roh.&lt;/p&gt;
&lt;p&gt;Die Datei &lt;code&gt;/usr/local/sbin/pyudev_notify.py&lt;/code&gt; noch durch &lt;code&gt;chmod 700 /usr/local/sbin/pyudev_notify.py&lt;/code&gt; vor fremden Blicken schützen und ausführbar markieren.&lt;/p&gt;
&lt;p&gt;Anschließend den Dienst anlegen:&lt;/p&gt;
&lt;p&gt;Eine Datei &lt;code&gt;/etc/systemd/system/pyudev_notify.service&lt;/code&gt; anlegen:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="k"&gt;[Unit]&lt;/span&gt;
&lt;span class="na"&gt;Description&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;pyudev_notify&lt;/span&gt;
&lt;span class="na"&gt;After&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;network-online.target&lt;/span&gt;
&lt;span class="na"&gt;Wants&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;network-online.target systemd-networkd-wait-online.service&lt;/span&gt;

&lt;span class="k"&gt;[Service]&lt;/span&gt;
&lt;span class="na"&gt;Type&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;simple&lt;/span&gt;
&lt;span class="na"&gt;ExecStart&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;/usr/local/sbin/pyudev_notify.py&lt;/span&gt;

&lt;span class="k"&gt;[Install]&lt;/span&gt;
&lt;span class="na"&gt;WantedBy&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;multi-user.target&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Nun den Dienst aktivieren und starten: &lt;code&gt;systemctl enable --now pyudev_notify.service&lt;/code&gt;&lt;/p&gt;</content><category term="Linux, Python"></category><category term="linux"></category><category term="debian"></category><category term="usb"></category><category term="pushover"></category></entry><entry><title>Ein paar Ubuntu Dock Quickies mit gsettings</title><link href="https://debinux.de/ein-paar-ubuntu-dock-quickies-mit-gsettings.html" rel="alternate"></link><published>2022-04-05T07:10:00+02:00</published><updated>2022-04-05T07:10:00+02:00</updated><author><name>André Peters</name></author><id>tag:debinux.de,2022-04-05:/ein-paar-ubuntu-dock-quickies-mit-gsettings.html</id><summary type="html">&lt;p&gt;Etwas, an das ich mich bei Ubuntu nie gew&amp;#246;hnt habe, ist das Verhalten der Icons im Dock per Standard.&lt;/p&gt;
&lt;p&gt;Vielleicht ...&lt;a class="read-more" href="/ein-paar-ubuntu-dock-quickies-mit-gsettings.html"&gt;&lt;span&gt;weiterlesen&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;</summary><content type="html">&lt;p&gt;Etwas, an das ich mich bei Ubuntu nie gewöhnt habe, ist das Verhalten der Icons im Dock per Standard.&lt;/p&gt;
&lt;p&gt;Vielleicht ist das Folgende für den ein oder anderen Leser ebenfalls brauchbar.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;# Den Modifier auf ALT zurückstellen (sonst: Super)
gsettings set org.gnome.desktop.wm.preferences mouse-button-modifier &amp;#39;&amp;lt;Alt&amp;gt;&amp;#39;

# Fenster mit Modifier und rechter Maustaste in ihrer Größe ändern
gsettings set org.gnome.desktop.wm.preferences resize-with-right-button true

# Durch einen Klick auf ein Icon im Dock die App minimieren
gsettings set org.gnome.shell.extensions.dash-to-dock click-action &amp;#39;minimize&amp;#39;

# Durch Scrollen auf einem Icon im Dock durch offene Fenster navigieren
gsettings set org.gnome.shell.extensions.dash-to-dock scroll-action &amp;#39;cycle-windows&amp;#39;

# Lediglich Icons des aktiven Desktops anzeigen
gsettings set org.gnome.shell.extensions.dash-to-dock isolate-workspaces true
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</content><category term="Linux, Ubuntu"></category><category term="linux"></category><category term="gsettings"></category><category term="dock"></category></entry><entry><title>Wenn AnyDesk unter Ubuntu Jammy (Beta) nicht startet</title><link href="https://debinux.de/wenn-anydesk-unter-ubuntu-jammy-beta-nicht-startet.html" rel="alternate"></link><published>2022-04-02T12:54:00+02:00</published><updated>2022-04-03T10:23:00+02:00</updated><author><name>André Peters</name></author><id>tag:debinux.de,2022-04-02:/wenn-anydesk-unter-ubuntu-jammy-beta-nicht-startet.html</id><summary type="html">&lt;p&gt;...solltet ihr auf eine angepasste Version von AnyDesk f&amp;#252;r Jammy warten oder eben &lt;code&gt;libpangox-1.0-0&lt;/code&gt; nachinstallieren.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;cd
wget http://de ...&lt;/code&gt;&lt;/pre&gt;&lt;a class="read-more" href="/wenn-anydesk-unter-ubuntu-jammy-beta-nicht-startet.html"&gt;&lt;span&gt;weiterlesen&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;</summary><content type="html">&lt;p&gt;...solltet ihr auf eine angepasste Version von AnyDesk für Jammy warten oder eben &lt;code&gt;libpangox-1.0-0&lt;/code&gt; nachinstallieren.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;cd
wget http://de.archive.ubuntu.com/ubuntu/pool/universe/p/pangox-compat/libpangox-1.0-0_0.0.2-5ubuntu1_amd64.deb
dpkg -i libpangox-1.0-0_0.0.2-5ubuntu1_amd64.deb
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Das war's schon.&lt;/p&gt;
&lt;p&gt;Das ist nicht die feine Art, denkt dran.&lt;/p&gt;
&lt;p&gt;Meist funktioniert es so lange wie kein &lt;code&gt;autoremove&lt;/code&gt; nach dem Upgrade ausführt wurde.&lt;/p&gt;
&lt;p&gt;Sollte AnyDesk trotzdem nicht starten, solltet ihr den Client einfach mal durch das Ausführen des Befehls &lt;code&gt;anydesk&lt;/code&gt; im Terminal (als Benutzer, nicht als root) starten und auf die Ausgabe achten.&lt;/p&gt;</content><category term="Linux, Ubuntu"></category><category term="linux"></category><category term="ubuntu"></category><category term="anydesk"></category></entry><entry><title>AppImages mit bauh installieren und verwalten</title><link href="https://debinux.de/appimages-mit-bauh-installieren-und-verwalten.html" rel="alternate"></link><published>2021-10-16T22:15:00+02:00</published><updated>2021-10-16T22:15:00+02:00</updated><author><name>André Peters</name></author><id>tag:debinux.de,2021-10-16:/appimages-mit-bauh-installieren-und-verwalten.html</id><summary type="html">&lt;p&gt;Ob AppImage, Flatpak oder Snap; es gilt die &amp;#220;bersicht zu behalten.&lt;/p&gt;
&lt;p&gt;Was bei Flatpak und Snap noch aus dem CLI ...&lt;a class="read-more" href="/appimages-mit-bauh-installieren-und-verwalten.html"&gt;&lt;span&gt;weiterlesen&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;</summary><content type="html">&lt;p&gt;Ob AppImage, Flatpak oder Snap; es gilt die Übersicht zu behalten.&lt;/p&gt;
&lt;p&gt;Was bei Flatpak und Snap noch aus dem CLI relativ komfortabel gelingt, wird bei AppImages kompliziert.&lt;/p&gt;
&lt;p&gt;Ein guter Tipp ist &lt;a href="https://github.com/vinifmor/bauh#installation"&gt;bauh&lt;/a&gt;, das sich schnell als Python Anwendung installieren lässt.&lt;/p&gt;
&lt;p&gt;Ich habe dafür ein virtualenv unter &lt;code&gt;~/virtualenvs/bauh&lt;/code&gt; verwendet. Wichtig ist, dass die Abhängigkeiten aus der Installationsanleitung vorab installiert wurden.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;virtualenv ~/virtualenvs/bauh
cd ~/virtualenvs/bauh ; source bin/activate
pip3 install bauh
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Das kann man individuell handhaben. Ich denke, hier hat jeder seine eigene Struktur gefunden.&lt;/p&gt;
&lt;p&gt;Unter &lt;code&gt;~/virtualenvs/bauh/bin/bauh&lt;/code&gt; findet sich in meinem Fall nun die Binary, mit der ich einfach ein AppImage "installiere".&lt;/p&gt;
&lt;p&gt;Installieren bedeutet in diesem Fall, dass das AppImage nach &lt;code&gt;~/.local/share/bauh/appimage/installed/&lt;/code&gt; kopiert und unter &lt;code&gt;~/.local/bin/&lt;/code&gt; entsprechende Links angelegt werden.
Im "local share" findet sich zudem ein extrahiertes Logo und Metadaten in Form von JSON.&lt;/p&gt;
&lt;p&gt;Praktisch ist, dass bauh Starter unter &lt;code&gt;.local/share/applications/&lt;/code&gt; einrichtet, die bequem im Startmenü auffindbar werden.&lt;/p&gt;</content><category term="Linux"></category><category term="linux"></category><category term="ubuntu"></category><category term="appimage"></category></entry><entry><title>fsck via Boot-Parameter</title><link href="https://debinux.de/fsck-via-boot-parameter.html" rel="alternate"></link><published>2021-08-25T11:04:00+02:00</published><updated>2021-08-25T11:04:00+02:00</updated><author><name>André Peters</name></author><id>tag:debinux.de,2021-08-25:/fsck-via-boot-parameter.html</id><summary type="html">&lt;p&gt;Ein Quickie.&lt;/p&gt;
&lt;p&gt;Einen FS-Check sowie die Reparatur erzwingen. Geht mit &lt;code&gt;touch /forcefsck&lt;/code&gt;, klar, oft viel angenehmer: &amp;#252;ber die Boot-Parameter des ...&lt;a class="read-more" href="/fsck-via-boot-parameter.html"&gt;&lt;span&gt;weiterlesen&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;</summary><content type="html">&lt;p&gt;Ein Quickie.&lt;/p&gt;
&lt;p&gt;Einen FS-Check sowie die Reparatur erzwingen. Geht mit &lt;code&gt;touch /forcefsck&lt;/code&gt;, klar, oft viel angenehmer: über die Boot-Parameter des Kernels.&lt;/p&gt;
&lt;p&gt;In Grub den Boot-Parameter ändern und &lt;code&gt;fsck.mode=force fsck.repair=yes&lt;/code&gt; anhängen, booten, happy sein.&lt;/p&gt;</content><category term="Linux"></category><category term="linux"></category><category term="fsck"></category></entry><entry><title>Flatpak: Cursor Theme für Apps lesbar machen</title><link href="https://debinux.de/flatpak-cursor-theme-fur-apps-lesbar-machen.html" rel="alternate"></link><published>2021-08-23T20:31:00+02:00</published><updated>2021-08-23T20:31:00+02:00</updated><author><name>André Peters</name></author><id>tag:debinux.de,2021-08-23:/flatpak-cursor-theme-fur-apps-lesbar-machen.html</id><summary type="html">&lt;p&gt;Ein Quickie...&lt;/p&gt;
&lt;p&gt;App-ID finden:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;~$ flatpak list --columns=name,application --app
Name                          Application ID
Delta Chat                    chat.delta.desktop
Pinta                         com ...&lt;/code&gt;&lt;/pre&gt;&lt;a class="read-more" href="/flatpak-cursor-theme-fur-apps-lesbar-machen.html"&gt;&lt;span&gt;weiterlesen&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;</summary><content type="html">&lt;p&gt;Ein Quickie...&lt;/p&gt;
&lt;p&gt;App-ID finden:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;~$ flatpak list --columns=name,application --app
Name                          Application ID
Delta Chat                    chat.delta.desktop
Pinta                         com.github.PintaProject.Pinta
PDF Arranger                  com.github.jeromerobert.pdfarranger
Flameshot                     org.flameshot.Flameshot
KeePassXC                     org.keepassxc.KeePassXC
Telegram Desktop              org.telegram.desktop
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Im User-Kontext Zugriff auf &lt;code&gt;~/.icons&lt;/code&gt; geben: &lt;code&gt;flatpak --user override org.telegram.desktop --filesystem=/home/$USER/.icons/:ro&lt;/code&gt;&lt;/p&gt;</content><category term="Linux"></category><category term="linux"></category><category term="flatpak"></category></entry><entry><title>YogaDNS als flexibler DNS-Client für Windows mit DoH und DoT</title><link href="https://debinux.de/yogadns-als-flexibler-dns-client-fur-windows-mit-doh-und-dot.html" rel="alternate"></link><published>2021-08-23T15:16:00+02:00</published><updated>2021-08-23T15:16:00+02:00</updated><author><name>André Peters</name></author><id>tag:debinux.de,2021-08-23:/yogadns-als-flexibler-dns-client-fur-windows-mit-doh-und-dot.html</id><content type="html">&lt;p&gt;Gerade zufällig drüber gestolpert: &lt;a href="https://yogadns.com/"&gt;YogaDNS&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Viel einfacher kann die Namensauflösung wohl kaum unter Windows gesteuert werden.&lt;/p&gt;</content><category term="Windows"></category><category term="windows"></category><category term="dns"></category><category term="tls"></category></entry><entry><title>Flatpak-Anwendungen aus CLI verwenden</title><link href="https://debinux.de/flatpak-anwendungen-aus-cli-verwenden.html" rel="alternate"></link><published>2021-08-23T10:46:00+02:00</published><updated>2021-08-23T10:46:00+02:00</updated><author><name>André Peters</name></author><id>tag:debinux.de,2021-08-23:/flatpak-anwendungen-aus-cli-verwenden.html</id><summary type="html">&lt;p&gt;F&amp;#252;r mich prim&amp;#228;r aus einem Grund wichtig: Autostart und Keyboard Shortcuts.&lt;/p&gt;
&lt;p&gt;Runtimes interessieren uns herzlich wenig, daher listen wir nur ...&lt;a class="read-more" href="/flatpak-anwendungen-aus-cli-verwenden.html"&gt;&lt;span&gt;weiterlesen&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;</summary><content type="html">&lt;p&gt;Für mich primär aus einem Grund wichtig: Autostart und Keyboard Shortcuts.&lt;/p&gt;
&lt;p&gt;Runtimes interessieren uns herzlich wenig, daher listen wir nur Anwendungen auf.&lt;/p&gt;
&lt;p&gt;Der Scope ist per Standard &lt;code&gt;--system&lt;/code&gt;. Anwendungen, die in den User-Scope installiert wurden, seht ihr mit &lt;code&gt;--user&lt;/code&gt;.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;~$ flatpak list --columns=name,application --app
Name                          Application ID
Delta Chat                    chat.delta.desktop
Pinta                         com.github.PintaProject.Pinta
PDF Arranger                  com.github.jeromerobert.pdfarranger
Flameshot                     org.flameshot.Flameshot
KeePassXC                     org.keepassxc.KeePassXC
Telegram Desktop              org.telegram.desktop
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Die Application ID ist relevant. Wir starten eine Anwendung wie folgt:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;flatpak run org.flameshot.Flameshot
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Parameter können beliebig angehangen werden. Im Fall von Flameshot etwa "gui":&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;flatpak run org.flameshot.Flameshot gui
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Kann auch als Alias verwendet (&lt;code&gt;alias flameshot="flatpak run org.flameshot.Flameshot gui"&lt;/code&gt;) und in die &lt;code&gt;~/.bashrc&lt;/code&gt; eingepflegt werden. Oder welcher Shell ihr auch treu seid...&lt;/p&gt;</content><category term="Linux"></category><category term="linux"></category><category term="flatpak"></category></entry><entry><title>OpenVPN-Clients: DNS-Einstellungen und Routen ignorieren</title><link href="https://debinux.de/openvpn-clients-dns-einstellungen-und-routen-ignorieren.html" rel="alternate"></link><published>2021-08-22T18:05:00+02:00</published><updated>2021-08-22T18:05:00+02:00</updated><author><name>André Peters</name></author><id>tag:debinux.de,2021-08-22:/openvpn-clients-dns-einstellungen-und-routen-ignorieren.html</id><summary type="html">&lt;p&gt;Es kann durchaus Vorteile haben viele oder gar alle Anfragen &amp;#252;ber einen vertrauten Tunnel zu schicken.&lt;/p&gt;
&lt;p&gt;Bevorzugen und empfehlen m&amp;#246;chte ...&lt;a class="read-more" href="/openvpn-clients-dns-einstellungen-und-routen-ignorieren.html"&gt;&lt;span&gt;weiterlesen&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;</summary><content type="html">&lt;p&gt;Es kann durchaus Vorteile haben viele oder gar alle Anfragen über einen vertrauten Tunnel zu schicken.&lt;/p&gt;
&lt;p&gt;Bevorzugen und empfehlen möchte ich, die weiterzuleitenden Zonen oder Hosts selber auszuwählen und an entsprechender Stelle einzupflegen (Stichwort DNS-Overrides).&lt;/p&gt;
&lt;p&gt;Weiterhin ist es ratsam nicht den gesamten Traffic über ein VPN-Profil zu jagen und stattdessen auszuwählen, welche Routen man tatsächlich haben möchte.&lt;/p&gt;
&lt;p&gt;In einer OpenVPN-Konfigurationsdatei hängt ihr &lt;strong&gt;ab Version 2.4&lt;/strong&gt; Folgendes an, um DNS-Servervorgaben zu unterbinden: &lt;code&gt;pull-filter ignore "dhcp-option DNS"&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;"For the sake of completeness" noch das Filtern der Routen... :)&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;pull-filter ignore redirect-gateway
pull-filter ignore &amp;quot;route &amp;quot;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Es ist sogar möglich einzelne Routen - falls vorhanden - zu akzeptieren:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;pull-filter accept &amp;quot;route 192.168.&amp;quot;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Ansonsten nehmt ihr den manuellen Weg und fügt die Routen selber hinzu.&lt;/p&gt;
&lt;p&gt;Die Sache erübrigt sich natürlich, wenn ihr den VPN-Server selber in der Hand habt...&lt;/p&gt;</content><category term="Linux"></category><category term="linux"></category><category term="openvpn"></category><category term="windows"></category><category term="dns"></category></entry><entry><title>DNS über TLS, DNS over HTTPS</title><link href="https://debinux.de/dns-uber-tls-dns-over-https.html" rel="alternate"></link><published>2021-08-22T16:44:00+02:00</published><updated>2021-09-11T09:27:00+02:00</updated><author><name>André Peters</name></author><id>tag:debinux.de,2021-08-22:/dns-uber-tls-dns-over-https.html</id><summary type="html">&lt;p&gt;Neben Suchanfragen via GET-Methode geh&amp;#246;rt auch DNS zu einem ewigen Klassiker f&amp;#252;r Daten-Leaks.&lt;/p&gt;
&lt;p&gt;Da keiner Netzwerkschn&amp;#252;ffler mag, verwendet man heute ...&lt;a class="read-more" href="/dns-uber-tls-dns-over-https.html"&gt;&lt;span&gt;weiterlesen&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;</summary><content type="html">&lt;p&gt;Neben Suchanfragen via GET-Methode gehört auch DNS zu einem ewigen Klassiker für Daten-Leaks.&lt;/p&gt;
&lt;p&gt;Da keiner Netzwerkschnüffler mag, verwendet man heute DNS-over-TLS. Neben einem TLS-Kanal auf Port 853 funktioniert das übrigens auch mit etwas mehr Overhead über HTTPS, es scheint mir aber so, als sie hat sich alles in Richtung DNS-over-TLS entwickelt, hm, abwarten. &lt;strong&gt;Update&lt;/strong&gt;: Ich muss die Aussage zumindest teilweise revidieren, denn wie es scheint, sind beide mindestens gleichauf.&lt;/p&gt;
&lt;p&gt;Eine Liste zu pflegen wäre zu viel Aufwand und redundant. Schaut einfach &lt;a href="https://www.startpage.com/sp/search?query=dns-over-tls+servers&amp;amp;language=deutsch"&gt;hier&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Privat vertraue ich meinem Netzwerk bis zur OPNsense. Ab hier geht es weiter via DNS-over-TLS. Mit OPNsense in der Version 21.7 gibt es nun auch die Möglichkeit einen Servernamen zu validieren:&lt;/p&gt;
&lt;p&gt;&lt;a href="https://twitter.com/DKaufmann_/status/1421023327762751489"&gt;https://twitter.com/DKaufmann_/status/1421023327762751489&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Da Mozilla DNS-over-HTTPS anstrebt, findet ihr in den Verbindungseinstellungen die Möglichkeit einen DNS-over-HTTPS Server zu hinterlegen, schöne Sache!&lt;/p&gt;
&lt;p&gt;An dieser Stelle sei auch ein kleiner Verweis erlaubt: https://www.dnshome.de/ - schaut es euch an!&lt;/p&gt;</content><category term="Linux"></category><category term="linux"></category><category term="dns"></category><category term="tls"></category><category term="DoT"></category></entry><entry><title>Firefox Next ohne Branding auf Linux Mint</title><link href="https://debinux.de/firefox-next-ohne-branding-auf-linux-mint.html" rel="alternate"></link><published>2021-08-22T16:21:00+02:00</published><updated>2021-08-23T13:05:00+02:00</updated><author><name>André Peters</name></author><id>tag:debinux.de,2021-08-22:/firefox-next-ohne-branding-auf-linux-mint.html</id><summary type="html">&lt;p&gt;Ich m&amp;#246;chte Firefox Next auf einem Linux Mint 20.x installieren.&lt;/p&gt;
&lt;p&gt;Das Mint-Branding vom Firefox sorgte f&amp;#252;r &amp;#220;berraschungen. Es bewirkt ...&lt;a class="read-more" href="/firefox-next-ohne-branding-auf-linux-mint.html"&gt;&lt;span&gt;weiterlesen&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;</summary><content type="html">&lt;p&gt;Ich möchte Firefox Next auf einem Linux Mint 20.x installieren.&lt;/p&gt;
&lt;p&gt;Das Mint-Branding vom Firefox sorgte für Überraschungen. Es bewirkt beispielsweise, dass Suchvorschläge mit Startpage nicht funktionieren, was an den Standard "searchplugins" liegen könnte. Sehr ärgerlich, nicht weiter debugged, denn - Punkt zwei: Ich mag den Browser lieber so, wie Mozilla ihn mir gibt. Das soll meine Basis sein.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;#&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;Firefox&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;schlie&lt;/span&gt;ß&lt;span class="nv"&gt;en&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;und&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;nochmal&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;nachtreten&lt;/span&gt;.&lt;span class="w"&gt; &lt;/span&gt;:&lt;span class="ss"&gt;)&lt;/span&gt;
&lt;span class="nv"&gt;sudo&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;kill&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;9&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;$&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;pgrep&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;firefox&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;

#&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;Firefox&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;entfernen&lt;/span&gt;
&lt;span class="nv"&gt;sudo&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;apt&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;purge&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;firefox&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;firefox-locale*&amp;#39;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;xul&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nv"&gt;ext&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nv"&gt;ubufox&lt;/span&gt;

#&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;Vorhandene&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;lokale&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;Daten&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;l&lt;/span&gt;ö&lt;span class="nv"&gt;schen&lt;/span&gt;,&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;falls&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;gew&lt;/span&gt;ü&lt;span class="nv"&gt;nscht&lt;/span&gt;
&lt;span class="nv"&gt;cd&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="c1"&gt;; rm -rf .mozilla .cache/mozilla&lt;/span&gt;

#&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;Linux&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;Mint&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;Branding&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nv"&gt;Reste&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;entfernen&lt;/span&gt;
&lt;span class="nv"&gt;sudo&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;rm&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nv"&gt;rf&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="nv"&gt;usr&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="nv"&gt;lib&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="nv"&gt;firefox&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="nv"&gt;usr&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="nv"&gt;lib&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="nv"&gt;firefox&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nv"&gt;addons&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;

#&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;Neues&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;Branding&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;verhindern&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;wird&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;IMMER&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;angewendet&lt;/span&gt;,&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;wenn&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;Datei&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;vorhanden&lt;/span&gt;&lt;span class="o"&gt;!&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;Daher&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;l&lt;/span&gt;ö&lt;span class="nv"&gt;schen&lt;/span&gt;&lt;span class="o"&gt;!&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;
&lt;span class="nv"&gt;sudo&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;mv&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="nv"&gt;usr&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="nv"&gt;share&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="nv"&gt;ubuntu&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nv"&gt;system&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nv"&gt;adjustments&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="nv"&gt;firefox&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="nv"&gt;usr&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="nv"&gt;share&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="nv"&gt;ubuntu&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nv"&gt;system&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nv"&gt;adjustments&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="nv"&gt;firefox_backup&lt;/span&gt;

#&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;Repository&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;hinzuf&lt;/span&gt;ü&lt;span class="nv"&gt;gen&lt;/span&gt;
&lt;span class="nv"&gt;sudo&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;add&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nv"&gt;apt&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nv"&gt;repository&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;ppa&lt;/span&gt;:&lt;span class="nv"&gt;mozillateam&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="nv"&gt;firefox&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="k"&gt;next&lt;/span&gt;
&lt;span class="nv"&gt;sudo&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;apt&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;update&lt;/span&gt;

#&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;Firefox&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;aus&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;PPA&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;bevorzugen&lt;/span&gt;
&lt;span class="nv"&gt;sudo&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;bash&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nv"&gt;c&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;&amp;#39;cat &amp;lt;&amp;lt; EOF &amp;gt; /etc/apt/preferences.d/mozilla-next.pref&lt;/span&gt;
&lt;span class="err"&gt;Package: *&lt;/span&gt;
&lt;span class="err"&gt;Pin: release o=LP-PPA-mozillateam-firefox-next&lt;/span&gt;
&lt;span class="err"&gt;Pin-Priority: 800&lt;/span&gt;
&lt;span class="nv"&gt;EOF&lt;/span&gt;&lt;span class="err"&gt;&amp;#39;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</content><category term="Linux"></category><category term="linux"></category><category term="mint"></category><category term="firefox"></category></entry><entry><title>OCR per Rechtsklick auf Dokument in Nemo ausführen</title><link href="https://debinux.de/ocr-per-rechtsklick-auf-dokument-in-nemo-ausfuhren.html" rel="alternate"></link><published>2021-08-17T12:35:00+02:00</published><updated>2021-11-01T10:07:00+01:00</updated><author><name>André Peters</name></author><id>tag:debinux.de,2021-08-17:/ocr-per-rechtsklick-auf-dokument-in-nemo-ausfuhren.html</id><summary type="html">&lt;h2&gt;Was passiert?&lt;/h2&gt;
&lt;p&gt;Es wird eine Rechtsklick-Aktion zu Nemo (Linux Mint Datei-Manager) hinzugf&amp;#252;gt, die eine oder mehrere Bilder (Scans) begradigt, zu ...&lt;a class="read-more" href="/ocr-per-rechtsklick-auf-dokument-in-nemo-ausfuhren.html"&gt;&lt;span&gt;weiterlesen&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;</summary><content type="html">&lt;h2&gt;Was passiert?&lt;/h2&gt;
&lt;p&gt;Es wird eine Rechtsklick-Aktion zu Nemo (Linux Mint Datei-Manager) hinzugfügt, die eine oder mehrere Bilder (Scans) begradigt, zu PDFs konvertiert, OCR (Texterkennung) ausführt und anschließend:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;pro Bild eine PDF erstellt und behält.&lt;/li&gt;
&lt;li&gt;alle PDFs zu einer großen PDF zusammenführt.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Das ist, was ich benötige. Wenn ihr die einzelnen PDFs nicht benötigt oder das Zusammenführen auslassen möchtet, passt gerne das Script an.&lt;/p&gt;
&lt;h2&gt;Wie es geht...&lt;/h2&gt;
&lt;p&gt;Zuerst das Script für das Verarbeiten der Bilder erstellen: &lt;code&gt;/usr/local/bin/nemo_ocr&lt;/code&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="ch"&gt;#!/bin/bash&lt;/span&gt;

&lt;span class="nb"&gt;cd&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="nv"&gt;$1&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;
&lt;span class="nb"&gt;shift&lt;/span&gt;

&lt;span class="k"&gt;while&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;((&lt;/span&gt;&lt;span class="si"&gt;${#}&lt;/span&gt;&lt;span class="o"&gt;))&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;do&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="nv"&gt;IFS&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;;&amp;#39;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nb"&gt;read&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;-a&lt;span class="w"&gt; &lt;/span&gt;files&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&amp;lt;&amp;lt;&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;1&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="k"&gt;for&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;word&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;in&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;files&lt;/span&gt;&lt;span class="p"&gt;[@]&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;do&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;deskew&lt;span class="w"&gt; &lt;/span&gt;-b&lt;span class="w"&gt; &lt;/span&gt;ffffff&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;word&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;-o&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;word&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;_deskew.jpg&amp;quot;&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;tesseract&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;word&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;_deskew.jpg&amp;quot;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;word&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;_ocr&amp;quot;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;-l&lt;span class="w"&gt; &lt;/span&gt;deu&lt;span class="w"&gt; &lt;/span&gt;pdf
&lt;span class="w"&gt;    &lt;/span&gt;rm&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;word&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;_deskew.jpg&amp;quot;&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="k"&gt;done&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="nb"&gt;shift&lt;/span&gt;
&lt;span class="k"&gt;done&lt;/span&gt;

&lt;span class="c1"&gt;# Auskommentieren, wenn keine kombinierte PDF benötigt wird.&lt;/span&gt;
pdftk&lt;span class="w"&gt; &lt;/span&gt;*_ocr.pdf&lt;span class="w"&gt; &lt;/span&gt;cat&lt;span class="w"&gt; &lt;/span&gt;output&lt;span class="w"&gt; &lt;/span&gt;combined_&lt;span class="k"&gt;$(&lt;/span&gt;date&lt;span class="w"&gt; &lt;/span&gt;+&lt;span class="s2"&gt;&amp;quot;%Y_%m_%d_%I_%M&amp;quot;&lt;/span&gt;&lt;span class="k"&gt;)&lt;/span&gt;.pdf
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Anschließend ausführbar markieren: &lt;code&gt;chmod +x /usr/local/bin/nemo_ocr&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Nun das Script für die Nemo Aktion anlegen:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="n"&gt;cd&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;~/&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;local&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;share&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;nemo&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;actions&lt;/span&gt;
&lt;span class="n"&gt;cat&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&amp;lt;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;EOF&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;OCR&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;nemo_action&lt;/span&gt;
&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;Nemo&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;Action&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="n"&gt;Active&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nb"&gt;true&lt;/span&gt;
&lt;span class="n"&gt;Name&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;OCR&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;zu&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;PDF&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;deu&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;Comment&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;OCR&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;auf&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;Dokument&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;ausführen&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;und&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;PDF&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;erstellen&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;deu&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;Exec&lt;/span&gt;&lt;span class="o"&gt;=/&lt;/span&gt;&lt;span class="n"&gt;usr&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;local&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;bin&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;nemo_ocr&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;&amp;quot;%P&amp;quot;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;&amp;quot;%F&amp;quot;&lt;/span&gt;
&lt;span class="n"&gt;Icon&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;Name&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;pdf&lt;/span&gt;
&lt;span class="n"&gt;Selection&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;any&lt;/span&gt;
&lt;span class="n"&gt;Extensions&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;any&lt;/span&gt;
&lt;span class="n"&gt;EscapeSpaces&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nb"&gt;false&lt;/span&gt;
&lt;span class="n"&gt;Separator&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="n"&gt;EOF&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Diese Action kann entsprechend auf Extensions limitiert werden (&lt;code&gt;Extensions=jpeg;jpg;png;&lt;/code&gt; etwa).&lt;/p&gt;
&lt;p&gt;Benötigt selbstverständlich die jeweiligen Pakete:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;sudo apt-get install tesseract-ocr tesseract-ocr-deu pdftk
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;&lt;code&gt;tesseract-ocr-deu&lt;/code&gt; steht dabei für das deutsche Sprachpaket. Mit &lt;code&gt;pdftk&lt;/code&gt; werden PDFs verändert - in dem Fall zusammengefügt.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;deskew&lt;/code&gt; findet ihr &lt;a href="https://github.com/galfar/deskew/releases"&gt;hier&lt;/a&gt;. Einfach entpacken und die &lt;code&gt;deskew&lt;/code&gt; Datei aus dem &lt;code&gt;Bin&lt;/code&gt; Verzeichnis nach, beispielsweise, &lt;code&gt;/usr/local/bin&lt;/code&gt; kopieren und ausführbar markieren.&lt;/p&gt;
&lt;p&gt;Mehr zu den Nemo Actions &lt;a href="https://github.com/linuxmint/nemo/blob/master/files/usr/share/nemo/actions/sample.nemo_action"&gt;hier&lt;/a&gt;.&lt;/p&gt;</content><category term="Linux"></category><category term="linux"></category><category term="debian"></category><category term="ocr"></category><category term="pdf"></category></entry><entry><title>HEIC Dateien in Linux Mint/Ubuntu Bildbetrachter öffnen und Thumbnails anzeigen</title><link href="https://debinux.de/heic-dateien-in-linux-mintubuntu-bildbetrachter-offnen-und-thumbnails-anzeigen.html" rel="alternate"></link><published>2021-08-17T11:15:00+02:00</published><updated>2021-11-08T08:09:00+01:00</updated><author><name>André Peters</name></author><id>tag:debinux.de,2021-08-17:/heic-dateien-in-linux-mintubuntu-bildbetrachter-offnen-und-thumbnails-anzeigen.html</id><summary type="html">&lt;p&gt;Update vom 08. Nov 2021: Zeigt zudem Thumbnails in Nautilus an.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;sudo apt install heif-gdk-pixbuf heif-thumbnailer libheif1
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Das war's schon ...&lt;a class="read-more" href="/heic-dateien-in-linux-mintubuntu-bildbetrachter-offnen-und-thumbnails-anzeigen.html"&gt;&lt;span&gt;weiterlesen&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;</summary><content type="html">&lt;p&gt;Update vom 08. Nov 2021: Zeigt zudem Thumbnails in Nautilus an.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;sudo apt install heif-gdk-pixbuf heif-thumbnailer libheif1
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Das war's schon.&lt;/p&gt;</content><category term="Linux"></category><category term="linux"></category><category term="debian"></category><category term="ubuntu"></category><category term="heif"></category><category term="heic"></category></entry><entry><title>iCloud, OneDrive: Attribut "Always keep on device" per PS setzen</title><link href="https://debinux.de/icloud-onedrive-attribut-always-keep-on-device-per-ps-setzen.html" rel="alternate"></link><published>2021-06-06T09:19:00+02:00</published><updated>2021-06-06T09:19:00+02:00</updated><author><name>André Peters</name></author><id>tag:debinux.de,2021-06-06:/icloud-onedrive-attribut-always-keep-on-device-per-ps-setzen.html</id><summary type="html">&lt;p&gt;Da es scheinbar vorkommt, dass Dateien trotz Wunsch zur lokalen Verf&amp;#252;gbarkeit nicht heruntergeladen werden, habe ich mir kurzerhand die Attribute ...&lt;a class="read-more" href="/icloud-onedrive-attribut-always-keep-on-device-per-ps-setzen.html"&gt;&lt;span&gt;weiterlesen&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;</summary><content type="html">&lt;p&gt;Da es scheinbar vorkommt, dass Dateien trotz Wunsch zur lokalen Verfügbarkeit nicht heruntergeladen werden, habe ich mir kurzerhand die Attribute der Dateien angeschaut, verglichen und festgestellt, dass OneDrive als auch iCloud das Attribut "525344" bzw. "0x00080420" setzen, wenn "Always keep on this device" gesetzt ist.&lt;/p&gt;
&lt;p&gt;Das Attribute für "Free up space" ist demnach wohl "5248544" bzw. "0x5248544", das habe ich jedoch nicht weiter getestet.&lt;/p&gt;
&lt;p&gt;Um alle nicht sofort lokal verfügbaren Dateien anzupassen, habe ich mir folgendes Script erstellt:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="nv"&gt;get&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nv"&gt;childitem&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mh"&gt;$e&lt;/span&gt;&lt;span class="nv"&gt;nv&lt;/span&gt;:&lt;span class="nv"&gt;userprofile&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;\Pictures\iCloud Photos\Photos&amp;#39;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nv"&gt;Force&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nv"&gt;File&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nv"&gt;Recurse&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="k"&gt;Include&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="nv"&gt;heic&lt;/span&gt;,&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="nv"&gt;jpg&lt;/span&gt;,&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="nv"&gt;jpeg&lt;/span&gt;,&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="nv"&gt;png&lt;/span&gt;,&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="nv"&gt;gif&lt;/span&gt;,&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="nv"&gt;mp4&lt;/span&gt;,&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="nv"&gt;mov&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;where&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;Attributes&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nv"&gt;ne&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;525344&amp;#39;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;foreach&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;{
&lt;span class="w"&gt;    &lt;/span&gt;$&lt;span class="nv"&gt;prop&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;Get&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nv"&gt;ItemProperty&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nv"&gt;Path&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;$&lt;span class="nv"&gt;_&lt;/span&gt;.&lt;span class="nv"&gt;fullname&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;$&lt;span class="nv"&gt;prop&lt;/span&gt;.&lt;span class="nv"&gt;Attributes&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;$&lt;span class="nv"&gt;prop&lt;/span&gt;.&lt;span class="nv"&gt;Attributes&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nv"&gt;bor&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;525344&lt;/span&gt;
}
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Ein Aufgabenplaner-Job könnte so aussehen:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="k"&gt;[...]&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="na"&gt;&amp;lt;Exec&amp;gt;&lt;/span&gt;
&lt;span class="w"&gt;      &lt;/span&gt;&lt;span class="na"&gt;&amp;lt;Command&amp;gt;powershell&amp;lt;/Command&amp;gt;&lt;/span&gt;
&lt;span class="w"&gt;      &lt;/span&gt;&lt;span class="na"&gt;&amp;lt;Arguments&amp;gt;-executionpolicy bypass -file c&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="s"&gt;\fix_sync_icloud.ps1&amp;lt;/Arguments&amp;gt;&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="na"&gt;&amp;lt;/Exec&amp;gt;&lt;/span&gt;
&lt;span class="k"&gt;[...]&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</content><category term="Windows"></category><category term="windows"></category><category term="icloud"></category><category term="apple"></category></entry><entry><title>IPv6 Prefix via Nginx, LUA und einem einfachen Bash-Script ausgeben (ohne PHP)</title><link href="https://debinux.de/ipv6-prefix-via-nginx-lua-und-einem-einfachen-bash-script-ausgeben-ohne-php.html" rel="alternate"></link><published>2021-04-30T23:33:00+02:00</published><updated>2021-04-30T23:33:00+02:00</updated><author><name>André Peters</name></author><id>tag:debinux.de,2021-04-30:/ipv6-prefix-via-nginx-lua-und-einem-einfachen-bash-script-ausgeben-ohne-php.html</id><summary type="html">&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;ein Snippet (mal wieder). Daher ganz kurz und knapp.&lt;/p&gt;
&lt;p&gt;Unter Debian ben&amp;#246;tigt ihr die Pakete &lt;code&gt;nginx-full&lt;/code&gt; sowie &lt;code&gt;subnetcalc&lt;/code&gt;, da ...&lt;a class="read-more" href="/ipv6-prefix-via-nginx-lua-und-einem-einfachen-bash-script-ausgeben-ohne-php.html"&gt;&lt;span&gt;weiterlesen&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;</summary><content type="html">&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;ein Snippet (mal wieder). Daher ganz kurz und knapp.&lt;/p&gt;
&lt;p&gt;Unter Debian benötigt ihr die Pakete &lt;code&gt;nginx-full&lt;/code&gt; sowie &lt;code&gt;subnetcalc&lt;/code&gt;, da hier die entsprechenden LUA Module vorhanden sind.
Wer ganz wild drauf ist, kompiliert es sich nach... :)&lt;/p&gt;
&lt;p&gt;In der entsprechenden Site-Konfiguration:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="nx"&gt;location&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nx"&gt;default_type&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;&amp;#39;&lt;/span&gt;&lt;span class="nx"&gt;text&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="nx"&gt;plain&lt;/span&gt;&lt;span class="err"&gt;&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nx"&gt;content_by_lua_block&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="nx"&gt;local&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;handle&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;io&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;popen&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;/opt/ip6_prefix.sh&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="nx"&gt;local&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;result&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;handle&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nx"&gt;read&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;*a&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="nx"&gt;handle&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nx"&gt;close&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="nx"&gt;ngx&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;header&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;content_type&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;&amp;quot;text/plain&amp;quot;&lt;/span&gt;
&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="nx"&gt;ngx&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;say&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;result&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Das Script &lt;b&gt;/opt/ip6_prefix.sh&lt;/b&gt;:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
subnetcalc $(curl -6 ip6.mailcow.email -s) 64 -n | grep Network | cut -d= -f2 | tr -d &amp;#39;[:space:]&amp;#39;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Anschließend als ausführbar markieren durch &lt;code&gt;chmod +x /opt/ip6_prefix.sh&lt;/code&gt;&lt;/p&gt;</content><category term="Linux"></category><category term="linux"></category><category term="nginx"></category><category term="lua"></category><category term="ipv6"></category></entry><entry><title>Firefox: Einzelne Zonen über IPv4 auflösen</title><link href="https://debinux.de/firefox-einzelne-zonen-uber-ipv4-auflosen.html" rel="alternate"></link><published>2021-04-30T23:26:00+02:00</published><updated>2021-04-30T23:26:00+02:00</updated><author><name>André Peters</name></author><id>tag:debinux.de,2021-04-30:/firefox-einzelne-zonen-uber-ipv4-auflosen.html</id><content type="html">&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;ein kleines Snippet...&lt;/p&gt;
&lt;p&gt;Zuerst &lt;code&gt;about:config&lt;/code&gt; öffnen, anschließend:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;network.dns.ipv4OnlyDomains = .netflix.com,.google.com
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</content><category term="Firefox"></category><category term="firefox"></category><category term="ipv4"></category></entry><entry><title>for-loop zum Mounten vor chroot</title><link href="https://debinux.de/for-loop-zum-mounten-vor-chroot.html" rel="alternate"></link><published>2021-04-01T17:35:00+02:00</published><updated>2021-04-01T17:35:00+02:00</updated><author><name>André Peters</name></author><id>tag:debinux.de,2021-04-01:/for-loop-zum-mounten-vor-chroot.html</id><content type="html">&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;#&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;for&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;i&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;in&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;proc&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;sys&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;dev&lt;/span&gt;&lt;span class="c1"&gt;; do mount --rbind /$i /mnt/$i ; done&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Scharmlos geklaut aus dem SUSE Wiki. :)&lt;/p&gt;</content><category term="Linux"></category><category term="linux"></category></entry><entry><title>Dateiberechtigungen sichern</title><link href="https://debinux.de/dateiberechtigungen-sichern.html" rel="alternate"></link><published>2021-02-16T11:12:00+01:00</published><updated>2021-02-16T11:12:00+01:00</updated><author><name>André Peters</name></author><id>tag:debinux.de,2021-02-16:/dateiberechtigungen-sichern.html</id><summary type="html">&lt;p&gt;Ein kleiner Helfer, der gerne beim Backup vergessen wird: &lt;code&gt;getfacl&lt;/code&gt; - &lt;em&gt;get file acl&lt;/em&gt;.
Das Tool sichert die Dateiberechtigungen (auch rekursiv ...&lt;a class="read-more" href="/dateiberechtigungen-sichern.html"&gt;&lt;span&gt;weiterlesen&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;</summary><content type="html">&lt;p&gt;Ein kleiner Helfer, der gerne beim Backup vergessen wird: &lt;code&gt;getfacl&lt;/code&gt; - &lt;em&gt;get file acl&lt;/em&gt;.
Das Tool sichert die Dateiberechtigungen (auch rekursiv: -R):&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;getfacl -R /ein/pfad &amp;gt; acl_ein_pfad_$(date +&amp;quot;%d.%m.%Y_%H%M&amp;quot;).acl
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Und zurück:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;setfacl --restore=datei.acl
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Für Debian und Ubuntu lautet der Paketname "acl".&lt;/p&gt;</content><category term="Linux"></category><category term="linux"></category><category term="acl"></category><category term="backup"></category></entry><entry><title>Windows DNS Cache deaktivieren/aktivieren</title><link href="https://debinux.de/windows-dns-cache-deaktivierenaktivieren.html" rel="alternate"></link><published>2021-02-01T11:35:00+01:00</published><updated>2021-02-01T11:35:00+01:00</updated><author><name>André Peters</name></author><id>tag:debinux.de,2021-02-01:/windows-dns-cache-deaktivierenaktivieren.html</id><summary type="html">&lt;p&gt;Deaktivieren:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="kt"&gt;reg&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;add&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;"HKLM\System\CurrentControlSet\Services\Dnscache"&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;v&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;"Start"&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;t&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;REG_DWORD&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;d&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;"4"&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;f&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Aktivieren:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="kt"&gt;reg&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;add&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;"HKLM\System ...&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;a class="read-more" href="/windows-dns-cache-deaktivierenaktivieren.html"&gt;&lt;span&gt;weiterlesen&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;</summary><content type="html">&lt;p&gt;Deaktivieren:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="kt"&gt;reg&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;add&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;&amp;quot;HKLM\System\CurrentControlSet\Services\Dnscache&amp;quot;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;v&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;&amp;quot;Start&amp;quot;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;t&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;REG_DWORD&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;d&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;&amp;quot;4&amp;quot;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;f&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Aktivieren:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="kt"&gt;reg&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;add&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;&amp;quot;HKLM\System\CurrentControlSet\Services\Dnscache&amp;quot;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;v&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;&amp;quot;Start&amp;quot;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;t&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;REG_DWORD&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;d&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;&amp;quot;2&amp;quot;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;f&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</content><category term="Windows"></category><category term="windows"></category><category term="dns"></category></entry><entry><title>GoCryptFS kompilieren (für HW-beschleunigtes AES) und Systemd Dienst einrichten</title><link href="https://debinux.de/gocryptfs-kompilieren-fur-hw-beschleunigtes-aes-und-systemd-dienst-einrichten.html" rel="alternate"></link><published>2020-08-10T12:23:00+02:00</published><updated>2020-08-10T12:23:00+02:00</updated><author><name>André Peters</name></author><id>tag:debinux.de,2020-08-10:/gocryptfs-kompilieren-fur-hw-beschleunigtes-aes-und-systemd-dienst-einrichten.html</id><summary type="html">&lt;p&gt;&lt;strong&gt;Wichtig&lt;/strong&gt;: Nach der Initialisierung den Master-Key sicher speichern!&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="err"&gt;#&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mf"&gt;1.&lt;/span&gt;
&lt;span class="n"&gt;yum&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;install&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;openssl&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;devel&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;fuse&lt;/span&gt;

&lt;span class="err"&gt;#&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mf"&gt;2.&lt;/span&gt;
&lt;span class="k"&gt;go&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;get&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;d&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;github&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;com ...&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;a class="read-more" href="/gocryptfs-kompilieren-fur-hw-beschleunigtes-aes-und-systemd-dienst-einrichten.html"&gt;&lt;span&gt;weiterlesen&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;</summary><content type="html">&lt;p&gt;&lt;strong&gt;Wichtig&lt;/strong&gt;: Nach der Initialisierung den Master-Key sicher speichern!&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="err"&gt;#&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mf"&gt;1.&lt;/span&gt;
&lt;span class="n"&gt;yum&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;install&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;openssl&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;devel&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;fuse&lt;/span&gt;

&lt;span class="err"&gt;#&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mf"&gt;2.&lt;/span&gt;
&lt;span class="k"&gt;go&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;get&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;d&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;github&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;com&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;rfjakob&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;gocryptfs&lt;/span&gt;
&lt;span class="n"&gt;cd&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;$&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;go&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;env&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;GOPATH&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;src&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;github&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;com&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;rfjakob&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;gocryptfs&lt;/span&gt;
&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;build&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;bash&lt;/span&gt;
&lt;span class="n"&gt;cp&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;gocryptfs&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;usr&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="k"&gt;local&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;bin&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;

&lt;span class="err"&gt;#&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mf"&gt;3.&lt;/span&gt;
&lt;span class="n"&gt;mkdir&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;p&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="k"&gt;data&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="err"&gt;{&lt;/span&gt;&lt;span class="n"&gt;crypted&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;decrypted&lt;/span&gt;&lt;span class="err"&gt;}&lt;/span&gt;

&lt;span class="err"&gt;#&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mf"&gt;4.&lt;/span&gt;
&lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="n"&gt; ! -f /data/crypted/gocryptfs.conf &lt;/span&gt;&lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;then&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;!&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;gocryptfs&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;init&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="k"&gt;data&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;crypted&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;then&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="n"&gt;echo&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="ss"&gt;&amp;quot;cannot init /data/crypted directory, skipping&amp;quot;&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="n"&gt;fi&lt;/span&gt;
&lt;span class="k"&gt;else&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="n"&gt;echo&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="ss"&gt;&amp;quot;/data/crypted is an initialized gocryptfs directory&amp;quot;&lt;/span&gt;
&lt;span class="n"&gt;fi&lt;/span&gt;

&lt;span class="err"&gt;#&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mf"&gt;5.&lt;/span&gt;
&lt;span class="n"&gt;systemctl&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;stop&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;gocryptfs&lt;/span&gt;

&lt;span class="err"&gt;#&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mf"&gt;6.&lt;/span&gt;
&lt;span class="n"&gt;cat&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&amp;lt;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;EOF&amp;#39;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;etc&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;systemd&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="k"&gt;system&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;gocryptfs&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;service&lt;/span&gt;
&lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="n"&gt;Unit&lt;/span&gt;&lt;span class="o"&gt;]&lt;/span&gt;
&lt;span class="n"&gt;Description&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;gocryptfs&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;Mount&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;Unit&lt;/span&gt;
&lt;span class="n"&gt;Requires&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;network&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;target&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;local&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;fs&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;target&lt;/span&gt;
&lt;span class="k"&gt;After&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;network&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;target&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;local&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;fs&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;target&lt;/span&gt;
&lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="n"&gt;Service&lt;/span&gt;&lt;span class="o"&gt;]&lt;/span&gt;
&lt;span class="n"&gt;Type&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;forking&lt;/span&gt;
&lt;span class="n"&gt;ExecStart&lt;/span&gt;&lt;span class="o"&gt;=/&lt;/span&gt;&lt;span class="n"&gt;usr&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="k"&gt;local&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;bin&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;gocryptfs&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;extpass&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="ss"&gt;&amp;quot;systemd-ask-password GoCryptFS:&amp;quot;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;allow_other&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="k"&gt;data&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;crypted&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="k"&gt;data&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;decrypted&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;
&lt;span class="n"&gt;Restart&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="k"&gt;on&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;failure&lt;/span&gt;
&lt;span class="n"&gt;RestartSec&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;5&lt;/span&gt;
&lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="n"&gt;Install&lt;/span&gt;&lt;span class="o"&gt;]&lt;/span&gt;
&lt;span class="n"&gt;WantedBy&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;multi&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="k"&gt;user&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;target&lt;/span&gt;
&lt;span class="n"&gt;EOF&lt;/span&gt;

&lt;span class="n"&gt;systemctl&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;daemon&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;reload&lt;/span&gt;
&lt;span class="err"&gt;#&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;Do&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="ow"&gt;not&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;start&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;on&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;boot&lt;/span&gt;
&lt;span class="n"&gt;systemctl&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;disable&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;gocryptfs&lt;/span&gt;

&lt;span class="err"&gt;#&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mf"&gt;7.&lt;/span&gt;
&lt;span class="n"&gt;until&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;systemctl&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;start&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;gocryptfs&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;do&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="n"&gt;sleep&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;
&lt;span class="n"&gt;done&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</content><category term="Linux"></category><category term="linux"></category><category term="crypt"></category></entry><entry><title>Rsyslog: via UDP erhaltene Logs in eine Datei schreiben</title><link href="https://debinux.de/rsyslog-via-udp-erhaltene-logs-in-eine-datei-schreiben.html" rel="alternate"></link><published>2020-05-29T15:45:00+02:00</published><updated>2020-05-29T15:45:00+02:00</updated><author><name>André Peters</name></author><id>tag:debinux.de,2020-05-29:/rsyslog-via-udp-erhaltene-logs-in-eine-datei-schreiben.html</id><content type="html">&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="o"&gt;$&lt;/span&gt;&lt;span class="n"&gt;template&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;RemoteUDP&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;/var/log/remote-udp.log&amp;quot;&lt;/span&gt;
&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="n"&gt;inputname&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;isequal&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;imudp&amp;quot;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;?&lt;/span&gt;&lt;span class="n"&gt;RemoteUDP&lt;/span&gt;
&lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;~&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;&lt;code&gt;&amp;amp; ~&lt;/code&gt; beendet die Verarbeitung der Regel.&lt;/p&gt;</content><category term="Linux"></category><category term="linux"></category><category term="rsyslog"></category></entry><entry><title>Template Zammad Reverse Proxy mit Apache</title><link href="https://debinux.de/template-zammad-reverse-proxy-mit-apache.html" rel="alternate"></link><published>2020-01-16T12:10:00+01:00</published><updated>2020-01-16T12:10:00+01:00</updated><author><name>André Peters</name></author><id>tag:debinux.de,2020-01-16:/template-zammad-reverse-proxy-mit-apache.html</id><summary type="html">&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;VirtualHost&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;*:80&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;ServerName&lt;span class="w"&gt; &lt;/span&gt;ticket.domain.tld
&lt;span class="w"&gt;  &lt;/span&gt;RewriteEngine&lt;span class="w"&gt; &lt;/span&gt;on
&lt;span class="w"&gt;  &lt;/span&gt;RewriteCond&lt;span class="w"&gt; &lt;/span&gt;%{HTTPS}&lt;span class="w"&gt; &lt;/span&gt;!=on
&lt;span class="w"&gt;  &lt;/span&gt;RewriteRule&lt;span class="w"&gt; &lt;/span&gt;^/?(.*)&lt;span class="w"&gt; &lt;/span&gt;https://%{HTTP_HOST}/$1&lt;span class="w"&gt; &lt;/span&gt;[R=301,L]
&lt;span class="w"&gt;  &lt;/span&gt;ProxyPass&lt;span class="w"&gt; &lt;/span&gt;/&lt;span class="w"&gt; &lt;/span&gt;http ...&lt;/code&gt;&lt;/pre&gt;&lt;a class="read-more" href="/template-zammad-reverse-proxy-mit-apache.html"&gt;&lt;span&gt;weiterlesen&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;</summary><content type="html">&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;VirtualHost&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;*:80&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;ServerName&lt;span class="w"&gt; &lt;/span&gt;ticket.domain.tld
&lt;span class="w"&gt;  &lt;/span&gt;RewriteEngine&lt;span class="w"&gt; &lt;/span&gt;on
&lt;span class="w"&gt;  &lt;/span&gt;RewriteCond&lt;span class="w"&gt; &lt;/span&gt;%{HTTPS}&lt;span class="w"&gt; &lt;/span&gt;!=on
&lt;span class="w"&gt;  &lt;/span&gt;RewriteRule&lt;span class="w"&gt; &lt;/span&gt;^/?(.*)&lt;span class="w"&gt; &lt;/span&gt;https://%{HTTP_HOST}/$1&lt;span class="w"&gt; &lt;/span&gt;[R=301,L]
&lt;span class="w"&gt;  &lt;/span&gt;ProxyPass&lt;span class="w"&gt; &lt;/span&gt;/&lt;span class="w"&gt; &lt;/span&gt;http://127.0.0.1:8090/
&lt;span class="w"&gt;  &lt;/span&gt;ProxyPassReverse&lt;span class="w"&gt; &lt;/span&gt;/&lt;span class="w"&gt; &lt;/span&gt;http://127.0.0.1:8090/
&lt;span class="w"&gt;  &lt;/span&gt;ProxyPreserveHost&lt;span class="w"&gt; &lt;/span&gt;On
&lt;span class="w"&gt;  &lt;/span&gt;ProxyAddHeaders&lt;span class="w"&gt; &lt;/span&gt;On
&lt;span class="w"&gt;  &lt;/span&gt;RequestHeader&lt;span class="w"&gt; &lt;/span&gt;set&lt;span class="w"&gt; &lt;/span&gt;X-Forwarded-Proto&lt;span class="w"&gt; &lt;/span&gt;&amp;quot;http&amp;quot;
&lt;span class="nt"&gt;&amp;lt;/VirtualHost&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;VirtualHost&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;*:443&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;ServerName&lt;span class="w"&gt; &lt;/span&gt;ticket.domain.tld
&lt;span class="w"&gt;  &lt;/span&gt;ProxyPass&lt;span class="w"&gt; &lt;/span&gt;/ws&lt;span class="w"&gt; &lt;/span&gt;ws://127.0.0.1:8090/ws
&lt;span class="w"&gt;  &lt;/span&gt;ProxyPassReverse&lt;span class="w"&gt; &lt;/span&gt;/ws&lt;span class="w"&gt; &lt;/span&gt;ws://127.0.0.1:8090/ws
&lt;span class="w"&gt;  &lt;/span&gt;ProxyPass&lt;span class="w"&gt; &lt;/span&gt;/&lt;span class="w"&gt; &lt;/span&gt;http://127.0.0.1:8090/
&lt;span class="w"&gt;  &lt;/span&gt;ProxyPassReverse&lt;span class="w"&gt; &lt;/span&gt;/&lt;span class="w"&gt; &lt;/span&gt;http://127.0.0.1:8090/
&lt;span class="w"&gt;  &lt;/span&gt;ProxyPreserveHost&lt;span class="w"&gt; &lt;/span&gt;On
&lt;span class="w"&gt;  &lt;/span&gt;ProxyAddHeaders&lt;span class="w"&gt; &lt;/span&gt;On
&lt;span class="w"&gt;  &lt;/span&gt;RequestHeader&lt;span class="w"&gt; &lt;/span&gt;set&lt;span class="w"&gt; &lt;/span&gt;X-Forwarded-Proto&lt;span class="w"&gt; &lt;/span&gt;&amp;#39;https&amp;#39;env=HTTPS
&lt;span class="w"&gt;  &lt;/span&gt;RequestHeader&lt;span class="w"&gt; &lt;/span&gt;set&lt;span class="w"&gt; &lt;/span&gt;X-Forwarded-Ssl&lt;span class="w"&gt; &lt;/span&gt;on
&lt;span class="w"&gt;  &lt;/span&gt;SSLCertificateFile&lt;span class="w"&gt; &lt;/span&gt;/etc/letsencrypt/live/ticket.domain.tld/fullchain.pem
&lt;span class="w"&gt;  &lt;/span&gt;SSLCertificateKeyFile&lt;span class="w"&gt; &lt;/span&gt;/etc/letsencrypt/live/ticket.domain.tld/privkey.pem
Include&lt;span class="w"&gt; &lt;/span&gt;/etc/letsencrypt/options-ssl-apache.conf
&lt;span class="nt"&gt;&amp;lt;/VirtualHost&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</content><category term="Linux"></category><category term="linux"></category><category term="apache2"></category><category term="zammad"></category></entry><entry><title>Rspamd: Subject umschreiben und Reply-To hinzufügen</title><link href="https://debinux.de/rspamd-subject-umschreiben-und-reply-to-hinzufugen.html" rel="alternate"></link><published>2019-12-28T22:26:00+01:00</published><updated>2019-12-28T22:26:00+01:00</updated><author><name>André Peters</name></author><id>tag:debinux.de,2019-12-28:/rspamd-subject-umschreiben-und-reply-to-hinzufugen.html</id><summary type="html">&lt;p&gt;&amp;#196;ndert Subject auf "[Tag] Altes-Subject" und f&amp;#252;gt einen Reply-To "moo@moo.com" hinzu.&lt;/p&gt;
&lt;p&gt;Die alten Headerfelder werden vorher entfernt.&lt;/p&gt;
&lt;p&gt;Nur ...&lt;a class="read-more" href="/rspamd-subject-umschreiben-und-reply-to-hinzufugen.html"&gt;&lt;span&gt;weiterlesen&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;</summary><content type="html">&lt;p&gt;Ändert Subject auf "[Tag] Altes-Subject" und fügt einen Reply-To "moo@moo.com" hinzu.&lt;/p&gt;
&lt;p&gt;Die alten Headerfelder werden vorher entfernt.&lt;/p&gt;
&lt;p&gt;Nur ein Snippet.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;remove_headers { X = 0 }&lt;/code&gt; sollte alle Header entfernen, nicht nur den ersten. Beim Subject und Reply-To eher unnötig.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="n"&gt;rspamd_config&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="n"&gt;register_symbol&lt;/span&gt;&lt;span class="o"&gt;({&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;SUBJECT_REWRITE_ADD_HEADER&amp;#39;&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="n"&gt;type&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;postfilter&amp;#39;&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="n"&gt;callback&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kd"&gt;function&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;task&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="n"&gt;local&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;util&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;require&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;rspamd_util&amp;quot;&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="n"&gt;local&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;rspamd_logger&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;require&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;rspamd_logger&amp;quot;&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="n"&gt;local&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;mailcow_domain&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;task&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="n"&gt;get_symbol&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;RCPT_MAILCOW_DOMAIN&amp;quot;&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;mailcow_domain&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;then&lt;/span&gt;
&lt;span class="w"&gt;      &lt;/span&gt;&lt;span class="n"&gt;local&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;tag&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;Tag&amp;quot;&lt;/span&gt;
&lt;span class="w"&gt;      &lt;/span&gt;&lt;span class="n"&gt;rspamd_logger&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;infox&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;add fancy list header&amp;quot;&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;
&lt;span class="w"&gt;      &lt;/span&gt;&lt;span class="n"&gt;local&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;sbj&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;task&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="n"&gt;get_header&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;Subject&amp;#39;&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;
&lt;span class="w"&gt;      &lt;/span&gt;&lt;span class="n"&gt;new_sbj&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;=?UTF-8?B?&amp;#39;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;..&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;tostring&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;util&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;encode_base64&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;[&amp;#39;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;..&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;tag&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;..&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;] &amp;#39;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;..&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;sbj&lt;/span&gt;&lt;span class="o"&gt;))&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;..&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;?=&amp;#39;&lt;/span&gt;
&lt;span class="w"&gt;      &lt;/span&gt;&lt;span class="n"&gt;task&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="n"&gt;set_milter_reply&lt;/span&gt;&lt;span class="o"&gt;({&lt;/span&gt;
&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="n"&gt;remove_headers&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;{&lt;/span&gt;
&lt;span class="w"&gt;          &lt;/span&gt;&lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;Subject&amp;#39;&lt;/span&gt;&lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt;
&lt;span class="w"&gt;          &lt;/span&gt;&lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;Reply-To&amp;#39;&lt;/span&gt;&lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt;
&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="o"&gt;},&lt;/span&gt;
&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="n"&gt;add_headers&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;{&lt;/span&gt;
&lt;span class="w"&gt;          &lt;/span&gt;&lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;Subject&amp;#39;&lt;/span&gt;&lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;new_sbj&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt;
&lt;span class="w"&gt;          &lt;/span&gt;&lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;Reply-To&amp;#39;&lt;/span&gt;&lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;moo@moo.com&amp;#39;&lt;/span&gt;
&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="o"&gt;}&lt;/span&gt;
&lt;span class="w"&gt;      &lt;/span&gt;&lt;span class="o"&gt;})&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="n"&gt;end&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="n"&gt;end&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="n"&gt;priority&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;11&lt;/span&gt;
&lt;span class="o"&gt;})&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</content><category term="Linux"></category><category term="linux"></category><category term="rspamd"></category></entry><entry><title>Rspamd: Ratelimit-Überschreitung in Slack Channel teilen</title><link href="https://debinux.de/rspamd-ratelimit-uberschreitung-in-slack-channel-teilen.html" rel="alternate"></link><published>2018-12-16T10:49:00+01:00</published><updated>2018-12-16T10:49:00+01:00</updated><author><name>André Peters</name></author><id>tag:debinux.de,2018-12-16:/rspamd-ratelimit-uberschreitung-in-slack-channel-teilen.html</id><summary type="html">&lt;p&gt;Hallo,&lt;/p&gt;
&lt;p&gt;Long time no read.&lt;/p&gt;
&lt;p&gt;Mehr ein Snippet als ein echter Beitrag.&lt;/p&gt;
&lt;p&gt;Verwendet wird der der metadata_exporter von Rspamd. Eine ...&lt;a class="read-more" href="/rspamd-ratelimit-uberschreitung-in-slack-channel-teilen.html"&gt;&lt;span&gt;weiterlesen&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;</summary><content type="html">&lt;p&gt;Hallo,&lt;/p&gt;
&lt;p&gt;Long time no read.&lt;/p&gt;
&lt;p&gt;Mehr ein Snippet als ein echter Beitrag.&lt;/p&gt;
&lt;p&gt;Verwendet wird der der metadata_exporter von Rspamd. Eine Mail wird gesendet, wenn das Ratelimit auslöst und die Mail von einem authentifizierten Benutzer kommt. Das kann im LUA-Script entsprechend angepasst werden.&lt;/p&gt;
&lt;p&gt;Hier die "local.d/metadata_exporter.conf":&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="n"&gt;rules&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;{&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="n"&gt;RLINFO&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;{&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="n"&gt;backend&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="ss"&gt;&amp;quot;send_mail&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="n"&gt;smtp&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="ss"&gt;&amp;quot;localhost&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="n"&gt;smtp_port&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;25&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="n"&gt;mail_to&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="ss"&gt;&amp;quot;ratelimit@localhost&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="n"&gt;selector&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="ss"&gt;&amp;quot;ratelimited&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="n"&gt;formatter&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="ss"&gt;&amp;quot;email_alert&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="err"&gt;}&lt;/span&gt;
&lt;span class="err"&gt;}&lt;/span&gt;
&lt;span class="n"&gt;custom_select&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;{&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="n"&gt;ratelimited&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;EOD&lt;/span&gt;
&lt;span class="k"&gt;return&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;function&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;task&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="k"&gt;local&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;ratelimited&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;task&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="n"&gt;get_symbol&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="ss"&gt;&amp;quot;RATELIMITED&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="k"&gt;local&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;uname&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;task&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="n"&gt;get_user&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;uname&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="ow"&gt;and&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;ratelimited&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;then&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="k"&gt;return&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;true&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="k"&gt;end&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="k"&gt;return&lt;/span&gt;
&lt;span class="k"&gt;end&lt;/span&gt;
&lt;span class="n"&gt;EOD&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="err"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Und die entsprechende "local.d/ratelimit.conf", um das Info-Symbol zu setzen:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;info_symbol = &amp;quot;RATELIMITED&amp;quot;;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;In diesem Beispiel pipe ich es via ratelimit@localhost an ein Python-Script, das die Nachricht an einen Slack Channel sendet:&lt;/p&gt;
&lt;p&gt;Das Alias sieht dann etwa so aus:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;ratelimit:      |/usr/local/bin/slack_alert.py
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Das Python Script &lt;code&gt;/usr/local/bin/slack_alert.py&lt;/code&gt;:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="ch"&gt;#!/usr/bin/env python&lt;/span&gt;

&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;json&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;requests&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;sys&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;email&lt;/span&gt;

&lt;span class="n"&gt;webhook_url&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;https://hooks.slack.com/services/AAAAAAAA/BBBBBBB/CCCCCCCCCCCCCCCCCCCCCCC&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="n"&gt;slack_data&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;sys&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;stdin&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;read&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="ow"&gt;not&lt;/span&gt; &lt;span class="n"&gt;slack_data&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
  &lt;span class="nb"&gt;print&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;No data&amp;quot;&lt;/span&gt;
  &lt;span class="n"&gt;exit&lt;/span&gt;

&lt;span class="n"&gt;msg&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;email&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;message_from_string&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;slack_data&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;requests&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;post&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;webhook_url&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;json&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;text&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;msg&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;get_payload&lt;/span&gt;&lt;span class="p"&gt;()},&lt;/span&gt;
    &lt;span class="n"&gt;headers&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;Content-Type&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;application/json&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;response&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;status_code&lt;/span&gt; &lt;span class="o"&gt;!=&lt;/span&gt; &lt;span class="mi"&gt;200&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="k"&gt;raise&lt;/span&gt; &lt;span class="ne"&gt;ValueError&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
        &lt;span class="s1"&gt;&amp;#39;Request to slack returned an error &lt;/span&gt;&lt;span class="si"&gt;%s&lt;/span&gt;&lt;span class="s1"&gt;, the response is:&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="si"&gt;%s&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;&lt;/span&gt;
        &lt;span class="o"&gt;%&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;response&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;status_code&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;response&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;text&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</content><category term="Linux"></category><category term="linux"></category><category term="rspamd"></category></entry></feed>