[{"id":8748,"date":"2026-07-31T06:52:47","date_gmt":"2026-07-31T04:52:47","guid":{"rendered":"https:\/\/speefak.spdns.de\/oss_lifestyle\/?p=8748"},"modified":"2026-07-31T10:44:06","modified_gmt":"2026-07-31T08:44:06","slug":"ipfire-isoliertes-orange-netz-tor-gateway-vs-direkte-vms","status":"publish","type":"post","link":"https:\/\/speefak.spdns.de\/oss_lifestyle\/ipfire-isoliertes-orange-netz-tor-gateway-vs-direkte-vms\/","title":{"rendered":"IPFire mit isolierten Netzwerken und Tor-Gateway-VM einrichten"},"content":{"rendered":"<p>Eine strukturierte Netzwerksegmentierung ist eine zentrale Sicherheitsma\u00dfnahme, um Systeme voneinander zu isolieren und unerw\u00fcnschte Kommunikation zu verhindern. Besonders Testumgebungen, KI-Agenten, Malware-Analysen und andere sicherheitskritische Anwendungen sollten daher in einem separaten, abgeschotteten Netzwerk betrieben werden.<\/p>\n<p>Die klassische IPFire-Netzwerkarchitektur wird f\u00fcr dieses Szenario angepasst. Grund hierf\u00fcr ist die feste Zuordnung der IPFire-Zonen: Die RED-Schnittstelle ist ausschlie\u00dflich als untrusted WAN-Zone f\u00fcr externe Netzwerkverbindungen vorgesehen. Das Internet-Gateway muss daher zwingend im RED-Netz erreichbar sein, eine freie Umdefinition dieser Zone ist in der Standardkonfiguration nicht vorgesehen.<\/p>\n<p>Um dennoch eine vollst\u00e4ndige Trennung zwischen Heimnetz und isolierter Arbeitsumgebung zu erreichen, wird das Heimnetz als vorgelagertes Netzwerk betrieben. Die abgeschottete Umgebung wird \u00fcber die ORANGE-Zone von IPFire bereitgestellt. IPFire \u00fcbernimmt dabei weiterhin die zentrale Kontrolle des Datenverkehrs und setzt die definierten Firewall-Regeln zwischen den Segmenten durch.<\/p>\n<p>Das ORANGE-Netz erh\u00e4lt ausschlie\u00dflich den ben\u00f6tigten Internetzugang, w\u00e4hrend Zugriffe auf das Heimnetz und interne Systeme unterbunden werden. Dadurch bleiben kritische Anwendungen isoliert und das Risiko bei einer m\u00f6glichen Kompromittierung einzelner Systeme wird deutlich reduziert.<\/p>\n<p>Dieses Tutorial beschreibt zwei Varianten f\u00fcr den Betrieb eines isolierten ORANGE-Netzes hinter IPFire. Beide basieren auf derselben Netzwerkstruktur, unterscheiden sich jedoch darin, welche Komponente NAT und DNS-Aufl\u00f6sung \u00fcbernimmt. Davon h\u00e4ngt ab, ob die Konfiguration vollst\u00e4ndig \u00fcber die IPFire-Weboberfl\u00e4che erfolgen kann oder zus\u00e4tzliche Firewall-Anpassungen erforderlich sind.<\/p>\n<hr \/>\n<h2>Gemeinsame Basis: Netzwerkaufbau (2-NIC-Alternative)<\/h2>\n<p>Anstelle einer vollst\u00e4ndigen Trennung \u00fcber drei separate physische bzw. virtuelle Netzwerkschnittstellen (RED\/GREEN\/ORANGE) kann in Proxmox f\u00fcr das oben beschriebene Szenario auch ein reduzierter Aufbau mit nur 2 NICs verwendet werden:<\/p>\n<ul>\n<li>RED \u2192 Bridge vmbr0 (dieselbe Bridge, in der sich auch das Internet-Gateway\/der Heimrouter befindet)<\/li>\n<li>Green \u2192 gemeinsame isolierte Bridge isoLAN (wird nur f\u00fcr die Initial konfiguration ben\u00f6tigt)<\/li>\n<li>ORANGE \u2192 gemeinsame isolierte Bridge isoLAN (vollst\u00e4ndig isoliertes LAN)<\/li>\n<\/ul>\n<p>Auch wenn GREEN und ORANGE derselben Proxmox-Bridge (isoLAN) zugewiesen sind, m\u00fcssen ihnen w\u00e4hrend der IPFire-Ersteinrichtung unterschiedliche IP-Netze zugewiesen werden. Andernfalls k\u00f6nnen die beiden Netzbereiche von IPFire beziehungsweise den iptables-Regeln nicht eindeutig voneinander unterschieden und getrennt behandelt werden.<\/p>\n<hr \/>\n<h2>Vorgehen bei der Ersteinrichtung<\/h2>\n<ol>\n<li>IPFire wird zun\u00e4chst mit aktivem GREEN-Interface auf der Proxmox-Bridge isoLAN eingerichtet. Dabei bleibt die GREEN-NIC verbunden, w\u00e4hrend die ORANGE-NIC in der Proxmox-VM-Konfiguration vorerst deaktiviert wird (link_down=1).<\/li>\n<li>Der Zugriff auf die IPFire-WebGUI zur weiteren Konfiguration erfolgt tempor\u00e4r \u00fcber das GREEN-Netzwerk mittels einer separaten Management-VM. Diese Management-VM wird manuell mit einer statischen IP-Adresse konfiguriert, falls im GREEN-Netzwerk kein DHCP-Server aktiv ist. Die verwendete IP-Adresse muss sich dabei im gleichen Netzwerkbereich befinden wie das in IPFire konfigurierte GREEN-Netz.<\/li>\n<li>\u00dcber das GREEN-Interface wird anschlie\u00dfend die Erreichbarkeit der IPFire-WebGUI aus dem RED-Netz eingerichtet und getestet.<\/li>\n<li>Sobald der Zugriff auf die WebGUI \u00fcber RED erfolgreich funktioniert, wird die GREEN-NIC in der Proxmox-VM-Konfiguration deaktiviert (link_down=1) und stattdessen die ORANGE-NIC aktiviert.<\/li>\n<li>Ab diesem Zeitpunkt erfolgt der Betrieb des isolierten Netzwerks ausschlie\u00dflich \u00fcber die ORANGE-Zone. Das GREEN-Interface bleibt zwar deaktiviert, wird von IPFire jedoch weiterhin als Bestandteil der Firewall-Konfiguration vorausgesetzt und kann nicht vollst\u00e4ndig entfernt werden.<br \/>\n<hr \/>\n<\/li>\n<\/ol>\n<h2>Kommunikation aller Netze untereinander per Default sperren<\/h2>\n<p>Per Default erm\u00f6glicht IPFire die Kommunikation einiger Dienste und Netze untereinander (so hat z.B. GREEN standardm\u00e4\u00dfig Zugriff auf alle \u00fcbrigen Netze). Dieses Verhalten wird in den Firewalloptionen im Abschnitt Standardverhalten der Firewall konfiguriert. Die dort zur Auswahl stehenden M\u00f6glichkeiten (Forward sowie Outgoing) betreffen die Kommunikation der Netze untereinander (Forward) sowie die ausgehende Kommunikation der Firewall selbst (Outgoing). Um die Kommunikation der Netze untereinander vollst\u00e4ndig zu unterbinden und ausschlie\u00dflich explizit \u00fcber Firewallregeln freigegebene Kommunikation zuzulassen, sollte jegliche Kommunikation der Netze untereinander per Default gesperrt werden.<\/p>\n<p>Navigieren Sie zu <strong>Firewall<\/strong> und w\u00e4hlen Sie <strong>Firewalloptionen<\/strong>\u00a0aus.<\/p>\n<p><strong>Abschnitt &#8220;Standardverhalten der Firewall&#8221;:<\/strong><\/p>\n<ul>\n<li>Im Dropdown-Men\u00fc unter Forward von &#8220;zugelassen&#8221; auf &#8220;Blockiert&#8221; \u00e4ndern.<\/li>\n<\/ul>\n<p>Abschlie\u00dfend \u00fcber die Schaltfl\u00e4che &#8220;Speichern&#8221; das Standardverhalten der Firewall aktivieren.<\/p>\n<hr \/>\n<h2>Zugriff auf Firewall aus RED-Netz einrichten (Voraussetzung f\u00fcr beide Varianten)<\/h2>\n<p>Navigieren Sie zu Firewall \u2192 Firewallregeln und w\u00e4hlen Sie &#8220;Neue Regel erstellen&#8221;.<\/p>\n<p><strong>Abschnitt &#8220;Quelle&#8221;:<\/strong><\/p>\n<ul>\n<li>Radiobutton \u201eQuelladresse (IP-\/MAC-Adresse oder IP-Netzwerk)&#8221; aktivieren.<\/li>\n<li>Den IP-Bereich des RED-Netzes direkt in die Eingabemaske eintragen (z. B. 192.168.0.1, abh\u00e4ngig von der Heimnetzkonfiguration)<\/li>\n<li>Alternativ kann das RED-Netzwerk \u00fcber die Standard-Netzwerke ausgew\u00e4hlt werden: Radiobutton &#8220;Standard-Netzwerke&#8221; aktivieren und im Dropdown-Men\u00fc: RED ausw\u00e4hlen<\/li>\n<\/ul>\n<p><strong>Abschnitt &#8220;NAT&#8221;:<\/strong><\/p>\n<ul>\n<li>Checkbox nicht aktivieren (bei DROP\/REJECT ohne Funktion).<\/li>\n<\/ul>\n<p><strong>Abschnitt &#8220;Ziel&#8221;:<\/strong><\/p>\n<ul>\n<li>Radiobutton &#8220;Firewall&#8221; aktivieren.<\/li>\n<li>Dropdown-Men\u00fc: RED.<\/li>\n<\/ul>\n<p><strong>Abschnitt &#8220;Protokoll&#8221;:<\/strong><\/p>\n<ul>\n<li>Dropdown auf &#8220;Alle&#8221; belassen.<\/li>\n<\/ul>\n<p><strong>Abschnitt Aktions-Auswahl:<\/strong><\/p>\n<ul>\n<li>Radiobutton bei &#8220;Verwerfen (DROP)&#8221; ausw\u00e4hlen (stilles Verwerfen, kein REJECT n\u00f6tig \u2013 REJECT w\u00fcrde dem Client eine Fehlermeldung schicken, DROP l\u00e4sst das Paket einfach verschwinden, ist f\u00fcr Isolationszwecke \u00fcblich und etwas unauff\u00e4lliger).<\/li>\n<\/ul>\n<p><strong>Abschnitt &#8220;Weitere Einstellungen&#8221;:<\/strong><\/p>\n<ul>\n<li>Feld &#8220;Anmerkung&#8221;: z. B. &#8220;Zugriff auf Firewall aus RED-Netz erlauben&#8221;.<\/li>\n<li>Feld &#8220;Regelposition&#8221;: 1 (wichtig, da der Zugriff auf die Firewall ohne GREEN andernfalls nicht m\u00f6glich ist).<\/li>\n<li>Checkbox &#8220;Regel aktivieren&#8221; setzen.<\/li>\n<\/ul>\n<p>Abschlie\u00dfend \u00fcber die Schaltfl\u00e4che &#8220;Speichern&#8221; die Regel anlegen.<\/p>\n<p><strong>Hinweis:<\/strong> Die Darstellung in der \u00dcbersicht der Firewallregeln ist etwas \u00fcbersichtlicher, wenn f\u00fcr die Quelle der direkte IP-Bereich statt des Standardnetzes RED eingetragen wird, da in der \u00dcbersicht dann die IP und nicht nur &#8220;RED&#8221; angezeigt wird. Da als Ziel die Firewall direkt ausgew\u00e4hlt wird, erscheint die Regel anschlie\u00dfend im Abschnitt &#8220;Eingehender Firewallzugang&#8221; statt bei den Firewallregeln. S\u00e4mtliche Zugriffe, die die Firewall direkt betreffen, werden in diesem Bereich gelistet.<\/p>\n<p>Damit ist die grundlegende Konfiguration von IPFire f\u00fcr den Zugriff aus dem RED-Netz abgeschlossen.<\/p>\n<hr \/>\n<h2>Konfiguration der ORANGEN Zone<\/h2>\n<p>F\u00fcr die Realisierung eines vollst\u00e4ndig isolierten Netzwerks innerhalb der ORANGE-Zone stehen zwei unterschiedliche Architekturvarianten zur Verf\u00fcgung. Beide Ans\u00e4tze erm\u00f6glichen eine kontrollierte Trennung der Systeme vom internen Netzwerk, unterscheiden sich jedoch hinsichtlich Sicherheitsniveau, \u00dcberwachungsm\u00f6glichkeiten und der Platzierung zentraler Dienste.<\/p>\n<p>Die einfachste und direkt \u00fcber die IPFire-WebGUI konfigurierbare Variante ist die isolierte ORANGE-Zone (B1) mit einem externen DNS-Resolver. Da Firewalls Netzwerkverbindungen grunds\u00e4tzlich anhand von IP-Adressen verarbeiten und regeln, ist f\u00fcr die Aufl\u00f6sung von Domainnamen ein DNS-Resolver erforderlich. Hierf\u00fcr kann entweder ein externer DNS-Dienst im Internet oder alternativ der interne DNS-Resolver von IPFire (B2) verwendet werden.<\/p>\n<p>Bei Verwendung des IPFire-DNS-Resolvers (B2) muss der Zugriff auf Port 53 von der ORANGE-Zone zur Firewall explizit freigegeben werden. Dadurch wird ein zus\u00e4tzlicher Dienst der Firewall aus dem isolierten Netzwerksegment erreichbar, wodurch ein potenzieller zus\u00e4tzlicher Angriffspunkt entsteht.<\/p>\n<p>IPFire verarbeitet Firewall-Regeln in der festgelegten Reihenfolge von oben nach unten. Zun\u00e4chst wird gepr\u00fcft, ob eine Verbindung durch eine Blockierungsregel betroffen ist. Trifft diese zu, wird die Kommunikation verhindert. Greift keine Sperrregel, wird die nachfolgende Freigaberegel angewendet und die Kommunikation mit nicht explizit ausgeschlossenen Netzwerken erlaubt. Daher m\u00fcssen Blockierungsregeln grunds\u00e4tzlich vor allgemeinen Freigaberegeln angeordnet werden.<\/p>\n<hr \/>\n<p><strong>Variante A: Separate DNS-\/VPN-\/TOR-Gateway VM in der ORANGE-Zone<\/strong><\/p>\n<p>Eigenst\u00e4ndige DNS-\/VPN-\/TOR-Gateway-VM zur zentralisierten Kommunikation der ORANGE-Zone. S\u00e4mtlicher Netzwerkverkehr der Clients innerhalb der ORANGE-Zone wird ausschlie\u00dflich \u00fcber diese Gateway-VM geleitet. Eine direkte Kommunikation der ORANGE-Clients mit anderen Netzwerksegmenten wie z.B. dem Internet ist nicht m\u00f6glich.<\/p>\n<ul>\n<li>Gesammte Kommunikation aus ORANGE-Zone \u00fcber DNS\/TOR-Gateway<\/li>\n<li>Keine direkt erreichbaren Firewall-Dienste aus der ORANGE-Zone, au\u00dfer von Gateway-VM<\/li>\n<li>H\u00f6herer Administrationsaufwand<\/li>\n<li>Keine zentrale Verbindungsanalyse \u00fcber die Firewall bei Verwendung von Gateway-VM oder DNS Anfragen<\/li>\n<\/ul>\n<p><strong>Variante B1: Vollst\u00e4ndig getrennte ORANGE-Zone<\/strong><\/p>\n<p>Die Firewall selbst ist aus der ORANGE-Zone nicht erreichbar. S\u00e4mtliche Clients innerhalb der ORANGE-Zone erhalten den Internetzugriff \u00fcber die Firewall. Eine direkte Kommunikation der ORANGE-Clients mit anderen internen Netzwerksegmenten ist nicht m\u00f6glich. Die DNS-Aufl\u00f6sung erfolgt entweder \u00fcber einen internen DNS-Resolver innerhalb der ORANGE-Zone oder \u00fcber externe DNS-Server.<\/p>\n<ul>\n<li>Zentrale Verwaltung und \u00dcberwachung der ORANE-Zone Cleints \u00fcber die IPFire-WebGUI<\/li>\n<li>Firewall selbst ist vollst\u00e4ndig von ORANGE-Zone getrennt<\/li>\n<li>Eigener DNS Resolver in ORANGE-Zone oder externe DNS Server erforderlich<\/li>\n<\/ul>\n<p><strong>Variante B2: DNS-Resolver auf der IPFire-Firewall<\/strong><\/p>\n<p>Die Firewall \u00fcbernimmt die DNS-Aufl\u00f6sung f\u00fcr alle Clients der ORANGE-Zone. S\u00e4mtliche Clients der ORANGE-Zone erhalten direkten Zugriff auf das Internet \u00fcber die Firewall. Eine direkte Kommunikation der ORANGE-Clients mit anderen Netzwerksegmenten ist, bis auf den DNS Resolver der Firewall selbst, weiterhin nicht m\u00f6glich.<\/p>\n<ul>\n<li>Zentrale Verwaltung und \u00dcberwachung der ORANE-Zone Cleints \u00fcber die IPFire-WebGUI<\/li>\n<li>DNS-Dienst der Firewall aus der ORANGE-Zone erreichbar<\/li>\n<li>DNS Portfreigabe nur \u00fcber Startparameter realisierbar<\/li>\n<li>Zus\u00e4tzlicher potenzieller Angriffspunkt<\/li>\n<\/ul>\n<hr \/>\n<h3>Variante A: Vollst\u00e4ndig isoliertes ORANGE-Netz mit DNS\/TOR Gateway VM<\/h3>\n<p><\/p><!-- Urvanov Syntax Highlighter v2.9.1 -->\r\n\n\t\t<div id=\"urvanov-syntax-highlighter-6a6c6333f1d03510622059\" class=\"urvanov-syntax-highlighter-syntax crayon-theme-classic urvanov-syntax-highlighter-font-monaco urvanov-syntax-highlighter-os-pc print-yes notranslate\" data-settings=\" minimize scroll-mouseover\" style=\" margin-top: 12px; margin-bottom: 12px; font-size: 12px !important; line-height: 15px !important;\">\n\t\t\n\t\t\t<div class=\"crayon-toolbar\" data-settings=\" mouseover overlay hide delay\" style=\"font-size: 12px !important;height: 18px !important; line-height: 18px !important;\"><span class=\"crayon-title\"><\/span>\n\t\t\t<div class=\"crayon-tools\" style=\"font-size: 12px !important;height: 18px !important; line-height: 18px !important;\"><div class=\"crayon-button urvanov-syntax-highlighter-nums-button\" title=\"Zeilennummern\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-plain-button\" title=\"Unformatierte Code-Ansicht\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-wrap-button\" title=\"Zeilenumbruch umschalten\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-expand-button\" title=\"Code aufklappen\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-copy-button\" title=\"Copy\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-popup-button\" title=\"Code in einem neuen Fenster anzeigen\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><\/div><\/div>\n\t\t\t<div class=\"crayon-info\" style=\"min-height: 16.8px !important; line-height: 16.8px !important;\"><\/div>\n\t\t\t<div class=\"urvanov-syntax-highlighter-plain-wrap\"><textarea wrap=\"soft\" class=\"urvanov-syntax-highlighter-plain print-no\" data-settings=\"dblclick\" readonly style=\"-moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4; font-size: 12px !important; line-height: 15px !important;\">\n[Heimrouter 192.168.0.1]\r\n        \u2502 RED\r\n   [IPFire]\r\n        \u2502 orange0 (192.168.10.0\/24)\r\n   [Tor-Gateway-VM]   \u2190 eigener DNS-Resolver, eigenes Routing\r\n    \u2502        \u2502\r\n[Client-VM] [Client-VM]   (Gateway und DNS-Server: Tor-Gateway-VM, nicht IPFire)<\/textarea><\/div>\n\t\t\t<div class=\"urvanov-syntax-highlighter-main\" style=\"\">\n\t\t\t\t<table class=\"crayon-table\">\n\t\t\t\t\t<tr class=\"urvanov-syntax-highlighter-row\">\n\t\t\t\t<td class=\"crayon-nums \" data-settings=\"show\">\n\t\t\t\t\t<div class=\"urvanov-syntax-highlighter-nums-content\" style=\"font-size: 12px !important; line-height: 15px !important;\"><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f1d03510622059-1\">1<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f1d03510622059-2\">2<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f1d03510622059-3\">3<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f1d03510622059-4\">4<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f1d03510622059-5\">5<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f1d03510622059-6\">6<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f1d03510622059-7\">7<\/div><\/div>\n\t\t\t\t<\/td>\n\t\t\t\t\t\t<td class=\"urvanov-syntax-highlighter-code\"><div class=\"crayon-pre\" style=\"font-size: 12px !important; line-height: 15px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;\"><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f1d03510622059-1\"><span class=\"crayon-sy\">[<\/span><span class=\"crayon-i\">Heimrouter<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">192.168.0.1<\/span><span class=\"crayon-sy\">]<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f1d03510622059-2\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span>\u2502<span class=\"crayon-h\"> <\/span><span class=\"crayon-i\">RED<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f1d03510622059-3\"><span class=\"crayon-h\">&nbsp;&nbsp; <\/span><span class=\"crayon-sy\">[<\/span><span class=\"crayon-v\">IPFire<\/span><span class=\"crayon-sy\">]<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f1d03510622059-4\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span>\u2502<span class=\"crayon-h\"> <\/span><span class=\"crayon-e\">orange0<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-cn\">192.168.10.0<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-cn\">24<\/span><span class=\"crayon-sy\">)<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f1d03510622059-5\"><span class=\"crayon-h\">&nbsp;&nbsp; <\/span><span class=\"crayon-sy\">[<\/span><span class=\"crayon-v\">Tor<\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-v\">Gateway<\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-v\">VM<\/span><span class=\"crayon-sy\">]<\/span><span class=\"crayon-h\">&nbsp;&nbsp; <\/span>\u2190<span class=\"crayon-h\"> <\/span><span class=\"crayon-e\">eigener <\/span><span class=\"crayon-v\">DNS<\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-v\">Resolver<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-e\">eigenes <\/span><span class=\"crayon-i\">Routing<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f1d03510622059-6\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span>\u2502<span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span>\u2502<\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f1d03510622059-7\"><span class=\"crayon-sy\">[<\/span><span class=\"crayon-v\">Client<\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-v\">VM<\/span><span class=\"crayon-sy\">]<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-sy\">[<\/span><span class=\"crayon-v\">Client<\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-v\">VM<\/span><span class=\"crayon-sy\">]<\/span><span class=\"crayon-h\">&nbsp;&nbsp; <\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-e\">Gateway <\/span><span class=\"crayon-e\">und <\/span><span class=\"crayon-v\">DNS<\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-v\">Server<\/span><span class=\"crayon-o\">:<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">Tor<\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-v\">Gateway<\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-v\">VM<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-e\">nicht <\/span><span class=\"crayon-v\">IPFire<\/span><span class=\"crayon-sy\">)<\/span><\/div><\/div><\/td>\n\t\t\t\t\t<\/tr>\n\t\t\t\t<\/table>\n\t\t\t<\/div>\n\t\t<\/div>\r\n<!-- [Format Time: 0.0013 seconds] -->\r\n<p>In diesem Aufbau kommuniziert ausschlie\u00dflich die Tor-Gateway-VM direkt mit IPFire. S\u00e4mtliche weiteren Client-VMs im ORANGE-Netz haben keinerlei M\u00f6glichkeit mit der Firewall selbst oder anderen Nezten zu kommunizieren; sie tragen stattdessen die Tor-Gateway-VM sowohl als Default-Gateway als auch als DNS-Server ein. Die Tor-Gateway-VM \u00fcbernimmt dabei folgende Aufgaben:<\/p>\n<ul>\n<li>Betrieb von Tor mit aktiviertem TransPort (transparenter Proxy f\u00fcr TCP-Verbindungen) sowie DNSPort (DNS-Aufl\u00f6sung \u00fcber das Tor-Netzwerk).<\/li>\n<li>Umleitung s\u00e4mtlichen Client-Traffics auf der eigenen, ORANGE-seitigen Schnittstelle mittels eigener iptables-Regeln (REDIRECT auf TransPort bzw. DNSPort). Dies erfolgt vollst\u00e4ndig auf der Tor-Gateway-VM selbst, nicht auf IPFire.<\/li>\n<li>Aufbau eigener Verbindungen zu Tor-Entry-Guards, die gegen\u00fcber IPFire als Traffic eines einzelnen Hosts (der Tor-Gateway-VM) in Erscheinung treten.<\/li>\n<li>Die IPFire-Firewall kommuniziert ausschlie\u00dflich mit dem Tor-Gateway und verwirft jegliche Anfragen der \u00fcbrigen, im ORANGE-Netz befindlichen VMs.<\/li>\n<\/ul>\n<h3>Konfiguration der Firewallregel in der IPFire-WebGUI<\/h3>\n<p>F\u00fcr diese Variante ist lediglich eine weitere Regel erforderlich, die es der TOR VM erm\u00f6glicht mit der Firewall zu kommunizieren. Diese wird wie folgt angelegt:<\/p>\n<p>Navigieren Sie zu <strong>Firewall<\/strong> \u2192 <strong>Firewallregeln<\/strong> und w\u00e4hlen Sie <strong>Neue Regel erstellen<\/strong>.<\/p>\n<p><strong>Abschnitt &#8220;Quelle&#8221;:<\/strong><\/p>\n<ul>\n<li>Radiobutton &#8220;Quelladresse (IP-\/MAC-Adresse oder IP-Netzwerk)&#8221; aktivieren.<\/li>\n<li>In das zugeh\u00f6rige Eingabefeld die MAC-Adresse oder IP der Tor-Gateway-VM eintragen (Um Unabh\u00e4ngigkeit von einer festen VM-IP zu gew\u00e4hrleisten wird MAC empfohlen).<\/li>\n<li>Die \u00fcbrigen Radiobuttons dieses Abschnitts (&#8220;Firewall&#8221;, &#8220;Standard-Netzwerke&#8221;, &#8220;L\u00e4nderfilter&#8221;) bleiben unausgew\u00e4hlt.<\/li>\n<\/ul>\n<p><strong>Abschnitt &#8220;NAT&#8221;:<\/strong><\/p>\n<ul>\n<li>Checkbox &#8220;Network Address Translation (NAT) benutzen&#8221; deaktiviert lassen.<\/li>\n<\/ul>\n<p><strong>Abschnitt &#8220;Ziel&#8221;:<\/strong><\/p>\n<ul>\n<li>Radiobutton &#8220;Zieladresse (IP-Adresse oder -Netzwerk)&#8221; aktivieren.<\/li>\n<li>In das zugeh\u00f6rige Eingabefeld die IP-Adresse des Internetgateway\/Routers eintragen: 192.168.0.1.<\/li>\n<li>Die \u00fcbrigen Radiobuttons dieses Abschnitts bleiben unausgew\u00e4hlt.<\/li>\n<\/ul>\n<p><strong>Abschnitt &#8220;Protokoll&#8221;:<\/strong><\/p>\n<ul>\n<li>Dropdown auf &#8220;Alle&#8221; belassen.<\/li>\n<\/ul>\n<p><strong>Abschnitt Aktions-Auswahl (gr\u00fcn\/rot\/dunkelrot):<\/strong><\/p>\n<ul>\n<li>Radiobutton bei &#8220;Akzeptieren (ACCEPT)&#8221; ausw\u00e4hlen.<\/li>\n<\/ul>\n<p><strong>Abschnitt &#8220;Weitere Einstellungen&#8221;:<\/strong><\/p>\n<ul>\n<li>Feld &#8220;Anmerkung&#8221;: z. B. &#8220;Tor-Gateway Zugriff auf Internetgateway erlauben&#8221;.<\/li>\n<li>Feld &#8220;Regelposition&#8221;: Position frei w\u00e4hlbar, da es sich um die einzige Regel handelt.<\/li>\n<li>Checkbox &#8220;Regel aktivieren&#8221; setzen.<\/li>\n<li>\u00dcbrige Optionen (Protokollierung, SYN-Flood-Schutz, Zeitrahmen, Verbindungsbeschr\u00e4nkung, Ratenlimitierung) bleiben unber\u00fchrt.<\/li>\n<\/ul>\n<p>Abschlie\u00dfend \u00fcber die Schaltfl\u00e4che &#8220;Hinzuf\u00fcgen&#8221; speichern und mit &#8220;\u00c4nderungen \u00dcbernehmen&#8221; Regel aktivieren.<\/p>\n<p>Eine weitergehende Regel f\u00fcr den Internetzugriff des im ORANGE-Netz befindlichen Tor-Gateways ist in dieser Variante nicht erforderlich, da das Tor-Gateway NAT-Routing und DNS-Anfragen der im ORANGE-Netz befindlichen VMs selbst verarbeitet und als einziger Host auf Grund der o.g MAC\/IP Regel mit der Firewall kommunizieren kann.<\/p>\n<hr \/>\n<h2>Variante B1: <strong>Vollst\u00e4ndig getrennte ORANGE-Zone<\/strong><\/h2>\n<p><\/p><!-- Urvanov Syntax Highlighter v2.9.1 -->\r\n\n\t\t<div id=\"urvanov-syntax-highlighter-6a6c6333f1d10384221484\" class=\"urvanov-syntax-highlighter-syntax crayon-theme-classic urvanov-syntax-highlighter-font-monaco urvanov-syntax-highlighter-os-pc print-yes notranslate\" data-settings=\" minimize scroll-mouseover\" style=\" margin-top: 12px; margin-bottom: 12px; font-size: 12px !important; line-height: 15px !important;\">\n\t\t\n\t\t\t<div class=\"crayon-toolbar\" data-settings=\" mouseover overlay hide delay\" style=\"font-size: 12px !important;height: 18px !important; line-height: 18px !important;\"><span class=\"crayon-title\"><\/span>\n\t\t\t<div class=\"crayon-tools\" style=\"font-size: 12px !important;height: 18px !important; line-height: 18px !important;\"><div class=\"crayon-button urvanov-syntax-highlighter-nums-button\" title=\"Zeilennummern\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-plain-button\" title=\"Unformatierte Code-Ansicht\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-wrap-button\" title=\"Zeilenumbruch umschalten\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-expand-button\" title=\"Code aufklappen\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-copy-button\" title=\"Copy\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-popup-button\" title=\"Code in einem neuen Fenster anzeigen\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><\/div><\/div>\n\t\t\t<div class=\"crayon-info\" style=\"min-height: 16.8px !important; line-height: 16.8px !important;\"><\/div>\n\t\t\t<div class=\"urvanov-syntax-highlighter-plain-wrap\"><textarea wrap=\"soft\" class=\"urvanov-syntax-highlighter-plain print-no\" data-settings=\"dblclick\" readonly style=\"-moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4; font-size: 12px !important; line-height: 15px !important;\">\n[Heimrouter 192.168.0.1]\r\n        \u2502 RED\r\n   [IPFire]   \u2190 Zugriff auf Firewall selbst nicht m\u00f6glich, DNS Server oder externer DNS Resolver erforderlich\r\n        \u2502 orange0 (192.168.10.0\/24)\r\n[VM 1] [VM 2] [VM 3] ...   (Gateway: IPFire direkt)<\/textarea><\/div>\n\t\t\t<div class=\"urvanov-syntax-highlighter-main\" style=\"\">\n\t\t\t\t<table class=\"crayon-table\">\n\t\t\t\t\t<tr class=\"urvanov-syntax-highlighter-row\">\n\t\t\t\t<td class=\"crayon-nums \" data-settings=\"show\">\n\t\t\t\t\t<div class=\"urvanov-syntax-highlighter-nums-content\" style=\"font-size: 12px !important; line-height: 15px !important;\"><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f1d10384221484-1\">1<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f1d10384221484-2\">2<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f1d10384221484-3\">3<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f1d10384221484-4\">4<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f1d10384221484-5\">5<\/div><\/div>\n\t\t\t\t<\/td>\n\t\t\t\t\t\t<td class=\"urvanov-syntax-highlighter-code\"><div class=\"crayon-pre\" style=\"font-size: 12px !important; line-height: 15px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;\"><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f1d10384221484-1\"><span class=\"crayon-sy\">[<\/span><span class=\"crayon-i\">Heimrouter<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">192.168.0.1<\/span><span class=\"crayon-sy\">]<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f1d10384221484-2\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span>\u2502<span class=\"crayon-h\"> <\/span><span class=\"crayon-i\">RED<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f1d10384221484-3\"><span class=\"crayon-h\">&nbsp;&nbsp; <\/span><span class=\"crayon-sy\">[<\/span><span class=\"crayon-v\">IPFire<\/span><span class=\"crayon-sy\">]<\/span><span class=\"crayon-h\">&nbsp;&nbsp; <\/span>\u2190<span class=\"crayon-h\"> <\/span><span class=\"crayon-e\">Zugriff <\/span><span class=\"crayon-e\">auf <\/span><span class=\"crayon-e\">Firewall <\/span><span class=\"crayon-e\">selbst <\/span><span class=\"crayon-i\">nicht<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-i\">m<\/span>\u00f6<span class=\"crayon-v\">glich<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-e\">DNS <\/span><span class=\"crayon-e\">Server <\/span><span class=\"crayon-e\">oder <\/span><span class=\"crayon-e\">externer <\/span><span class=\"crayon-e\">DNS <\/span><span class=\"crayon-e\">Resolver <\/span><span class=\"crayon-i\">erforderlich<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f1d10384221484-4\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span>\u2502<span class=\"crayon-h\"> <\/span><span class=\"crayon-e\">orange0<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-cn\">192.168.10.0<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-cn\">24<\/span><span class=\"crayon-sy\">)<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f1d10384221484-5\"><span class=\"crayon-sy\">[<\/span><span class=\"crayon-i\">VM<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">1<\/span><span class=\"crayon-sy\">]<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-sy\">[<\/span><span class=\"crayon-i\">VM<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">2<\/span><span class=\"crayon-sy\">]<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-sy\">[<\/span><span class=\"crayon-i\">VM<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">3<\/span><span class=\"crayon-sy\">]<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-h\">&nbsp;&nbsp; <\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">Gateway<\/span><span class=\"crayon-o\">:<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-e\">IPFire <\/span><span class=\"crayon-v\">direkt<\/span><span class=\"crayon-sy\">)<\/span><\/div><\/div><\/td>\n\t\t\t\t\t<\/tr>\n\t\t\t\t<\/table>\n\t\t\t<\/div>\n\t\t<\/div>\r\n<!-- [Format Time: 0.0003 seconds] -->\r\n<p><\/p>\n<p class=\"PDq2pG_selectionAnchorContainer\" data-start=\"0\" data-end=\"302\">In dieser Variante ist der Zugriff auf die Firewall selbst, wie bereits in Variante B1, aus der ORANGE-Zone vollst\u00e4ndig gesperrt. Gleichzeitig wird die Kommunikation aller Clients innerhalb der ORANGE-Zone mit dem Internet erlaubt. Der interne IPFire-DNS-Resolver ist dadurch nicht erreichbar, weshalb die Clients entweder einen externen DNS-Resolver (z. B. 8.8.8.8) oder einen eigenen DNS-Server innerhalb der ORANGE-Zone verwenden m\u00fcssen.<\/p>\n<p data-start=\"304\" data-end=\"583\">F\u00fcr die grundlegende Konfiguration sind drei Firewall-Regeln erforderlich. Die erste Regel blockiert die Kommunikation zwischen der ORANGE- und der RED-Zone. Die zweite Regel erlaubt der ORANGE-Zone die Kommunikation mit allen \u00fcbrigen Netzwerken einschlie\u00dflich des Internets.<\/p>\n<h3>Regel 1 &#8211; Sperrung des Zugriffs von ORANGE auf RED<\/h3>\n<p>Navigieren Sie zu <strong>Firewall<\/strong> \u2192 <strong>Firewallregeln<\/strong> und w\u00e4hlen Sie <strong>Neue Regel erstellen<\/strong>.<\/p>\n<p><strong>Abschnitt &#8220;Quelle&#8221;:<\/strong><\/p>\n<ul>\n<li>Radiobutton &#8220;Standard-Netzwerke&#8221; aktivieren.<\/li>\n<li>Im zugeh\u00f6rigen Dropdown-Men\u00fc ORANGE (192.168.10.0\/24) ausw\u00e4hlen.<\/li>\n<\/ul>\n<p><strong>Abschnitt &#8220;NAT&#8221;:<\/strong><\/p>\n<ul>\n<li>Checkbox &#8220;Network Address Translation (NAT) benutzen&#8221; deaktiviert lassen (bei einer verwerfenden Regel ohne Funktion).<\/li>\n<\/ul>\n<p><strong>Abschnitt &#8220;Ziel&#8221;:<\/strong><\/p>\n<ul>\n<li>Radiobutton &#8220;Zieladresse (IP-Adresse oder -Netzwerk)&#8221; aktivieren.<\/li>\n<li>In das zugeh\u00f6rige Eingabefeld manuell eintragen: 192.168.0.0\/24.<\/li>\n<li>Ausdr\u00fccklich zu vermeiden: die Auswahl des Radiobuttons &#8220;Standard-Netzwerke&#8221; mit dem Wert RED. Dieser Wert wird von IPFire nicht subnetzbasiert, sondern interface-basiert ausgewertet und erfasst s\u00e4mtlichen Datenverkehr, der \u00fcber die Schnittstelle red0 das System verl\u00e4sst \u2014 einschlie\u00dflich des gesamten Internet-Traffics, sofern RED zugleich als Netzwerk-Uplink und Internetweg dient. Eine solche Auswahl w\u00fcrde den gesamten Internetzugriff des ORANGE-Netzes unterbinden.<\/li>\n<\/ul>\n<p><strong>Abschnitt &#8220;Protokoll&#8221;:<\/strong><\/p>\n<ul>\n<li>Dropdown auf &#8220;Alle&#8221; belassen.<\/li>\n<\/ul>\n<p><strong>Abschnitt Aktions-Auswahl:<\/strong><\/p>\n<ul>\n<li>Radiobutton bei &#8220;Verwerfen (DROP)&#8221; ausw\u00e4hlen. (&#8220;Verweigern (REJECT)&#8221; ist ebenfalls m\u00f6glich, sendet dem anfragenden Client jedoch eine Fehlermeldung zur\u00fcck; f\u00fcr Isolationszwecke ist DROP das unauff\u00e4lligere und gebr\u00e4uchlichere Verhalten.)<\/li>\n<\/ul>\n<p><strong>Abschnitt &#8220;Weitere Einstellungen&#8221;:<\/strong><\/p>\n<ul>\n<li>Feld &#8220;Anmerkung&#8221;: z. B. &#8220;ORANGE &#8211; Zugriff auf RED Netz blockieren&#8221;.<\/li>\n<li>Feld &#8220;Regelposition&#8221;: 1 eintragen (diese Regel muss zwingend vor der nachfolgenden Freigabe-Regel ausgewertet werden).<\/li>\n<li>Checkbox &#8220;Regel aktivieren&#8221; setzen.<\/li>\n<li>Checkbox &#8220;Protokollierung aktivieren&#8221; empfohlen setzen, um die Wirksamkeit der Regel im Firewall-Log nachvollziehen zu k\u00f6nnen.<\/li>\n<\/ul>\n<p>Abschlie\u00dfend \u00fcber &#8220;Hinzuf\u00fcgen&#8221; speichern.<\/p>\n<h3>Regel 2 &#8211; Freigabe des Internetzugriffs f\u00fcr ORANGE\u00a0 \u00a0#####TODO Mascarate option in startparamerter aufgrund von NAT notwendig<\/h3>\n<p>Navigieren Sie erneut zu <strong>Firewall<\/strong> \u2192 <strong>Firewallregeln<\/strong> \u2192 <strong>Neue Regel erstellen<\/strong>.<\/p>\n<p><strong>Abschnitt &#8220;Quelle&#8221;:<\/strong><\/p>\n<ul>\n<li>Radiobutton &#8220;Standard-Netzwerke&#8221; aktivieren.<\/li>\n<li>Dropdown-Men\u00fc: ORANGE.<\/li>\n<\/ul>\n<p><strong>Abschnitt &#8220;NAT&#8221;:<\/strong><\/p>\n<ul>\n<li>Checkbox &#8220;Network Address Translation (NAT) benutzen&#8221; nicht aktivieren. Das in der GUI integrierte Source-NAT ist in dieser Konfigurationvariante (RED als vertrauensw\u00fcrdiges Netz einzustufen) fehlerhaft (Details siehe unten); NAT wird stattdessen manuell \u00fcber firewall.local realisiert.<\/li>\n<\/ul>\n<p><strong>Abschnitt &#8220;Ziel&#8221;:<\/strong><\/p>\n<ul>\n<li>Radiobutton &#8220;Standard-Netzwerke&#8221; aktivieren.<\/li>\n<li>Dropdown-Men\u00fc: Alle.<\/li>\n<li>Ausdr\u00fccklich zu vermeiden: die Auswahl des Radiobuttons &#8220;Firewall&#8221; mit dem Wert &#8220;Alle&#8221;. &#8220;Firewall&#8221; als Ziel bezeichnet in IPFire ausschlie\u00dflich Datenverkehr, der an die Firewall selbst adressiert ist (INPUT-Kette), nicht durchgeleiteten Datenverkehr (FORWARD-Kette). Eine solche Regel w\u00fcrde in der \u00dcbersicht f\u00e4lschlich unter &#8220;Eingehender Firewallzugang&#8221; erscheinen und f\u00fcr den eigentlichen Internetzugriff wirkungslos bleiben.<\/li>\n<\/ul>\n<p><strong>Abschnitt &#8220;Protokoll&#8221;:<\/strong><\/p>\n<ul>\n<li>Dropdown auf &#8220;Alle&#8221; belassen.<\/li>\n<\/ul>\n<p><strong>Abschnitt Aktions-Auswahl:<\/strong><\/p>\n<ul>\n<li>Radiobutton bei &#8220;Akzeptieren (ACCEPT)&#8221; ausw\u00e4hlen.<\/li>\n<\/ul>\n<p><strong>Abschnitt &#8220;Weitere Einstellungen&#8221;:<\/strong><\/p>\n<ul>\n<li>Feld &#8220;Anmerkung&#8221;: z. B. &#8220;ORANGE &#8211; Internetzugriff erlauben&#8221;.<\/li>\n<li>Feld &#8220;Regelposition&#8221;: 2 eintragen (wichtig, da sonst der zugriff von Oragne auf red erlaubt wird und o.g. regel aus schritt 1 nicht mehr greift).<\/li>\n<li>Checkbox &#8220;Regel aktivieren&#8221; setzen.<\/li>\n<\/ul>\n<h3>Regel 3 \u2013 Sperrung des Zugriffs von ORANGE auf die Firewall selbst<\/h3>\n<p dir=\"auto\">Die beiden vorgenannten Regeln betreffen die ein- und ausgehende Kommunikation, nicht jedoch die Kommunikation mit der Firewall selbst. Diese wird im Abschnitt &#8220;Eingehender Firewallzugang&#8221; gelistet und betrifft ausschlie\u00dflich die Kommunikation mit der Firewall selbst.<\/p>\n<p dir=\"auto\">Der Zugriff auf die Firewall selbst ist in der Standardkonfiguration von IPFire ausschlie\u00dflich aus der GREEN-Zone vorgesehen und sollte weder aus der RED- noch aus der ORANGE-Zone m\u00f6glich sein. In der hier verwendeten, abweichenden Netzwerktopologie ist es jedoch erforderlich, den Zugriff aus der ORANGE-Zone explizit durch eine Firewall-Regel zu blockieren, da andernfalls ein Zugriff auf Firewall-Dienste m\u00f6glich ist. Die Ursache f\u00fcr dieses abweichende Verhalten konnte bislang nicht abschlie\u00dfend ermittelt werden. Es ist daher empfehlenswert, den Zugriff auf die Firewall aus der ORANGE-Zone unabh\u00e4ngig von der Standardkonfiguration explizit zu sperren.<\/p>\n<p>Navigieren Sie erneut zu <strong>Firewall<\/strong> \u2192 <strong>Firewallregeln<\/strong> \u2192 <strong>Neue Regel erstellen<\/strong>.<\/p>\n<p><strong>Abschnitt &#8220;Quelle&#8221;:<\/strong><\/p>\n<ul>\n<li>Radiobutton &#8220;Standard-Netzwerke&#8221; aktivieren.<\/li>\n<li>Dropdown-Men\u00fc: ORANGE.<\/li>\n<\/ul>\n<p><strong>Abschnitt &#8220;NAT&#8221;:<\/strong><\/p>\n<ul>\n<li>Checkbox &#8220;Network Address Translation (NAT) benutzen&#8221; nicht aktivieren. Das in der GUI integrierte Source-NAT ist in dieser Konfigurationvariante (RED als vertrauensw\u00fcrdiges Netz einzustufen) fehlerhaft, NAT wird stattdessen manuell \u00fcber firewall.local realisiert.<\/li>\n<\/ul>\n<p><strong>Abschnitt &#8220;Ziel&#8221;:<\/strong><\/p>\n<ul>\n<li>Radiobutton &#8220;Firewall&#8221; aktivieren (dies betrifft die Kommunikation mit der Firewall selbst).<\/li>\n<li>Dropdown-Men\u00fc: Alle.<\/li>\n<\/ul>\n<p><strong>Abschnitt &#8220;Protokoll&#8221;:<\/strong><\/p>\n<ul>\n<li>Dropdown auf &#8220;Alle&#8221; belassen.<\/li>\n<li><strong>Ausdr\u00fccklich zu vermeiden:<\/strong> die Auswahl eines spezifischen Protokolls mit fest definiertem Port (z. B. &#8220;TCP&#8221; mit Port 444). In der getesteten IPFire-Version erzeugt eine solche Portauswahl eine fehlerhafte Regel, bei der sowohl Quell- als auch Zielport auf denselben Wert gesetzt werden (tcp spt:snpp dpt:snpp statt ausschlie\u00dflich dpt:snpp). Da ein anfragender Client praktisch nie von Port 444 aus verbindet, matcht eine derart erzeugte Regel de facto nie.<\/li>\n<\/ul>\n<p><strong>Abschnitt Aktions-Auswahl:<\/strong><\/p>\n<ul>\n<li>Radiobutton bei &#8220;Verwerfen (DROP)&#8221; ausw\u00e4hlen.<\/li>\n<\/ul>\n<p><strong>Abschnitt &#8220;Weitere Einstellungen&#8221;:<\/strong><\/p>\n<ul>\n<li>Feld &#8220;Anmerkung&#8221;: z. B. &#8220;ORANGE &#8211; Internetzugriff erlauben&#8221;.<\/li>\n<li>Feld &#8220;Regelposition&#8221;: 2 eintragen (wichtig, da sonst der zugriff von Oragne auf red erlaubt wird und o.g. regel aus schritt 1 nicht mehr greift).<\/li>\n<li>Checkbox &#8220;Regel aktivieren&#8221; setzen.<\/li>\n<\/ul>\n<p>Abschlie\u00dfend \u00fcber &#8220;Hinzuf\u00fcgen&#8221; speichern und mit &#8220;\u00c4nderung \u00fcbernehmen&#8221; Regeln aktivieren.<\/p>\n<hr \/>\n<h2>Variante B2: DNS-Resolver auf der IPFire-Firewall<\/h2>\n<p><\/p><!-- Urvanov Syntax Highlighter v2.9.1 -->\r\n\n\t\t<div id=\"urvanov-syntax-highlighter-6a6c6333f1d14120705212\" class=\"urvanov-syntax-highlighter-syntax crayon-theme-classic urvanov-syntax-highlighter-font-monaco urvanov-syntax-highlighter-os-pc print-yes notranslate\" data-settings=\" minimize scroll-mouseover\" style=\" margin-top: 12px; margin-bottom: 12px; font-size: 12px !important; line-height: 15px !important;\">\n\t\t\n\t\t\t<div class=\"crayon-toolbar\" data-settings=\" mouseover overlay hide delay\" style=\"font-size: 12px !important;height: 18px !important; line-height: 18px !important;\"><span class=\"crayon-title\"><\/span>\n\t\t\t<div class=\"crayon-tools\" style=\"font-size: 12px !important;height: 18px !important; line-height: 18px !important;\"><div class=\"crayon-button urvanov-syntax-highlighter-nums-button\" title=\"Zeilennummern\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-plain-button\" title=\"Unformatierte Code-Ansicht\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-wrap-button\" title=\"Zeilenumbruch umschalten\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-expand-button\" title=\"Code aufklappen\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-copy-button\" title=\"Copy\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-popup-button\" title=\"Code in einem neuen Fenster anzeigen\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><\/div><\/div>\n\t\t\t<div class=\"crayon-info\" style=\"min-height: 16.8px !important; line-height: 16.8px !important;\"><\/div>\n\t\t\t<div class=\"urvanov-syntax-highlighter-plain-wrap\"><textarea wrap=\"soft\" class=\"urvanov-syntax-highlighter-plain print-no\" data-settings=\"dblclick\" readonly style=\"-moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4; font-size: 12px !important; line-height: 15px !important;\">\n[Heimrouter 192.168.0.1]\r\n        \u2502 RED\r\n   [IPFire]   \u2190 \u00fcbernimmt DNS f\u00fcr s\u00e4mtliche Clients selbst ( DNS Resovler auf 192.168.10.1)\r\n        \u2502 orange0 (192.168.10.0\/24)\r\n[VM 1] [VM 2] [VM 3] ...   (Gateway und DNS-Server: IPFire direkt)<\/textarea><\/div>\n\t\t\t<div class=\"urvanov-syntax-highlighter-main\" style=\"\">\n\t\t\t\t<table class=\"crayon-table\">\n\t\t\t\t\t<tr class=\"urvanov-syntax-highlighter-row\">\n\t\t\t\t<td class=\"crayon-nums \" data-settings=\"show\">\n\t\t\t\t\t<div class=\"urvanov-syntax-highlighter-nums-content\" style=\"font-size: 12px !important; line-height: 15px !important;\"><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f1d14120705212-1\">1<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f1d14120705212-2\">2<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f1d14120705212-3\">3<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f1d14120705212-4\">4<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f1d14120705212-5\">5<\/div><\/div>\n\t\t\t\t<\/td>\n\t\t\t\t\t\t<td class=\"urvanov-syntax-highlighter-code\"><div class=\"crayon-pre\" style=\"font-size: 12px !important; line-height: 15px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;\"><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f1d14120705212-1\"><span class=\"crayon-sy\">[<\/span><span class=\"crayon-i\">Heimrouter<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">192.168.0.1<\/span><span class=\"crayon-sy\">]<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f1d14120705212-2\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span>\u2502<span class=\"crayon-h\"> <\/span><span class=\"crayon-i\">RED<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f1d14120705212-3\"><span class=\"crayon-h\">&nbsp;&nbsp; <\/span><span class=\"crayon-sy\">[<\/span><span class=\"crayon-v\">IPFire<\/span><span class=\"crayon-sy\">]<\/span><span class=\"crayon-h\">&nbsp;&nbsp; <\/span>\u2190<span class=\"crayon-h\"> <\/span>\u00fc<span class=\"crayon-e\">bernimmt <\/span><span class=\"crayon-i\">DNS<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-i\">f<\/span>\u00fc<span class=\"crayon-i\">r<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-i\">s<\/span>\u00e4<span class=\"crayon-e\">mtliche <\/span><span class=\"crayon-e\">Clients <\/span><span class=\"crayon-e\">selbst<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-e\">DNS <\/span><span class=\"crayon-e\">Resovler <\/span><span class=\"crayon-i\">auf<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">192.168.10.1<\/span><span class=\"crayon-sy\">)<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f1d14120705212-4\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span>\u2502<span class=\"crayon-h\"> <\/span><span class=\"crayon-e\">orange0<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-cn\">192.168.10.0<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-cn\">24<\/span><span class=\"crayon-sy\">)<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f1d14120705212-5\"><span class=\"crayon-sy\">[<\/span><span class=\"crayon-i\">VM<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">1<\/span><span class=\"crayon-sy\">]<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-sy\">[<\/span><span class=\"crayon-i\">VM<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">2<\/span><span class=\"crayon-sy\">]<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-sy\">[<\/span><span class=\"crayon-i\">VM<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">3<\/span><span class=\"crayon-sy\">]<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-h\">&nbsp;&nbsp; <\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-e\">Gateway <\/span><span class=\"crayon-e\">und <\/span><span class=\"crayon-v\">DNS<\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-v\">Server<\/span><span class=\"crayon-o\">:<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-e\">IPFire <\/span><span class=\"crayon-v\">direkt<\/span><span class=\"crayon-sy\">)<\/span><\/div><\/div><\/td>\n\t\t\t\t\t<\/tr>\n\t\t\t\t<\/table>\n\t\t\t<\/div>\n\t\t<\/div>\r\n<!-- [Format Time: 0.0003 seconds] -->\r\n<p>Der Zugriff auf die Firewall ist in der standardm\u00e4\u00dfigen IPFire-Netzwerktopologie f\u00fcr die GREEN-Zone bereits eingeschr\u00e4nkt, f\u00fcr RED jedoch nicht. Die standardm\u00e4\u00dfig erlaubte Kommunikation zwischen ORANGE- und RED-Zone wurde durch Regel 1 aus Variante B1 bereits gesperrt, w\u00e4hrend der Internetzugriff der ORANGE-Zone \u00fcber Regel 2 weiterhin erm\u00f6glicht wird.<\/p>\n<p>Um den internen IPFire-DNS-Resolver aus der ORANGE-Zone zu erreichen, ist eine manuelle Konfiguration \u00fcber die Startregeln in <code>firewall.local<\/code> erforderlich. Eine gezielte Freigabe ausschlie\u00dflich f\u00fcr Port 53 funktioniert \u00fcber die WebGUI nicht zuverl\u00e4ssig. Je nach Konfiguration werden entweder s\u00e4mtliche Firewall-Dienste (z. B. WebGUI, SSH, DNS) freigegeben oder die Firewall bleibt vollst\u00e4ndig gesperrt. Der Zugriff auf den IPFire-DNS-Resolver muss daher explizit \u00fcber eine eigene iptables-Regel in <code>firewall.local<\/code> definiert werden.<\/p>\n<h3>Manuelle Erg\u00e4nzung zur Freigabe des IPFire DNS Resolvers f\u00fcr das ORANGE Netz: \/etc\/sysconfig\/firewall.local<\/h3>\n<p><\/p><!-- Urvanov Syntax Highlighter v2.9.1 -->\r\n\n\t\t<div id=\"urvanov-syntax-highlighter-6a6c6333f1d18310892296\" class=\"urvanov-syntax-highlighter-syntax crayon-theme-classic urvanov-syntax-highlighter-font-monaco urvanov-syntax-highlighter-os-pc print-yes notranslate\" data-settings=\" minimize scroll-mouseover\" style=\" margin-top: 12px; margin-bottom: 12px; font-size: 12px !important; line-height: 15px !important;\">\n\t\t\n\t\t\t<div class=\"crayon-toolbar\" data-settings=\" mouseover overlay hide delay\" style=\"font-size: 12px !important;height: 18px !important; line-height: 18px !important;\"><span class=\"crayon-title\"><\/span>\n\t\t\t<div class=\"crayon-tools\" style=\"font-size: 12px !important;height: 18px !important; line-height: 18px !important;\"><div class=\"crayon-button urvanov-syntax-highlighter-nums-button\" title=\"Zeilennummern\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-plain-button\" title=\"Unformatierte Code-Ansicht\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-wrap-button\" title=\"Zeilenumbruch umschalten\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-expand-button\" title=\"Code aufklappen\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-copy-button\" title=\"Copy\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-popup-button\" title=\"Code in einem neuen Fenster anzeigen\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><\/div><\/div>\n\t\t\t<div class=\"crayon-info\" style=\"min-height: 16.8px !important; line-height: 16.8px !important;\"><\/div>\n\t\t\t<div class=\"urvanov-syntax-highlighter-plain-wrap\"><textarea wrap=\"soft\" class=\"urvanov-syntax-highlighter-plain print-no\" data-settings=\"dblclick\" readonly style=\"-moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4; font-size: 12px !important; line-height: 15px !important;\">\ncase \"$1\" in\r\n  start)\r\n    # Source-NAT f\u00fcr ORANGE \u2192 Internet (Workaround f\u00fcr GUI-Fehler bei dynamischer RED-IP)\r\n    iptables -t nat -A POSTROUTING -s 192.168.10.0\/24 -o red0 -j MASQUERADE\r\n\r\n    # Nur erforderlich, sofern IPFire selbst als DNS-Resolver f\u00fcr ORANGE fungiert (Option B):\r\n    iptables -I INPUTFW 1 -i orange0 -p udp --dport 53 -j ACCEPT\r\n    iptables -I INPUTFW 1 -i orange0 -p tcp --dport 53 -j ACCEPT\r\n    ;;\r\n  stop)\r\n    iptables -t nat -D POSTROUTING -s 192.168.10.0\/24 -o red0 -j MASQUERADE 2&amp;gt;\/dev\/null\r\n    iptables -D INPUTFW -i orange0 -p udp --dport 53 -j ACCEPT 2&amp;gt;\/dev\/null\r\n    iptables -D INPUTFW -i orange0 -p tcp --dport 53 -j ACCEPT 2&amp;gt;\/dev\/null\r\n    ;;\r\n  reload)\r\n    $0 stop\r\n    $0 start\r\n    ;;\r\n  *)\r\n    echo \"Usage: $0 {start|stop|reload}\"\r\n    ;;\r\nesac<\/textarea><\/div>\n\t\t\t<div class=\"urvanov-syntax-highlighter-main\" style=\"\">\n\t\t\t\t<table class=\"crayon-table\">\n\t\t\t\t\t<tr class=\"urvanov-syntax-highlighter-row\">\n\t\t\t\t<td class=\"crayon-nums \" data-settings=\"show\">\n\t\t\t\t\t<div class=\"urvanov-syntax-highlighter-nums-content\" style=\"font-size: 12px !important; line-height: 15px !important;\"><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f1d18310892296-1\">1<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f1d18310892296-2\">2<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f1d18310892296-3\">3<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f1d18310892296-4\">4<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f1d18310892296-5\">5<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f1d18310892296-6\">6<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f1d18310892296-7\">7<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f1d18310892296-8\">8<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f1d18310892296-9\">9<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f1d18310892296-10\">10<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f1d18310892296-11\">11<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f1d18310892296-12\">12<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f1d18310892296-13\">13<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f1d18310892296-14\">14<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f1d18310892296-15\">15<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f1d18310892296-16\">16<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f1d18310892296-17\">17<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f1d18310892296-18\">18<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f1d18310892296-19\">19<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f1d18310892296-20\">20<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f1d18310892296-21\">21<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f1d18310892296-22\">22<\/div><\/div>\n\t\t\t\t<\/td>\n\t\t\t\t\t\t<td class=\"urvanov-syntax-highlighter-code\"><div class=\"crayon-pre\" style=\"font-size: 12px !important; line-height: 15px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;\"><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f1d18310892296-1\"><span class=\"crayon-st\">case<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"$1\"<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-st\">in<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f1d18310892296-2\"><span class=\"crayon-h\">&nbsp;&nbsp;<\/span><span class=\"crayon-v\">start<\/span><span class=\"crayon-sy\">)<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f1d18310892296-3\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-p\"># Source-NAT f\u00fcr ORANGE \u2192 Internet (Workaround f\u00fcr GUI-Fehler bei dynamischer RED-IP)<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f1d18310892296-4\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-v\">iptables<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-i\">t<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">nat<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-i\">A<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">POSTROUTING<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-i\">s<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">192.168.10.0<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-cn\">24<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-i\">o<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">red0<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-i\">j<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-i\">MASQUERADE<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f1d18310892296-5\">&nbsp;<\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f1d18310892296-6\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-p\"># Nur erforderlich, sofern IPFire selbst als DNS-Resolver f\u00fcr ORANGE fungiert (Option B):<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f1d18310892296-7\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-v\">iptables<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-i\">I<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-i\">INPUTFW<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">1<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-i\">i<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">orange0<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-i\">p<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">udp<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">--<\/span><span class=\"crayon-i\">dport<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">53<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-i\">j<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-e\">ACCEPT<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f1d18310892296-8\"><span class=\"crayon-e\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-v\">iptables<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-i\">I<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-i\">INPUTFW<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">1<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-i\">i<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">orange0<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-i\">p<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">tcp<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">--<\/span><span class=\"crayon-i\">dport<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">53<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-i\">j<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-i\">ACCEPT<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f1d18310892296-9\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-sy\">;<\/span><span class=\"crayon-sy\">;<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f1d18310892296-10\"><span class=\"crayon-h\">&nbsp;&nbsp;<\/span><span class=\"crayon-v\">stop<\/span><span class=\"crayon-sy\">)<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f1d18310892296-11\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-v\">iptables<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-i\">t<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">nat<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-i\">D<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">POSTROUTING<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-i\">s<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">192.168.10.0<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-cn\">24<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-i\">o<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">red0<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-i\">j<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-i\">MASQUERADE<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">2<\/span><span class=\"crayon-o\">&amp;<\/span><span class=\"crayon-v\">gt<\/span><span class=\"crayon-sy\">;<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-v\">dev<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-t\">null<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f1d18310892296-12\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-v\">iptables<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-i\">D<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">INPUTFW<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-i\">i<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">orange0<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-i\">p<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">udp<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">--<\/span><span class=\"crayon-i\">dport<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">53<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-i\">j<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-i\">ACCEPT<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">2<\/span><span class=\"crayon-o\">&amp;<\/span><span class=\"crayon-v\">gt<\/span><span class=\"crayon-sy\">;<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-v\">dev<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-t\">null<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f1d18310892296-13\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-v\">iptables<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-i\">D<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">INPUTFW<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-i\">i<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">orange0<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-i\">p<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">tcp<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">--<\/span><span class=\"crayon-i\">dport<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">53<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-i\">j<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-i\">ACCEPT<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">2<\/span><span class=\"crayon-o\">&amp;<\/span><span class=\"crayon-v\">gt<\/span><span class=\"crayon-sy\">;<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-v\">dev<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-t\">null<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f1d18310892296-14\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-sy\">;<\/span><span class=\"crayon-sy\">;<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f1d18310892296-15\"><span class=\"crayon-h\">&nbsp;&nbsp;<\/span><span class=\"crayon-v\">reload<\/span><span class=\"crayon-sy\">)<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f1d18310892296-16\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-sy\">$<\/span><span class=\"crayon-cn\">0<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-i\">stop<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f1d18310892296-17\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-sy\">$<\/span><span class=\"crayon-cn\">0<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-i\">start<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f1d18310892296-18\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-sy\">;<\/span><span class=\"crayon-sy\">;<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f1d18310892296-19\"><span class=\"crayon-h\">&nbsp;&nbsp;<\/span><span class=\"crayon-o\">*<\/span><span class=\"crayon-sy\">)<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f1d18310892296-20\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-i\">echo<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"Usage: $0 {start|stop|reload}\"<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f1d18310892296-21\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-sy\">;<\/span><span class=\"crayon-sy\">;<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f1d18310892296-22\"><span class=\"crayon-v\">esac<\/span><\/div><\/div><\/td>\n\t\t\t\t\t<\/tr>\n\t\t\t\t<\/table>\n\t\t\t<\/div>\n\t\t<\/div>\r\n<!-- [Format Time: 0.0008 seconds] -->\r\n<p>Anschlie\u00dfend ausf\u00fchrbar machen und aktivieren:<\/p><!-- Urvanov Syntax Highlighter v2.9.1 -->\r\n\n\t\t<div id=\"urvanov-syntax-highlighter-6a6c6333f1d1b407582956\" class=\"urvanov-syntax-highlighter-syntax crayon-theme-classic urvanov-syntax-highlighter-font-monaco urvanov-syntax-highlighter-os-pc print-yes notranslate\" data-settings=\" minimize scroll-mouseover\" style=\" margin-top: 12px; margin-bottom: 12px; font-size: 12px !important; line-height: 15px !important;\">\n\t\t\n\t\t\t<div class=\"crayon-toolbar\" data-settings=\" mouseover overlay hide delay\" style=\"font-size: 12px !important;height: 18px !important; line-height: 18px !important;\"><span class=\"crayon-title\"><\/span>\n\t\t\t<div class=\"crayon-tools\" style=\"font-size: 12px !important;height: 18px !important; line-height: 18px !important;\"><div class=\"crayon-button urvanov-syntax-highlighter-nums-button\" title=\"Zeilennummern\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-plain-button\" title=\"Unformatierte Code-Ansicht\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-wrap-button\" title=\"Zeilenumbruch umschalten\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-expand-button\" title=\"Code aufklappen\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-copy-button\" title=\"Copy\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-popup-button\" title=\"Code in einem neuen Fenster anzeigen\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><\/div><\/div>\n\t\t\t<div class=\"crayon-info\" style=\"min-height: 16.8px !important; line-height: 16.8px !important;\"><\/div>\n\t\t\t<div class=\"urvanov-syntax-highlighter-plain-wrap\"><textarea wrap=\"soft\" class=\"urvanov-syntax-highlighter-plain print-no\" data-settings=\"dblclick\" readonly style=\"-moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4; font-size: 12px !important; line-height: 15px !important;\">\nchmod +x \/etc\/sysconfig\/firewall.local \r\n\/etc\/sysconfig\/firewall.local start<\/textarea><\/div>\n\t\t\t<div class=\"urvanov-syntax-highlighter-main\" style=\"\">\n\t\t\t\t<table class=\"crayon-table\">\n\t\t\t\t\t<tr class=\"urvanov-syntax-highlighter-row\">\n\t\t\t\t<td class=\"crayon-nums \" data-settings=\"show\">\n\t\t\t\t\t<div class=\"urvanov-syntax-highlighter-nums-content\" style=\"font-size: 12px !important; line-height: 15px !important;\"><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f1d1b407582956-1\">1<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f1d1b407582956-2\">2<\/div><\/div>\n\t\t\t\t<\/td>\n\t\t\t\t\t\t<td class=\"urvanov-syntax-highlighter-code\"><div class=\"crayon-pre\" style=\"font-size: 12px !important; line-height: 15px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;\"><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f1d1b407582956-1\"><span class=\"crayon-v\">chmod<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">+<\/span><span class=\"crayon-v\">x<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-v\">etc<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-v\">sysconfig<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-v\">firewall<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-v\">local<\/span><span class=\"crayon-h\"> <\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f1d1b407582956-2\"><span class=\"crayon-o\">\/<\/span><span class=\"crayon-v\">etc<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-v\">sysconfig<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-v\">firewall<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-e\">local <\/span><span class=\"crayon-v\">start<\/span><\/div><\/div><\/td>\n\t\t\t\t\t<\/tr>\n\t\t\t\t<\/table>\n\t\t\t<\/div>\n\t\t<\/div>\r\n<!-- [Format Time: 0.0001 seconds] -->\r\n<p><\/p>\n<h3>Begr\u00fcndung: Warum in dieser Variante manuelle Erg\u00e4nzungen erforderlich sind<\/h3>\n<ul>\n<li><strong>NAT f\u00fcr ein vollst\u00e4ndiges Subnetz:<\/strong> IPFire muss f\u00fcr s\u00e4mtliche privaten IP-Adressen aus 192.168.10.0\/24 gleichzeitig Source-NAT durchf\u00fchren. Genau dieser Fall l\u00f6st den bekannten GUI-Fehler (SNAT &#8230; to:0.0.0.0 bei dynamisch bezogener RED-IP oder wenn RED als als vertrauenw\u00fcrdig eingestuft wird) aus. MASQUERADE behebt dies, da die aktuelle Interface-IP zur Laufzeit dynamisch abgefragt wird, anstatt eine feste, in der Konfiguration hinterlegte IP-Adresse zu erwarten.<\/li>\n<li><strong>DNS-Aufl\u00f6sung f\u00fcr s\u00e4mtliche Clients:<\/strong> Sofern kein externer DNS-Server in den Orange VMs oder im Orange Netz selbst konfiguriert wird, muss jede VM ihre DNS-Anfragen an IPFire selbst richten. Dies trifft auf die fehlerhafte Port-Zuordnungslogik der WebGUI beim gezielten Freischalten von Port 53.<\/li>\n<\/ul>\n<hr \/>\n<h2>Hinweis zur Wahl der Tor-Implementierung<\/h2>\n<p>IPFire bietet zwar ein eigenes Tor-Paket. Gegen den Betrieb von Tor direkt auf IPFire anstelle einer separaten Gateway-VM sprechen zudem folgende Punkte:<\/p>\n<ul>\n<li>Firewall, Router und Tor-Client liefen in einem System, was die Angriffsfl\u00e4che der Firewall selbst vergr\u00f6\u00dfert.<\/li>\n<li>Der Isolationsvorteil einer separaten Gateway-VM \u2014 eine kompromittierte Client-VM hat keinen direkten Zugriff auf die Gateway-Konfiguration \u2014 entfiele.<\/li>\n<li>Tor-Updates w\u00e4ren an den IPFire-Update-Zyklus gebunden, statt unabh\u00e4ngig davon eingespielt werden zu k\u00f6nnen.<\/li>\n<li>Der Netzwerkpfad (ORANGE \u2192 RED) bliebe unver\u00e4ndert, unabh\u00e4ngig davon, auf welchem System Tor l\u00e4uft.<\/li>\n<\/ul>\n<p>Die dedizierte Tor-Gateway-VM im ORANGE-Netz wird daher gegen\u00fcber der IPFire-internen Tor-Integration als die robustere L\u00f6sung eingesch\u00e4tzt.<\/p>\n<hr \/>\n<p><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-2821 alignleft\" src=\"https:\/\/speefak.spdns.de\/oss_lifestyle\/wp-content\/uploads\/2014\/08\/CC_BY_NC_SA.png\" alt=\"CC_BY_NC_SA\" width=\"65\" height=\"23\" \/>by Speefak<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Eine strukturierte Netzwerksegmentierung ist eine zentrale Sicherheitsma\u00dfnahme, um Systeme voneinander zu isolieren und unerw\u00fcnschte Kommunikation zu verhindern. Besonders Testumgebungen, KI-Agenten, Malware-Analysen und andere sicherheitskritische Anwendungen sollten daher in einem separaten, abgeschotteten Netzwerk betrieben werden. Die klassische IPFire-Netzwerkarchitektur wird f\u00fcr dieses Szenario angepasst. Grund hierf\u00fcr ist die feste Zuordnung der IPFire-Zonen: Die RED-Schnittstelle ist ausschlie\u00dflich als [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[8,32,43,46],"tags":[],"class_list":["post-8748","post","type-post","status-publish","format-standard","hentry","category-anleitungen","category-netzwerke","category-sicherheit","category-virtualisierung"],"rttpg_featured_image_url":null,"rttpg_author":{"display_name":"speefak","author_link":"https:\/\/speefak.spdns.de\/oss_lifestyle\/author\/speefak_oss\/"},"rttpg_comment":0,"rttpg_category":"<a href=\"https:\/\/speefak.spdns.de\/oss_lifestyle\/category\/anleitungen\/\" rel=\"category tag\">Anleitungen<\/a> <a href=\"https:\/\/speefak.spdns.de\/oss_lifestyle\/category\/netzwerke\/\" rel=\"category tag\">Netzwerke<\/a> <a href=\"https:\/\/speefak.spdns.de\/oss_lifestyle\/category\/sicherheit\/\" rel=\"category tag\">Sicherheit<\/a> <a href=\"https:\/\/speefak.spdns.de\/oss_lifestyle\/category\/virtualisierung\/\" rel=\"category tag\">Virtualisierung<\/a>","rttpg_excerpt":"Eine strukturierte Netzwerksegmentierung ist eine zentrale Sicherheitsma\u00dfnahme, um Systeme voneinander zu isolieren und unerw\u00fcnschte Kommunikation zu verhindern. Besonders Testumgebungen, KI-Agenten, Malware-Analysen und andere sicherheitskritische Anwendungen sollten daher in einem separaten, abgeschotteten Netzwerk betrieben werden. Die klassische IPFire-Netzwerkarchitektur wird f\u00fcr dieses Szenario angepasst. Grund hierf\u00fcr ist die feste Zuordnung der IPFire-Zonen: Die RED-Schnittstelle ist ausschlie\u00dflich als&hellip;","_links":{"self":[{"href":"https:\/\/speefak.spdns.de\/oss_lifestyle\/wp-json\/wp\/v2\/posts\/8748","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/speefak.spdns.de\/oss_lifestyle\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/speefak.spdns.de\/oss_lifestyle\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/speefak.spdns.de\/oss_lifestyle\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/speefak.spdns.de\/oss_lifestyle\/wp-json\/wp\/v2\/comments?post=8748"}],"version-history":[{"count":25,"href":"https:\/\/speefak.spdns.de\/oss_lifestyle\/wp-json\/wp\/v2\/posts\/8748\/revisions"}],"predecessor-version":[{"id":8778,"href":"https:\/\/speefak.spdns.de\/oss_lifestyle\/wp-json\/wp\/v2\/posts\/8748\/revisions\/8778"}],"wp:attachment":[{"href":"https:\/\/speefak.spdns.de\/oss_lifestyle\/wp-json\/wp\/v2\/media?parent=8748"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/speefak.spdns.de\/oss_lifestyle\/wp-json\/wp\/v2\/categories?post=8748"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/speefak.spdns.de\/oss_lifestyle\/wp-json\/wp\/v2\/tags?post=8748"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}},{"id":8680,"date":"2026-05-20T11:58:35","date_gmt":"2026-05-20T09:58:35","guid":{"rendered":"https:\/\/speefak.spdns.de\/oss_lifestyle\/?p=8680"},"modified":"2026-07-30T16:08:27","modified_gmt":"2026-07-30T14:08:27","slug":"nautilus-durch-nemo-unter-debian-13-ersetzen","status":"publish","type":"post","link":"https:\/\/speefak.spdns.de\/oss_lifestyle\/nautilus-durch-nemo-unter-debian-13-ersetzen\/","title":{"rendered":"Nautilus durch Nemo unter Debian 13 ersetzen"},"content":{"rendered":"<p>Unter Debian 13 mit GNOME kann der Standard-Dateimanager Nautilus bei vielen Dateien, Netzwerkfreigaben oder zahlreichen Mountpoints deutlich langsamer reagieren.<\/p>\n<p>Die Geschwindigkeitseinbu\u00dfen werden durch ein Zusammenspiel von GLib und GLibc verursacht. Bei Aufrufen von <code>g_file_query_info()<\/code> mit bestimmten Attributen f\u00fchrt GLib interne <code>statfs()<\/code>-Aufrufe durch. Schl\u00e4gt dieser Aufruf fehl \u2013 was bei Netzwerkdateisystemen oder bei vielen Eintr\u00e4gen in <code>\/proc\/mounts<\/code> vorkommt \u2013, initiiert GLibc einen aufwendigen Fallback-Mechanismus. Dies f\u00fchrt zu messbaren Verz\u00f6gerungen bei Dateioperationen.<br \/>\nBetroffen sind h\u00e4ufig:<\/p>\n<ul>\n<li>gro\u00dfe Verzeichnisse<\/li>\n<li>SMB-, NFS- oder SSHFS-Freigaben<\/li>\n<li>Systeme mit vielen Mountpoints (Docker, Flatpak, Snap)<\/li>\n<\/ul>\n<p>Nemo verwendet eine \u00e4ltere GLib-Versionierung und eine eigene Thumbnail-Factory, wodurch dieses Problem nicht auftritt.<\/p>\n<hr \/>\n<h2>Nemo installieren und als Standard-Dateimanager setzen<\/h2>\n<p><\/p><!-- Urvanov Syntax Highlighter v2.9.1 -->\r\n\n\t\t<div id=\"urvanov-syntax-highlighter-6a6c6333f251e034029437\" class=\"urvanov-syntax-highlighter-syntax crayon-theme-classic urvanov-syntax-highlighter-font-monaco urvanov-syntax-highlighter-os-pc print-yes notranslate\" data-settings=\" minimize scroll-mouseover\" style=\" margin-top: 12px; margin-bottom: 12px; font-size: 12px !important; line-height: 15px !important;\">\n\t\t\n\t\t\t<div class=\"crayon-toolbar\" data-settings=\" mouseover overlay hide delay\" style=\"font-size: 12px !important;height: 18px !important; line-height: 18px !important;\"><span class=\"crayon-title\"><\/span>\n\t\t\t<div class=\"crayon-tools\" style=\"font-size: 12px !important;height: 18px !important; line-height: 18px !important;\"><div class=\"crayon-button urvanov-syntax-highlighter-nums-button\" title=\"Zeilennummern\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-plain-button\" title=\"Unformatierte Code-Ansicht\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-wrap-button\" title=\"Zeilenumbruch umschalten\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-expand-button\" title=\"Code aufklappen\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-copy-button\" title=\"Copy\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-popup-button\" title=\"Code in einem neuen Fenster anzeigen\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><\/div><\/div>\n\t\t\t<div class=\"crayon-info\" style=\"min-height: 16.8px !important; line-height: 16.8px !important;\"><\/div>\n\t\t\t<div class=\"urvanov-syntax-highlighter-plain-wrap\"><textarea wrap=\"soft\" class=\"urvanov-syntax-highlighter-plain print-no\" data-settings=\"dblclick\" readonly style=\"-moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4; font-size: 12px !important; line-height: 15px !important;\">\nsudo apt update\r\nsudo apt install nemo nemo-fileroller nemo-preview nemo-share\r\nxdg-mime default nemo.desktop inode\/directory\r\nxdg-mime query default inode\/directory<\/textarea><\/div>\n\t\t\t<div class=\"urvanov-syntax-highlighter-main\" style=\"\">\n\t\t\t\t<table class=\"crayon-table\">\n\t\t\t\t\t<tr class=\"urvanov-syntax-highlighter-row\">\n\t\t\t\t<td class=\"crayon-nums \" data-settings=\"show\">\n\t\t\t\t\t<div class=\"urvanov-syntax-highlighter-nums-content\" style=\"font-size: 12px !important; line-height: 15px !important;\"><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f251e034029437-1\">1<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f251e034029437-2\">2<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f251e034029437-3\">3<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f251e034029437-4\">4<\/div><\/div>\n\t\t\t\t<\/td>\n\t\t\t\t\t\t<td class=\"urvanov-syntax-highlighter-code\"><div class=\"crayon-pre\" style=\"font-size: 12px !important; line-height: 15px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;\"><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f251e034029437-1\"><span class=\"crayon-e\">sudo <\/span><span class=\"crayon-e\">apt <\/span><span class=\"crayon-e\">update<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f251e034029437-2\"><span class=\"crayon-e\">sudo <\/span><span class=\"crayon-e\">apt <\/span><span class=\"crayon-e\">install <\/span><span class=\"crayon-e\">nemo <\/span><span class=\"crayon-v\">nemo<\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-e\">fileroller <\/span><span class=\"crayon-v\">nemo<\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-e\">preview <\/span><span class=\"crayon-v\">nemo<\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-e\">share<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f251e034029437-3\"><span class=\"crayon-v\">xdg<\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-e\">mime <\/span><span class=\"crayon-st\">default<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">nemo<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-e\">desktop <\/span><span class=\"crayon-v\">inode<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-e\">directory<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f251e034029437-4\"><span class=\"crayon-v\">xdg<\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-e\">mime <\/span><span class=\"crayon-e\">query <\/span><span class=\"crayon-st\">default<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">inode<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-v\">directory<\/span><\/div><\/div><\/td>\n\t\t\t\t\t<\/tr>\n\t\t\t\t<\/table>\n\t\t\t<\/div>\n\t\t<\/div>\r\n<!-- [Format Time: 0.0002 seconds] -->\r\n<p>Pr\u00fcfen:<\/p><!-- Urvanov Syntax Highlighter v2.9.1 -->\r\n\n\t\t<div id=\"urvanov-syntax-highlighter-6a6c6333f2528423424606\" class=\"urvanov-syntax-highlighter-syntax crayon-theme-classic urvanov-syntax-highlighter-font-monaco urvanov-syntax-highlighter-os-pc print-yes notranslate\" data-settings=\" minimize scroll-mouseover\" style=\" margin-top: 12px; margin-bottom: 12px; font-size: 12px !important; line-height: 15px !important;\">\n\t\t\n\t\t\t<div class=\"crayon-toolbar\" data-settings=\" mouseover overlay hide delay\" style=\"font-size: 12px !important;height: 18px !important; line-height: 18px !important;\"><span class=\"crayon-title\"><\/span>\n\t\t\t<div class=\"crayon-tools\" style=\"font-size: 12px !important;height: 18px !important; line-height: 18px !important;\"><div class=\"crayon-button urvanov-syntax-highlighter-nums-button\" title=\"Zeilennummern\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-plain-button\" title=\"Unformatierte Code-Ansicht\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-wrap-button\" title=\"Zeilenumbruch umschalten\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-expand-button\" title=\"Code aufklappen\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-copy-button\" title=\"Copy\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-popup-button\" title=\"Code in einem neuen Fenster anzeigen\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><\/div><\/div>\n\t\t\t<div class=\"crayon-info\" style=\"min-height: 16.8px !important; line-height: 16.8px !important;\"><\/div>\n\t\t\t<div class=\"urvanov-syntax-highlighter-plain-wrap\"><textarea wrap=\"soft\" class=\"urvanov-syntax-highlighter-plain print-no\" data-settings=\"dblclick\" readonly style=\"-moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4; font-size: 12px !important; line-height: 15px !important;\">\nxdg-mime query default inode\/directory<\/textarea><\/div>\n\t\t\t<div class=\"urvanov-syntax-highlighter-main\" style=\"\">\n\t\t\t\t<table class=\"crayon-table\">\n\t\t\t\t\t<tr class=\"urvanov-syntax-highlighter-row\">\n\t\t\t\t<td class=\"crayon-nums \" data-settings=\"show\">\n\t\t\t\t\t<div class=\"urvanov-syntax-highlighter-nums-content\" style=\"font-size: 12px !important; line-height: 15px !important;\"><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f2528423424606-1\">1<\/div><\/div>\n\t\t\t\t<\/td>\n\t\t\t\t\t\t<td class=\"urvanov-syntax-highlighter-code\"><div class=\"crayon-pre\" style=\"font-size: 12px !important; line-height: 15px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;\"><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f2528423424606-1\"><span class=\"crayon-v\">xdg<\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-e\">mime <\/span><span class=\"crayon-e\">query <\/span><span class=\"crayon-st\">default<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">inode<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-v\">directory<\/span><\/div><\/div><\/td>\n\t\t\t\t\t<\/tr>\n\t\t\t\t<\/table>\n\t\t\t<\/div>\n\t\t<\/div>\r\n<!-- [Format Time: 0.0001 seconds] -->\r\n<p>Ausgabe:<\/p><!-- Urvanov Syntax Highlighter v2.9.1 -->\r\n\n\t\t<div id=\"urvanov-syntax-highlighter-6a6c6333f252a514356306\" class=\"urvanov-syntax-highlighter-syntax crayon-theme-classic urvanov-syntax-highlighter-font-monaco urvanov-syntax-highlighter-os-pc print-yes notranslate\" data-settings=\" minimize scroll-mouseover\" style=\" margin-top: 12px; margin-bottom: 12px; font-size: 12px !important; line-height: 15px !important;\">\n\t\t\n\t\t\t<div class=\"crayon-toolbar\" data-settings=\" mouseover overlay hide delay\" style=\"font-size: 12px !important;height: 18px !important; line-height: 18px !important;\"><span class=\"crayon-title\"><\/span>\n\t\t\t<div class=\"crayon-tools\" style=\"font-size: 12px !important;height: 18px !important; line-height: 18px !important;\"><div class=\"crayon-button urvanov-syntax-highlighter-nums-button\" title=\"Zeilennummern\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-plain-button\" title=\"Unformatierte Code-Ansicht\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-wrap-button\" title=\"Zeilenumbruch umschalten\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-expand-button\" title=\"Code aufklappen\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-copy-button\" title=\"Copy\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-popup-button\" title=\"Code in einem neuen Fenster anzeigen\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><\/div><\/div>\n\t\t\t<div class=\"crayon-info\" style=\"min-height: 16.8px !important; line-height: 16.8px !important;\"><\/div>\n\t\t\t<div class=\"urvanov-syntax-highlighter-plain-wrap\"><textarea wrap=\"soft\" class=\"urvanov-syntax-highlighter-plain print-no\" data-settings=\"dblclick\" readonly style=\"-moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4; font-size: 12px !important; line-height: 15px !important;\">\nnemo.desktop<\/textarea><\/div>\n\t\t\t<div class=\"urvanov-syntax-highlighter-main\" style=\"\">\n\t\t\t\t<table class=\"crayon-table\">\n\t\t\t\t\t<tr class=\"urvanov-syntax-highlighter-row\">\n\t\t\t\t<td class=\"crayon-nums \" data-settings=\"show\">\n\t\t\t\t\t<div class=\"urvanov-syntax-highlighter-nums-content\" style=\"font-size: 12px !important; line-height: 15px !important;\"><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f252a514356306-1\">1<\/div><\/div>\n\t\t\t\t<\/td>\n\t\t\t\t\t\t<td class=\"urvanov-syntax-highlighter-code\"><div class=\"crayon-pre\" style=\"font-size: 12px !important; line-height: 15px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;\"><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f252a514356306-1\"><span class=\"crayon-v\">nemo<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-v\">desktop<\/span><\/div><\/div><\/td>\n\t\t\t\t\t<\/tr>\n\t\t\t\t<\/table>\n\t\t\t<\/div>\n\t\t<\/div>\r\n<!-- [Format Time: 0.0001 seconds] -->\r\n<p><\/p>\n<hr \/>\n<h2>Desktop-Icons an Nemo \u00fcbergeben<\/h2>\n<p>GNOME verwendet normalerweise Nautilus f\u00fcr die Desktopverwaltung. Diese Funktion wird nun Nemo zugewiesen.<\/p><!-- Urvanov Syntax Highlighter v2.9.1 -->\r\n\n\t\t<div id=\"urvanov-syntax-highlighter-6a6c6333f252d563692587\" class=\"urvanov-syntax-highlighter-syntax crayon-theme-classic urvanov-syntax-highlighter-font-monaco urvanov-syntax-highlighter-os-pc print-yes notranslate\" data-settings=\" minimize scroll-mouseover\" style=\" margin-top: 12px; margin-bottom: 12px; font-size: 12px !important; line-height: 15px !important;\">\n\t\t\n\t\t\t<div class=\"crayon-toolbar\" data-settings=\" mouseover overlay hide delay\" style=\"font-size: 12px !important;height: 18px !important; line-height: 18px !important;\"><span class=\"crayon-title\"><\/span>\n\t\t\t<div class=\"crayon-tools\" style=\"font-size: 12px !important;height: 18px !important; line-height: 18px !important;\"><div class=\"crayon-button urvanov-syntax-highlighter-nums-button\" title=\"Zeilennummern\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-plain-button\" title=\"Unformatierte Code-Ansicht\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-wrap-button\" title=\"Zeilenumbruch umschalten\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-expand-button\" title=\"Code aufklappen\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-copy-button\" title=\"Copy\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-popup-button\" title=\"Code in einem neuen Fenster anzeigen\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><\/div><\/div>\n\t\t\t<div class=\"crayon-info\" style=\"min-height: 16.8px !important; line-height: 16.8px !important;\"><\/div>\n\t\t\t<div class=\"urvanov-syntax-highlighter-plain-wrap\"><textarea wrap=\"soft\" class=\"urvanov-syntax-highlighter-plain print-no\" data-settings=\"dblclick\" readonly style=\"-moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4; font-size: 12px !important; line-height: 15px !important;\">\ngsettings set org.gnome.desktop.background show-desktop-icons false\r\ngsettings set org.nemo.desktop show-desktop-icons true<\/textarea><\/div>\n\t\t\t<div class=\"urvanov-syntax-highlighter-main\" style=\"\">\n\t\t\t\t<table class=\"crayon-table\">\n\t\t\t\t\t<tr class=\"urvanov-syntax-highlighter-row\">\n\t\t\t\t<td class=\"crayon-nums \" data-settings=\"show\">\n\t\t\t\t\t<div class=\"urvanov-syntax-highlighter-nums-content\" style=\"font-size: 12px !important; line-height: 15px !important;\"><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f252d563692587-1\">1<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f252d563692587-2\">2<\/div><\/div>\n\t\t\t\t<\/td>\n\t\t\t\t\t\t<td class=\"urvanov-syntax-highlighter-code\"><div class=\"crayon-pre\" style=\"font-size: 12px !important; line-height: 15px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;\"><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f252d563692587-1\"><span class=\"crayon-e\">gsettings <\/span><span class=\"crayon-e\">set <\/span><span class=\"crayon-v\">org<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-v\">gnome<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-v\">desktop<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-e\">background <\/span><span class=\"crayon-v\">show<\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-v\">desktop<\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-e\">icons <\/span><span class=\"crayon-t\">false<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f252d563692587-2\"><span class=\"crayon-e\">gsettings <\/span><span class=\"crayon-e\">set <\/span><span class=\"crayon-v\">org<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-v\">nemo<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-e\">desktop <\/span><span class=\"crayon-v\">show<\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-v\">desktop<\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-e\">icons <\/span><span class=\"crayon-t\">true<\/span><\/div><\/div><\/td>\n\t\t\t\t\t<\/tr>\n\t\t\t\t<\/table>\n\t\t\t<\/div>\n\t\t<\/div>\r\n<!-- [Format Time: 0.0002 seconds] -->\r\n<p><\/p>\n<hr \/>\n<h2>Nautilus-Hintergrunddienst deaktivieren (optional)<\/h2>\n<p>Nautilus l\u00e4uft standardm\u00e4\u00dfig dauerhaft als D-Bus-Dienst im Hintergrund. Der Dienst wird wie folgt deaktiviert<\/p><!-- Urvanov Syntax Highlighter v2.9.1 -->\r\n\n\t\t<div id=\"urvanov-syntax-highlighter-6a6c6333f252f855054124\" class=\"urvanov-syntax-highlighter-syntax crayon-theme-classic urvanov-syntax-highlighter-font-monaco urvanov-syntax-highlighter-os-pc print-yes notranslate\" data-settings=\" minimize scroll-mouseover\" style=\" margin-top: 12px; margin-bottom: 12px; font-size: 12px !important; line-height: 15px !important;\">\n\t\t\n\t\t\t<div class=\"crayon-toolbar\" data-settings=\" mouseover overlay hide delay\" style=\"font-size: 12px !important;height: 18px !important; line-height: 18px !important;\"><span class=\"crayon-title\"><\/span>\n\t\t\t<div class=\"crayon-tools\" style=\"font-size: 12px !important;height: 18px !important; line-height: 18px !important;\"><div class=\"crayon-button urvanov-syntax-highlighter-nums-button\" title=\"Zeilennummern\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-plain-button\" title=\"Unformatierte Code-Ansicht\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-wrap-button\" title=\"Zeilenumbruch umschalten\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-expand-button\" title=\"Code aufklappen\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-copy-button\" title=\"Copy\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-popup-button\" title=\"Code in einem neuen Fenster anzeigen\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><\/div><\/div>\n\t\t\t<div class=\"crayon-info\" style=\"min-height: 16.8px !important; line-height: 16.8px !important;\"><\/div>\n\t\t\t<div class=\"urvanov-syntax-highlighter-plain-wrap\"><textarea wrap=\"soft\" class=\"urvanov-syntax-highlighter-plain print-no\" data-settings=\"dblclick\" readonly style=\"-moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4; font-size: 12px !important; line-height: 15px !important;\">\nsystemctl --user mask --now org.gnome.Nautilus.service<\/textarea><\/div>\n\t\t\t<div class=\"urvanov-syntax-highlighter-main\" style=\"\">\n\t\t\t\t<table class=\"crayon-table\">\n\t\t\t\t\t<tr class=\"urvanov-syntax-highlighter-row\">\n\t\t\t\t<td class=\"crayon-nums \" data-settings=\"show\">\n\t\t\t\t\t<div class=\"urvanov-syntax-highlighter-nums-content\" style=\"font-size: 12px !important; line-height: 15px !important;\"><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f252f855054124-1\">1<\/div><\/div>\n\t\t\t\t<\/td>\n\t\t\t\t\t\t<td class=\"urvanov-syntax-highlighter-code\"><div class=\"crayon-pre\" style=\"font-size: 12px !important; line-height: 15px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;\"><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f252f855054124-1\"><span class=\"crayon-v\">systemctl<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">--<\/span><span class=\"crayon-e\">user <\/span><span class=\"crayon-v\">mask<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">--<\/span><span class=\"crayon-e\">now <\/span><span class=\"crayon-v\">org<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-v\">gnome<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-v\">Nautilus<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-v\">service<\/span><\/div><\/div><\/td>\n\t\t\t\t\t<\/tr>\n\t\t\t\t<\/table>\n\t\t\t<\/div>\n\t\t<\/div>\r\n<!-- [Format Time: 0.0001 seconds] -->\r\n<p><\/p>\n<hr \/>\n<h2>Firefox und moderne Dateidialoge auf Nemo umstellen<\/h2>\n<p>Firefox, Chromium und andere moderne Anwendungen nutzen das XDG Desktop Portal f\u00fcr Dateiauswahldialoge. Standardm\u00e4\u00dfig wird das GNOME-Portal (und damit Nautilus) verwendet. Die Installation und Umleitung auf das GTK-Portal kann folgenderma\u00dfen umgesetzt werden:<\/p><!-- Urvanov Syntax Highlighter v2.9.1 -->\r\n\n\t\t<div id=\"urvanov-syntax-highlighter-6a6c6333f2532582247204\" class=\"urvanov-syntax-highlighter-syntax crayon-theme-classic urvanov-syntax-highlighter-font-monaco urvanov-syntax-highlighter-os-pc print-yes notranslate\" data-settings=\" minimize scroll-mouseover\" style=\" margin-top: 12px; margin-bottom: 12px; font-size: 12px !important; line-height: 15px !important;\">\n\t\t\n\t\t\t<div class=\"crayon-toolbar\" data-settings=\" mouseover overlay hide delay\" style=\"font-size: 12px !important;height: 18px !important; line-height: 18px !important;\"><span class=\"crayon-title\"><\/span>\n\t\t\t<div class=\"crayon-tools\" style=\"font-size: 12px !important;height: 18px !important; line-height: 18px !important;\"><div class=\"crayon-button urvanov-syntax-highlighter-nums-button\" title=\"Zeilennummern\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-plain-button\" title=\"Unformatierte Code-Ansicht\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-wrap-button\" title=\"Zeilenumbruch umschalten\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-expand-button\" title=\"Code aufklappen\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-copy-button\" title=\"Copy\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-popup-button\" title=\"Code in einem neuen Fenster anzeigen\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><\/div><\/div>\n\t\t\t<div class=\"crayon-info\" style=\"min-height: 16.8px !important; line-height: 16.8px !important;\"><\/div>\n\t\t\t<div class=\"urvanov-syntax-highlighter-plain-wrap\"><textarea wrap=\"soft\" class=\"urvanov-syntax-highlighter-plain print-no\" data-settings=\"dblclick\" readonly style=\"-moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4; font-size: 12px !important; line-height: 15px !important;\">\n# Ben\u00f6tigtes Paket installieren\r\nsudo apt install xdg-desktop-portal-gtk\r\n\r\n# Konfigurationsverzeichnis anlegen\r\nmkdir -p ~\/.config\/xdg-desktop-portal\r\n\r\n# Portal-Konfiguration erstellen\r\ncat &amp;gt; ~\/.config\/xdg-desktop-portal\/portals.conf &amp;lt;&amp;lt; 'EOF'\r\n[preferred]\r\ndefault=gtk\r\norg.freedesktop.impl.portal.FileChooser=gtk\r\nEOF\r\n\r\n# Portal-Dienst neu starten\r\nsystemctl --user restart xdg-desktop-portal<\/textarea><\/div>\n\t\t\t<div class=\"urvanov-syntax-highlighter-main\" style=\"\">\n\t\t\t\t<table class=\"crayon-table\">\n\t\t\t\t\t<tr class=\"urvanov-syntax-highlighter-row\">\n\t\t\t\t<td class=\"crayon-nums \" data-settings=\"show\">\n\t\t\t\t\t<div class=\"urvanov-syntax-highlighter-nums-content\" style=\"font-size: 12px !important; line-height: 15px !important;\"><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f2532582247204-1\">1<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f2532582247204-2\">2<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f2532582247204-3\">3<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f2532582247204-4\">4<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f2532582247204-5\">5<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f2532582247204-6\">6<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f2532582247204-7\">7<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f2532582247204-8\">8<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f2532582247204-9\">9<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f2532582247204-10\">10<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f2532582247204-11\">11<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f2532582247204-12\">12<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f2532582247204-13\">13<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f2532582247204-14\">14<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f2532582247204-15\">15<\/div><\/div>\n\t\t\t\t<\/td>\n\t\t\t\t\t\t<td class=\"urvanov-syntax-highlighter-code\"><div class=\"crayon-pre\" style=\"font-size: 12px !important; line-height: 15px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;\"><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f2532582247204-1\"><span class=\"crayon-p\"># Ben\u00f6tigtes Paket installieren<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f2532582247204-2\"><span class=\"crayon-e\">sudo <\/span><span class=\"crayon-e\">apt <\/span><span class=\"crayon-e\">install <\/span><span class=\"crayon-v\">xdg<\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-v\">desktop<\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-v\">portal<\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-i\">gtk<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f2532582247204-3\">&nbsp;<\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f2532582247204-4\"><span class=\"crayon-p\"># Konfigurationsverzeichnis anlegen<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f2532582247204-5\"><span class=\"crayon-v\">mkdir<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-v\">p<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">~<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-v\">config<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-v\">xdg<\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-v\">desktop<\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-i\">portal<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f2532582247204-6\">&nbsp;<\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f2532582247204-7\"><span class=\"crayon-p\"># Portal-Konfiguration erstellen<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f2532582247204-8\"><span class=\"crayon-v\">cat<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">&amp;<\/span><span class=\"crayon-v\">gt<\/span><span class=\"crayon-sy\">;<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">~<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-v\">config<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-v\">xdg<\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-v\">desktop<\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-v\">portal<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-v\">portals<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-v\">conf<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">&amp;<\/span><span class=\"crayon-v\">lt<\/span><span class=\"crayon-sy\">;<\/span><span class=\"crayon-o\">&amp;<\/span><span class=\"crayon-v\">lt<\/span><span class=\"crayon-sy\">;<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">'EOF'<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f2532582247204-9\"><span class=\"crayon-sy\">[<\/span><span class=\"crayon-v\">preferred<\/span><span class=\"crayon-sy\">]<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f2532582247204-10\"><span class=\"crayon-st\">default<\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-e\">gtk<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f2532582247204-11\"><span class=\"crayon-v\">org<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-v\">freedesktop<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-v\">impl<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-v\">portal<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-v\">FileChooser<\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-e\">gtk<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f2532582247204-12\"><span class=\"crayon-i\">EOF<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f2532582247204-13\">&nbsp;<\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f2532582247204-14\"><span class=\"crayon-p\"># Portal-Dienst neu starten<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f2532582247204-15\"><span class=\"crayon-v\">systemctl<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">--<\/span><span class=\"crayon-e\">user <\/span><span class=\"crayon-e\">restart <\/span><span class=\"crayon-v\">xdg<\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-v\">desktop<\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-v\">portal<\/span><\/div><\/div><\/td>\n\t\t\t\t\t<\/tr>\n\t\t\t\t<\/table>\n\t\t\t<\/div>\n\t\t<\/div>\r\n<!-- [Format Time: 0.0004 seconds] -->\r\n<p><\/p>\n<hr \/>\n<h2>Firefox-Konfiguration<\/h2>\n<p>In Firefox wird die Nutzung der Portal-Schnittstelle aktiviert:<\/p>\n<ol>\n<li>about:config \u00f6ffnen<\/li>\n<li>Nach folgendem Eintrag suchen:<\/li>\n<\/ol>\n<ol>\n<li>Wert auf 1 setzen<\/li>\n<li>Firefox neu starten<\/li>\n<\/ol>\n<p>Danach verwendet Firefox Nemo-basierte GTK-Dateidialoge.<\/p>\n<hr \/>\n<h2>Optional: Nautilus-Aufrufe automatisch auf Nemo umleiten<\/h2>\n<p>Einige Programme starten weiterhin direkt <code>nautilus<\/code>. Daf\u00fcr kann ein Wrapper eingerichtet werden:<\/p><!-- Urvanov Syntax Highlighter v2.9.1 -->\r\n\n\t\t<div id=\"urvanov-syntax-highlighter-6a6c6333f2535755138318\" class=\"urvanov-syntax-highlighter-syntax crayon-theme-classic urvanov-syntax-highlighter-font-monaco urvanov-syntax-highlighter-os-pc print-yes notranslate\" data-settings=\" minimize scroll-mouseover\" style=\" margin-top: 12px; margin-bottom: 12px; font-size: 12px !important; line-height: 15px !important;\">\n\t\t\n\t\t\t<div class=\"crayon-toolbar\" data-settings=\" mouseover overlay hide delay\" style=\"font-size: 12px !important;height: 18px !important; line-height: 18px !important;\"><span class=\"crayon-title\"><\/span>\n\t\t\t<div class=\"crayon-tools\" style=\"font-size: 12px !important;height: 18px !important; line-height: 18px !important;\"><div class=\"crayon-button urvanov-syntax-highlighter-nums-button\" title=\"Zeilennummern\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-plain-button\" title=\"Unformatierte Code-Ansicht\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-wrap-button\" title=\"Zeilenumbruch umschalten\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-expand-button\" title=\"Code aufklappen\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-copy-button\" title=\"Copy\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-popup-button\" title=\"Code in einem neuen Fenster anzeigen\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><\/div><\/div>\n\t\t\t<div class=\"crayon-info\" style=\"min-height: 16.8px !important; line-height: 16.8px !important;\"><\/div>\n\t\t\t<div class=\"urvanov-syntax-highlighter-plain-wrap\"><textarea wrap=\"soft\" class=\"urvanov-syntax-highlighter-plain print-no\" data-settings=\"dblclick\" readonly style=\"-moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4; font-size: 12px !important; line-height: 15px !important;\">\nmkdir -p ~\/.local\/bin\r\n\r\ncat &amp;gt; ~\/.local\/bin\/nautilus &amp;lt;&amp;lt; 'EOF' \r\n#!\/bin\/bash\r\nexec nemo \"$@\"\r\nEOF\u00a0\r\n\r\nchmod +x ~\/.local\/bin\/nautilus\r\n\r\necho 'export PATH=\"$HOME\/.local\/bin:$PATH\"' &amp;gt;&amp;gt; ~\/.profile<\/textarea><\/div>\n\t\t\t<div class=\"urvanov-syntax-highlighter-main\" style=\"\">\n\t\t\t\t<table class=\"crayon-table\">\n\t\t\t\t\t<tr class=\"urvanov-syntax-highlighter-row\">\n\t\t\t\t<td class=\"crayon-nums \" data-settings=\"show\">\n\t\t\t\t\t<div class=\"urvanov-syntax-highlighter-nums-content\" style=\"font-size: 12px !important; line-height: 15px !important;\"><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f2535755138318-1\">1<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f2535755138318-2\">2<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f2535755138318-3\">3<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f2535755138318-4\">4<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f2535755138318-5\">5<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f2535755138318-6\">6<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f2535755138318-7\">7<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f2535755138318-8\">8<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f2535755138318-9\">9<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f2535755138318-10\">10<\/div><\/div>\n\t\t\t\t<\/td>\n\t\t\t\t\t\t<td class=\"urvanov-syntax-highlighter-code\"><div class=\"crayon-pre\" style=\"font-size: 12px !important; line-height: 15px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;\"><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f2535755138318-1\"><span class=\"crayon-v\">mkdir<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-v\">p<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">~<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-v\">local<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-e\">bin<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f2535755138318-2\">&nbsp;<\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f2535755138318-3\"><span class=\"crayon-v\">cat<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">&amp;<\/span><span class=\"crayon-v\">gt<\/span><span class=\"crayon-sy\">;<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">~<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-v\">local<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-v\">bin<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-v\">nautilus<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">&amp;<\/span><span class=\"crayon-v\">lt<\/span><span class=\"crayon-sy\">;<\/span><span class=\"crayon-o\">&amp;<\/span><span class=\"crayon-v\">lt<\/span><span class=\"crayon-sy\">;<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">'EOF'<\/span><span class=\"crayon-h\"> <\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f2535755138318-4\"><span class=\"crayon-p\">#!\/bin\/bash<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f2535755138318-5\"><span class=\"crayon-e\">exec <\/span><span class=\"crayon-i\">nemo<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"$@\"<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f2535755138318-6\"><span class=\"crayon-i\">EOF<\/span>\u00a0<\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f2535755138318-7\">&nbsp;<\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f2535755138318-8\"><span class=\"crayon-v\">chmod<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">+<\/span><span class=\"crayon-v\">x<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">~<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-v\">local<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-v\">bin<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-e\">nautilus<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f2535755138318-9\">&nbsp;<\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f2535755138318-10\"><span class=\"crayon-i\">echo<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">'export PATH=\"$HOME\/.local\/bin:$PATH\"'<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">&amp;<\/span><span class=\"crayon-v\">gt<\/span><span class=\"crayon-sy\">;<\/span><span class=\"crayon-o\">&amp;<\/span><span class=\"crayon-v\">gt<\/span><span class=\"crayon-sy\">;<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">~<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-v\">profile<\/span><\/div><\/div><\/td>\n\t\t\t\t\t<\/tr>\n\t\t\t\t<\/table>\n\t\t\t<\/div>\n\t\t<\/div>\r\n<!-- [Format Time: 0.0003 seconds] -->\r\n<p>Nach erneutem Einloggen werden direkte Nautilus-Aufrufe automatisch an Nemo weitergeleitet. Das kann wie folgt \u00fcberpr\u00fcft werden:<\/p><!-- Urvanov Syntax Highlighter v2.9.1 -->\r\n\n\t\t<div id=\"urvanov-syntax-highlighter-6a6c6333f2537972030628\" class=\"urvanov-syntax-highlighter-syntax crayon-theme-classic urvanov-syntax-highlighter-font-monaco urvanov-syntax-highlighter-os-pc print-yes notranslate\" data-settings=\" minimize scroll-mouseover\" style=\" margin-top: 12px; margin-bottom: 12px; font-size: 12px !important; line-height: 15px !important;\">\n\t\t\n\t\t\t<div class=\"crayon-toolbar\" data-settings=\" mouseover overlay hide delay\" style=\"font-size: 12px !important;height: 18px !important; line-height: 18px !important;\"><span class=\"crayon-title\"><\/span>\n\t\t\t<div class=\"crayon-tools\" style=\"font-size: 12px !important;height: 18px !important; line-height: 18px !important;\"><div class=\"crayon-button urvanov-syntax-highlighter-nums-button\" title=\"Zeilennummern\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-plain-button\" title=\"Unformatierte Code-Ansicht\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-wrap-button\" title=\"Zeilenumbruch umschalten\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-expand-button\" title=\"Code aufklappen\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-copy-button\" title=\"Copy\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-popup-button\" title=\"Code in einem neuen Fenster anzeigen\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><\/div><\/div>\n\t\t\t<div class=\"crayon-info\" style=\"min-height: 16.8px !important; line-height: 16.8px !important;\"><\/div>\n\t\t\t<div class=\"urvanov-syntax-highlighter-plain-wrap\"><textarea wrap=\"soft\" class=\"urvanov-syntax-highlighter-plain print-no\" data-settings=\"dblclick\" readonly style=\"-moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4; font-size: 12px !important; line-height: 15px !important;\">\n# Standard-Dateimanager pr\u00fcfen\r\nxdg-mime query default inode\/directory\r\n\r\n# Nautilus-Prozesse pr\u00fcfen\r\nps aux | grep nautilus\r\n\r\n# Portal-Status pr\u00fcfen\r\nsystemctl --user status xdg-desktop-portal<\/textarea><\/div>\n\t\t\t<div class=\"urvanov-syntax-highlighter-main\" style=\"\">\n\t\t\t\t<table class=\"crayon-table\">\n\t\t\t\t\t<tr class=\"urvanov-syntax-highlighter-row\">\n\t\t\t\t<td class=\"crayon-nums \" data-settings=\"show\">\n\t\t\t\t\t<div class=\"urvanov-syntax-highlighter-nums-content\" style=\"font-size: 12px !important; line-height: 15px !important;\"><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f2537972030628-1\">1<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f2537972030628-2\">2<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f2537972030628-3\">3<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f2537972030628-4\">4<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f2537972030628-5\">5<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f2537972030628-6\">6<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f2537972030628-7\">7<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f2537972030628-8\">8<\/div><\/div>\n\t\t\t\t<\/td>\n\t\t\t\t\t\t<td class=\"urvanov-syntax-highlighter-code\"><div class=\"crayon-pre\" style=\"font-size: 12px !important; line-height: 15px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;\"><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f2537972030628-1\"><span class=\"crayon-p\"># Standard-Dateimanager pr\u00fcfen<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f2537972030628-2\"><span class=\"crayon-v\">xdg<\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-e\">mime <\/span><span class=\"crayon-e\">query <\/span><span class=\"crayon-st\">default<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">inode<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-i\">directory<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f2537972030628-3\">&nbsp;<\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f2537972030628-4\"><span class=\"crayon-p\"># Nautilus-Prozesse pr\u00fcfen<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f2537972030628-5\"><span class=\"crayon-e\">ps <\/span><span class=\"crayon-v\">aux<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">|<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-e\">grep <\/span><span class=\"crayon-i\">nautilus<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f2537972030628-6\">&nbsp;<\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f2537972030628-7\"><span class=\"crayon-p\"># Portal-Status pr\u00fcfen<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f2537972030628-8\"><span class=\"crayon-v\">systemctl<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">--<\/span><span class=\"crayon-e\">user <\/span><span class=\"crayon-e\">status <\/span><span class=\"crayon-v\">xdg<\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-v\">desktop<\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-v\">portal<\/span><\/div><\/div><\/td>\n\t\t\t\t\t<\/tr>\n\t\t\t\t<\/table>\n\t\t\t<\/div>\n\t\t<\/div>\r\n<!-- [Format Time: 0.0002 seconds] -->\r\n<p><\/p>\n<ul>\n<li>Der Wrapper kann u.U. Systemfehler verursachen, da alle Nautilus Aufrufe \u00fcber den Wrapper an Nemo weitergeleitet werden.<\/li>\n<\/ul>\n<hr \/>\n<p><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-2821 alignleft\" src=\"https:\/\/speefak.spdns.de\/oss_lifestyle\/wp-content\/uploads\/2014\/08\/CC_BY_NC_SA.png\" alt=\"CC_BY_NC_SA\" width=\"65\" height=\"23\" \/>by Speefak<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Unter Debian 13 mit GNOME kann der Standard-Dateimanager Nautilus bei vielen Dateien, Netzwerkfreigaben oder zahlreichen Mountpoints deutlich langsamer reagieren. Die Geschwindigkeitseinbu\u00dfen werden durch ein Zusammenspiel von GLib und GLibc verursacht. Bei Aufrufen von g_file_query_info() mit bestimmten Attributen f\u00fchrt GLib interne statfs()-Aufrufe durch. Schl\u00e4gt dieser Aufruf fehl \u2013 was bei Netzwerkdateisystemen oder bei vielen Eintr\u00e4gen in [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[8,10],"tags":[],"class_list":["post-8680","post","type-post","status-publish","format-standard","hentry","category-anleitungen","category-debian"],"rttpg_featured_image_url":null,"rttpg_author":{"display_name":"speefak","author_link":"https:\/\/speefak.spdns.de\/oss_lifestyle\/author\/speefak_oss\/"},"rttpg_comment":4,"rttpg_category":"<a href=\"https:\/\/speefak.spdns.de\/oss_lifestyle\/category\/anleitungen\/\" rel=\"category tag\">Anleitungen<\/a> <a href=\"https:\/\/speefak.spdns.de\/oss_lifestyle\/category\/debian\/\" rel=\"category tag\">Debian<\/a>","rttpg_excerpt":"Unter Debian 13 mit GNOME kann der Standard-Dateimanager Nautilus bei vielen Dateien, Netzwerkfreigaben oder zahlreichen Mountpoints deutlich langsamer reagieren. Die Geschwindigkeitseinbu\u00dfen werden durch ein Zusammenspiel von GLib und GLibc verursacht. Bei Aufrufen von g_file_query_info() mit bestimmten Attributen f\u00fchrt GLib interne statfs()-Aufrufe durch. Schl\u00e4gt dieser Aufruf fehl \u2013 was bei Netzwerkdateisystemen oder bei vielen Eintr\u00e4gen in&hellip;","_links":{"self":[{"href":"https:\/\/speefak.spdns.de\/oss_lifestyle\/wp-json\/wp\/v2\/posts\/8680","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/speefak.spdns.de\/oss_lifestyle\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/speefak.spdns.de\/oss_lifestyle\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/speefak.spdns.de\/oss_lifestyle\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/speefak.spdns.de\/oss_lifestyle\/wp-json\/wp\/v2\/comments?post=8680"}],"version-history":[{"count":2,"href":"https:\/\/speefak.spdns.de\/oss_lifestyle\/wp-json\/wp\/v2\/posts\/8680\/revisions"}],"predecessor-version":[{"id":8760,"href":"https:\/\/speefak.spdns.de\/oss_lifestyle\/wp-json\/wp\/v2\/posts\/8680\/revisions\/8760"}],"wp:attachment":[{"href":"https:\/\/speefak.spdns.de\/oss_lifestyle\/wp-json\/wp\/v2\/media?parent=8680"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/speefak.spdns.de\/oss_lifestyle\/wp-json\/wp\/v2\/categories?post=8680"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/speefak.spdns.de\/oss_lifestyle\/wp-json\/wp\/v2\/tags?post=8680"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}},{"id":8674,"date":"2026-05-03T14:24:31","date_gmt":"2026-05-03T12:24:31","guid":{"rendered":"https:\/\/speefak.spdns.de\/oss_lifestyle\/?p=8674"},"modified":"2026-07-30T13:28:01","modified_gmt":"2026-07-30T11:28:01","slug":"iobroker-iqcontrol-als-saubere-app-mit-firefox-gnome","status":"publish","type":"post","link":"https:\/\/speefak.spdns.de\/oss_lifestyle\/iobroker-iqcontrol-als-saubere-app-mit-firefox-gnome\/","title":{"rendered":"ioBroker iqControl als saubere App mit Firefox (GNOME)"},"content":{"rendered":"<p data-start=\"69\" data-end=\"396\">Ziel dieses Setups ist es, <strong data-start=\"96\" data-end=\"147\"><span class=\"hover:entity-accent entity-underline inline cursor-pointer align-baseline\"><span class=\"whitespace-normal\">ioBroker<\/span><\/span> iqControl<\/strong> in <strong data-start=\"151\" data-end=\"192\"><span class=\"hover:entity-accent entity-underline inline cursor-pointer align-baseline\"><span class=\"whitespace-normal\">Firefox<\/span><\/span><\/strong> wie eine eigenst\u00e4ndige App zu betreiben. Der Browser wird dabei technisch weiter genutzt, aber optisch und funktional so stark reduziert, dass er wie ein dedizierter Kiosk-Client f\u00fcr das Dashboard wirkt.<\/p>\n<p data-start=\"398\" data-end=\"420\">Konkret wird erreicht:<\/p>\n<ul data-start=\"422\" data-end=\"676\">\n<li data-section-id=\"atya81\" data-start=\"422\" data-end=\"482\">kein sichtbarer Browser-Chrome (Tabs, Adressleiste, Men\u00fcs)<\/li>\n<li data-section-id=\"kaksw\" data-start=\"483\" data-end=\"516\">feste Fenstergr\u00f6\u00dfe beim Start, ver\u00e4nderbar nach Start<\/li>\n<li data-section-id=\"11uv2ug\" data-start=\"517\" data-end=\"558\">automatischer Start \u00fcber eigenes Profil<\/li>\n<li data-section-id=\"pe13j\" data-start=\"559\" data-end=\"613\">stabile Anzeige von iqControl im Vollbild-\/App-Modus<\/li>\n<li data-section-id=\"g7jz4u\" data-start=\"614\" data-end=\"676\">optionaler Fallback zwischen Internet-Domain und LAN-Zugriff<\/li>\n<\/ul>\n<p data-start=\"678\" data-end=\"716\">Das Setup besteht aus vier Bausteinen:<\/p>\n<ol data-start=\"717\" data-end=\"894\">\n<li data-section-id=\"jeibp1\" data-start=\"717\" data-end=\"763\">eigenes Firefox-Profil (isolierte Umgebung)<\/li>\n<li data-section-id=\"1u2n3wy\" data-start=\"764\" data-end=\"801\">UI-Reduktion \u00fcber <code data-start=\"785\" data-end=\"801\">userChrome.css<\/code><\/li>\n<li data-section-id=\"rxrdn1\" data-start=\"802\" data-end=\"845\">intelligenter Start mit WAN\/LAN-Fallback<\/li>\n<li data-section-id=\"1fuoj8a\" data-start=\"846\" data-end=\"894\">optionaler Desktop- und Autostart-Integration<br \/>\n<hr \/>\n<\/li>\n<\/ol>\n<h2>1. Neues Firefox-Profil anlegen<\/h2>\n<p><\/p><!-- Urvanov Syntax Highlighter v2.9.1 -->\r\n\n\t\t<div id=\"urvanov-syntax-highlighter-6a6c6333f2907291227122\" class=\"urvanov-syntax-highlighter-syntax crayon-theme-classic urvanov-syntax-highlighter-font-monaco urvanov-syntax-highlighter-os-pc print-yes notranslate\" data-settings=\" minimize scroll-mouseover\" style=\" margin-top: 12px; margin-bottom: 12px; font-size: 12px !important; line-height: 15px !important;\">\n\t\t\n\t\t\t<div class=\"crayon-toolbar\" data-settings=\" mouseover overlay hide delay\" style=\"font-size: 12px !important;height: 18px !important; line-height: 18px !important;\"><span class=\"crayon-title\"><\/span>\n\t\t\t<div class=\"crayon-tools\" style=\"font-size: 12px !important;height: 18px !important; line-height: 18px !important;\"><div class=\"crayon-button urvanov-syntax-highlighter-nums-button\" title=\"Zeilennummern\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-plain-button\" title=\"Unformatierte Code-Ansicht\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-wrap-button\" title=\"Zeilenumbruch umschalten\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-expand-button\" title=\"Code aufklappen\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-copy-button\" title=\"Copy\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-popup-button\" title=\"Code in einem neuen Fenster anzeigen\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><\/div><\/div>\n\t\t\t<div class=\"crayon-info\" style=\"min-height: 16.8px !important; line-height: 16.8px !important;\"><\/div>\n\t\t\t<div class=\"urvanov-syntax-highlighter-plain-wrap\"><textarea wrap=\"soft\" class=\"urvanov-syntax-highlighter-plain print-no\" data-settings=\"dblclick\" readonly style=\"-moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4; font-size: 12px !important; line-height: 15px !important;\">\nfirefox-esr -CreateProfile iobroker<\/textarea><\/div>\n\t\t\t<div class=\"urvanov-syntax-highlighter-main\" style=\"\">\n\t\t\t\t<table class=\"crayon-table\">\n\t\t\t\t\t<tr class=\"urvanov-syntax-highlighter-row\">\n\t\t\t\t<td class=\"crayon-nums \" data-settings=\"show\">\n\t\t\t\t\t<div class=\"urvanov-syntax-highlighter-nums-content\" style=\"font-size: 12px !important; line-height: 15px !important;\"><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f2907291227122-1\">1<\/div><\/div>\n\t\t\t\t<\/td>\n\t\t\t\t\t\t<td class=\"urvanov-syntax-highlighter-code\"><div class=\"crayon-pre\" style=\"font-size: 12px !important; line-height: 15px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;\"><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f2907291227122-1\"><span class=\"crayon-v\">firefox<\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-v\">esr<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-e\">CreateProfile <\/span><span class=\"crayon-v\">iobroker<\/span><\/div><\/div><\/td>\n\t\t\t\t\t<\/tr>\n\t\t\t\t<\/table>\n\t\t\t<\/div>\n\t\t<\/div>\r\n<!-- [Format Time: 0.0001 seconds] -->\r\n<p><\/p>\n<hr \/>\n<h2>2. userChrome.css aktivieren<\/h2>\n<p>Firefox muss mit dem zuvor angelegten \u201eiobroker\u201c-Profil gestartet werden, damit alle Konfigurations\u00e4nderungen im korrekten Profil gespeichert und angewendet werden.<\/p>\n<p>Start inklusive direktem Zugriff auf die Konfiguration:<\/p><!-- Urvanov Syntax Highlighter v2.9.1 -->\r\n\n\t\t<div id=\"urvanov-syntax-highlighter-6a6c6333f2911320111928\" class=\"urvanov-syntax-highlighter-syntax crayon-theme-classic urvanov-syntax-highlighter-font-monaco urvanov-syntax-highlighter-os-pc print-yes notranslate\" data-settings=\" minimize scroll-mouseover\" style=\" margin-top: 12px; margin-bottom: 12px; font-size: 12px !important; line-height: 15px !important;\">\n\t\t\n\t\t\t<div class=\"crayon-toolbar\" data-settings=\" mouseover overlay hide delay\" style=\"font-size: 12px !important;height: 18px !important; line-height: 18px !important;\"><span class=\"crayon-title\"><\/span>\n\t\t\t<div class=\"crayon-tools\" style=\"font-size: 12px !important;height: 18px !important; line-height: 18px !important;\"><div class=\"crayon-button urvanov-syntax-highlighter-nums-button\" title=\"Zeilennummern\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-plain-button\" title=\"Unformatierte Code-Ansicht\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-wrap-button\" title=\"Zeilenumbruch umschalten\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-expand-button\" title=\"Code aufklappen\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-copy-button\" title=\"Copy\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-popup-button\" title=\"Code in einem neuen Fenster anzeigen\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><\/div><\/div>\n\t\t\t<div class=\"crayon-info\" style=\"min-height: 16.8px !important; line-height: 16.8px !important;\"><\/div>\n\t\t\t<div class=\"urvanov-syntax-highlighter-plain-wrap\"><textarea wrap=\"soft\" class=\"urvanov-syntax-highlighter-plain print-no\" data-settings=\"dblclick\" readonly style=\"-moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4; font-size: 12px !important; line-height: 15px !important;\">\nfirefox-esr -P iobroker about:config<\/textarea><\/div>\n\t\t\t<div class=\"urvanov-syntax-highlighter-main\" style=\"\">\n\t\t\t\t<table class=\"crayon-table\">\n\t\t\t\t\t<tr class=\"urvanov-syntax-highlighter-row\">\n\t\t\t\t<td class=\"crayon-nums \" data-settings=\"show\">\n\t\t\t\t\t<div class=\"urvanov-syntax-highlighter-nums-content\" style=\"font-size: 12px !important; line-height: 15px !important;\"><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f2911320111928-1\">1<\/div><\/div>\n\t\t\t\t<\/td>\n\t\t\t\t\t\t<td class=\"urvanov-syntax-highlighter-code\"><div class=\"crayon-pre\" style=\"font-size: 12px !important; line-height: 15px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;\"><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f2911320111928-1\"><span class=\"crayon-v\">firefox<\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-v\">esr<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-i\">P<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-e\">iobroker <\/span><span class=\"crayon-v\">about<\/span><span class=\"crayon-o\">:<\/span><span class=\"crayon-v\">config<\/span><\/div><\/div><\/td>\n\t\t\t\t\t<\/tr>\n\t\t\t\t<\/table>\n\t\t\t<\/div>\n\t\t<\/div>\r\n<!-- [Format Time: 0.0001 seconds] -->\r\n<p>Suche nach:<\/p><!-- Urvanov Syntax Highlighter v2.9.1 -->\r\n\n\t\t<div id=\"urvanov-syntax-highlighter-6a6c6333f2914232875593\" class=\"urvanov-syntax-highlighter-syntax crayon-theme-classic urvanov-syntax-highlighter-font-monaco urvanov-syntax-highlighter-os-pc print-yes notranslate\" data-settings=\" minimize scroll-mouseover\" style=\" margin-top: 12px; margin-bottom: 12px; font-size: 12px !important; line-height: 15px !important;\">\n\t\t\n\t\t\t<div class=\"crayon-toolbar\" data-settings=\" mouseover overlay hide delay\" style=\"font-size: 12px !important;height: 18px !important; line-height: 18px !important;\"><span class=\"crayon-title\"><\/span>\n\t\t\t<div class=\"crayon-tools\" style=\"font-size: 12px !important;height: 18px !important; line-height: 18px !important;\"><div class=\"crayon-button urvanov-syntax-highlighter-nums-button\" title=\"Zeilennummern\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-plain-button\" title=\"Unformatierte Code-Ansicht\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-wrap-button\" title=\"Zeilenumbruch umschalten\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-expand-button\" title=\"Code aufklappen\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-copy-button\" title=\"Copy\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-popup-button\" title=\"Code in einem neuen Fenster anzeigen\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><\/div><\/div>\n\t\t\t<div class=\"crayon-info\" style=\"min-height: 16.8px !important; line-height: 16.8px !important;\"><\/div>\n\t\t\t<div class=\"urvanov-syntax-highlighter-plain-wrap\"><textarea wrap=\"soft\" class=\"urvanov-syntax-highlighter-plain print-no\" data-settings=\"dblclick\" readonly style=\"-moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4; font-size: 12px !important; line-height: 15px !important;\">\ntoolkit.legacyUserProfileCustomizations.stylesheets<\/textarea><\/div>\n\t\t\t<div class=\"urvanov-syntax-highlighter-main\" style=\"\">\n\t\t\t\t<table class=\"crayon-table\">\n\t\t\t\t\t<tr class=\"urvanov-syntax-highlighter-row\">\n\t\t\t\t<td class=\"crayon-nums \" data-settings=\"show\">\n\t\t\t\t\t<div class=\"urvanov-syntax-highlighter-nums-content\" style=\"font-size: 12px !important; line-height: 15px !important;\"><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f2914232875593-1\">1<\/div><\/div>\n\t\t\t\t<\/td>\n\t\t\t\t\t\t<td class=\"urvanov-syntax-highlighter-code\"><div class=\"crayon-pre\" style=\"font-size: 12px !important; line-height: 15px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;\"><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f2914232875593-1\"><span class=\"crayon-v\">toolkit<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-v\">legacyUserProfileCustomizations<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-v\">stylesheets<\/span><\/div><\/div><\/td>\n\t\t\t\t\t<\/tr>\n\t\t\t\t<\/table>\n\t\t\t<\/div>\n\t\t<\/div>\r\n<!-- [Format Time: 0.0001 seconds] -->\r\n<p>Setze den Wert auf:<\/p><!-- Urvanov Syntax Highlighter v2.9.1 -->\r\n\n\t\t<div id=\"urvanov-syntax-highlighter-6a6c6333f2916072211888\" class=\"urvanov-syntax-highlighter-syntax crayon-theme-classic urvanov-syntax-highlighter-font-monaco urvanov-syntax-highlighter-os-pc print-yes notranslate\" data-settings=\" minimize scroll-mouseover\" style=\" margin-top: 12px; margin-bottom: 12px; font-size: 12px !important; line-height: 15px !important;\">\n\t\t\n\t\t\t<div class=\"crayon-toolbar\" data-settings=\" mouseover overlay hide delay\" style=\"font-size: 12px !important;height: 18px !important; line-height: 18px !important;\"><span class=\"crayon-title\"><\/span>\n\t\t\t<div class=\"crayon-tools\" style=\"font-size: 12px !important;height: 18px !important; line-height: 18px !important;\"><div class=\"crayon-button urvanov-syntax-highlighter-nums-button\" title=\"Zeilennummern\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-plain-button\" title=\"Unformatierte Code-Ansicht\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-wrap-button\" title=\"Zeilenumbruch umschalten\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-expand-button\" title=\"Code aufklappen\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-copy-button\" title=\"Copy\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-popup-button\" title=\"Code in einem neuen Fenster anzeigen\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><\/div><\/div>\n\t\t\t<div class=\"crayon-info\" style=\"min-height: 16.8px !important; line-height: 16.8px !important;\"><\/div>\n\t\t\t<div class=\"urvanov-syntax-highlighter-plain-wrap\"><textarea wrap=\"soft\" class=\"urvanov-syntax-highlighter-plain print-no\" data-settings=\"dblclick\" readonly style=\"-moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4; font-size: 12px !important; line-height: 15px !important;\">\ntrue<\/textarea><\/div>\n\t\t\t<div class=\"urvanov-syntax-highlighter-main\" style=\"\">\n\t\t\t\t<table class=\"crayon-table\">\n\t\t\t\t\t<tr class=\"urvanov-syntax-highlighter-row\">\n\t\t\t\t<td class=\"crayon-nums \" data-settings=\"show\">\n\t\t\t\t\t<div class=\"urvanov-syntax-highlighter-nums-content\" style=\"font-size: 12px !important; line-height: 15px !important;\"><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f2916072211888-1\">1<\/div><\/div>\n\t\t\t\t<\/td>\n\t\t\t\t\t\t<td class=\"urvanov-syntax-highlighter-code\"><div class=\"crayon-pre\" style=\"font-size: 12px !important; line-height: 15px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;\"><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f2916072211888-1\"><span class=\"crayon-t\">true<\/span><\/div><\/div><\/td>\n\t\t\t\t\t<\/tr>\n\t\t\t\t<\/table>\n\t\t\t<\/div>\n\t\t<\/div>\r\n<!-- [Format Time: 0.0000 seconds] -->\r\n<p><\/p>\n<hr \/>\n<h2>3. userChrome.css erstellen<\/h2>\n<p>In diesem Schritt wird die Firefox-Oberfl\u00e4che reduziert (Tabs, Adressleiste, Men\u00fcs), sodass nur der Inhalt sichtbar bleibt und eine App-\u00e4hnliche ioBroker-Ansicht entsteht.<\/p><!-- Urvanov Syntax Highlighter v2.9.1 -->\r\n\n\t\t<div id=\"urvanov-syntax-highlighter-6a6c6333f2919561215575\" class=\"urvanov-syntax-highlighter-syntax crayon-theme-classic urvanov-syntax-highlighter-font-monaco urvanov-syntax-highlighter-os-pc print-yes notranslate\" data-settings=\" minimize scroll-mouseover\" style=\" margin-top: 12px; margin-bottom: 12px; font-size: 12px !important; line-height: 15px !important;\">\n\t\t\n\t\t\t<div class=\"crayon-toolbar\" data-settings=\" mouseover overlay hide delay\" style=\"font-size: 12px !important;height: 18px !important; line-height: 18px !important;\"><span class=\"crayon-title\"><\/span>\n\t\t\t<div class=\"crayon-tools\" style=\"font-size: 12px !important;height: 18px !important; line-height: 18px !important;\"><div class=\"crayon-button urvanov-syntax-highlighter-nums-button\" title=\"Zeilennummern\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-plain-button\" title=\"Unformatierte Code-Ansicht\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-wrap-button\" title=\"Zeilenumbruch umschalten\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-expand-button\" title=\"Code aufklappen\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-copy-button\" title=\"Copy\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-popup-button\" title=\"Code in einem neuen Fenster anzeigen\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><\/div><\/div>\n\t\t\t<div class=\"crayon-info\" style=\"min-height: 16.8px !important; line-height: 16.8px !important;\"><\/div>\n\t\t\t<div class=\"urvanov-syntax-highlighter-plain-wrap\"><textarea wrap=\"soft\" class=\"urvanov-syntax-highlighter-plain print-no\" data-settings=\"dblclick\" readonly style=\"-moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4; font-size: 12px !important; line-height: 15px !important;\">\ncd ~\/.mozilla\/firefox\/*.iobroker\r\nmkdir -p chrome\r\nnano chrome\/userChrome.css<\/textarea><\/div>\n\t\t\t<div class=\"urvanov-syntax-highlighter-main\" style=\"\">\n\t\t\t\t<table class=\"crayon-table\">\n\t\t\t\t\t<tr class=\"urvanov-syntax-highlighter-row\">\n\t\t\t\t<td class=\"crayon-nums \" data-settings=\"show\">\n\t\t\t\t\t<div class=\"urvanov-syntax-highlighter-nums-content\" style=\"font-size: 12px !important; line-height: 15px !important;\"><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f2919561215575-1\">1<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f2919561215575-2\">2<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f2919561215575-3\">3<\/div><\/div>\n\t\t\t\t<\/td>\n\t\t\t\t\t\t<td class=\"urvanov-syntax-highlighter-code\"><div class=\"crayon-pre\" style=\"font-size: 12px !important; line-height: 15px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;\"><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f2919561215575-1\"><span class=\"crayon-v\">cd<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">~<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-v\">mozilla<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-v\">firefox<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-o\">*<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-e\">iobroker<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f2919561215575-2\"><span class=\"crayon-v\">mkdir<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-i\">p<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-e\">chrome<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f2919561215575-3\"><span class=\"crayon-e\">nano <\/span><span class=\"crayon-v\">chrome<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-v\">userChrome<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-v\">css<\/span><\/div><\/div><\/td>\n\t\t\t\t\t<\/tr>\n\t\t\t\t<\/table>\n\t\t\t<\/div>\n\t\t<\/div>\r\n<!-- [Format Time: 0.0001 seconds] -->\r\n<p>Inhalt:<\/p><!-- Urvanov Syntax Highlighter v2.9.1 -->\r\n\n\t\t<div id=\"urvanov-syntax-highlighter-6a6c6333f291b937939224\" class=\"urvanov-syntax-highlighter-syntax crayon-theme-classic urvanov-syntax-highlighter-font-monaco urvanov-syntax-highlighter-os-pc print-yes notranslate\" data-settings=\" minimize scroll-mouseover\" style=\" margin-top: 12px; margin-bottom: 12px; font-size: 12px !important; line-height: 15px !important;\">\n\t\t\n\t\t\t<div class=\"crayon-toolbar\" data-settings=\" mouseover overlay hide delay\" style=\"font-size: 12px !important;height: 18px !important; line-height: 18px !important;\"><span class=\"crayon-title\"><\/span>\n\t\t\t<div class=\"crayon-tools\" style=\"font-size: 12px !important;height: 18px !important; line-height: 18px !important;\"><div class=\"crayon-button urvanov-syntax-highlighter-nums-button\" title=\"Zeilennummern\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-plain-button\" title=\"Unformatierte Code-Ansicht\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-wrap-button\" title=\"Zeilenumbruch umschalten\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-expand-button\" title=\"Code aufklappen\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-copy-button\" title=\"Copy\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-popup-button\" title=\"Code in einem neuen Fenster anzeigen\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><\/div><\/div>\n\t\t\t<div class=\"crayon-info\" style=\"min-height: 16.8px !important; line-height: 16.8px !important;\"><\/div>\n\t\t\t<div class=\"urvanov-syntax-highlighter-plain-wrap\"><textarea wrap=\"soft\" class=\"urvanov-syntax-highlighter-plain print-no\" data-settings=\"dblclick\" readonly style=\"-moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4; font-size: 12px !important; line-height: 15px !important;\">\n\/* ioBroker Clean Dashboard *\/\r\n\r\n#titlebar,\r\n#toolbar-menubar,\r\n#TabsToolbar,\r\n#nav-bar,\r\n#PersonalToolbar,\r\n#urlbar-container {\r\n    visibility: collapse !important;\r\n    max-height: 0 !important;\r\n    min-height: 0 !important;\r\n}\r\n\r\n#sidebar-box {\r\n    display: none !important;\r\n}\r\n\r\n:root {\r\n    --tab-min-height: 0px !important;\r\n}\r\n\r\n\/* Abstand oben *\/\r\n#navigator-toolbox {\r\n    padding-top: 2px !important;\r\n}<\/textarea><\/div>\n\t\t\t<div class=\"urvanov-syntax-highlighter-main\" style=\"\">\n\t\t\t\t<table class=\"crayon-table\">\n\t\t\t\t\t<tr class=\"urvanov-syntax-highlighter-row\">\n\t\t\t\t<td class=\"crayon-nums \" data-settings=\"show\">\n\t\t\t\t\t<div class=\"urvanov-syntax-highlighter-nums-content\" style=\"font-size: 12px !important; line-height: 15px !important;\"><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f291b937939224-1\">1<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f291b937939224-2\">2<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f291b937939224-3\">3<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f291b937939224-4\">4<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f291b937939224-5\">5<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f291b937939224-6\">6<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f291b937939224-7\">7<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f291b937939224-8\">8<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f291b937939224-9\">9<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f291b937939224-10\">10<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f291b937939224-11\">11<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f291b937939224-12\">12<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f291b937939224-13\">13<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f291b937939224-14\">14<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f291b937939224-15\">15<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f291b937939224-16\">16<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f291b937939224-17\">17<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f291b937939224-18\">18<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f291b937939224-19\">19<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f291b937939224-20\">20<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f291b937939224-21\">21<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f291b937939224-22\">22<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f291b937939224-23\">23<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f291b937939224-24\">24<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f291b937939224-25\">25<\/div><\/div>\n\t\t\t\t<\/td>\n\t\t\t\t\t\t<td class=\"urvanov-syntax-highlighter-code\"><div class=\"crayon-pre\" style=\"font-size: 12px !important; line-height: 15px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;\"><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f291b937939224-1\"><span class=\"crayon-c\">\/* ioBroker Clean Dashboard *\/<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f291b937939224-2\">&nbsp;<\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f291b937939224-3\"><span class=\"crayon-p\">#titlebar,<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f291b937939224-4\"><span class=\"crayon-p\">#toolbar-menubar,<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f291b937939224-5\"><span class=\"crayon-p\">#TabsToolbar,<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f291b937939224-6\"><span class=\"crayon-p\">#nav-bar,<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f291b937939224-7\"><span class=\"crayon-p\">#PersonalToolbar,<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f291b937939224-8\"><span class=\"crayon-p\">#urlbar-container {<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f291b937939224-9\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-v\">visibility<\/span><span class=\"crayon-o\">:<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">collapse<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">!<\/span><span class=\"crayon-v\">important<\/span><span class=\"crayon-sy\">;<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f291b937939224-10\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-v\">max<\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-v\">height<\/span><span class=\"crayon-o\">:<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">0<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">!<\/span><span class=\"crayon-v\">important<\/span><span class=\"crayon-sy\">;<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f291b937939224-11\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-v\">min<\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-v\">height<\/span><span class=\"crayon-o\">:<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">0<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">!<\/span><span class=\"crayon-v\">important<\/span><span class=\"crayon-sy\">;<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f291b937939224-12\"><span class=\"crayon-sy\">}<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f291b937939224-13\">&nbsp;<\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f291b937939224-14\"><span class=\"crayon-p\">#sidebar-box {<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f291b937939224-15\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-v\">display<\/span><span class=\"crayon-o\">:<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">none<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">!<\/span><span class=\"crayon-v\">important<\/span><span class=\"crayon-sy\">;<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f291b937939224-16\"><span class=\"crayon-sy\">}<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f291b937939224-17\">&nbsp;<\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f291b937939224-18\"><span class=\"crayon-o\">:<\/span><span class=\"crayon-e\">root<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-sy\">{<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f291b937939224-19\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-o\">--<\/span><span class=\"crayon-v\">tab<\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-v\">min<\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-v\">height<\/span><span class=\"crayon-o\">:<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">0px<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">!<\/span><span class=\"crayon-v\">important<\/span><span class=\"crayon-sy\">;<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f291b937939224-20\"><span class=\"crayon-sy\">}<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f291b937939224-21\">&nbsp;<\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f291b937939224-22\"><span class=\"crayon-c\">\/* Abstand oben *\/<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f291b937939224-23\"><span class=\"crayon-p\">#navigator-toolbox {<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f291b937939224-24\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-v\">padding<\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-v\">top<\/span><span class=\"crayon-o\">:<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">2px<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">!<\/span><span class=\"crayon-v\">important<\/span><span class=\"crayon-sy\">;<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f291b937939224-25\"><span class=\"crayon-sy\">}<\/span><\/div><\/div><\/td>\n\t\t\t\t\t<\/tr>\n\t\t\t\t<\/table>\n\t\t\t<\/div>\n\t\t<\/div>\r\n<!-- [Format Time: 0.0003 seconds] -->\r\n<p><\/p>\n<hr \/>\n<h2>4. Startscript mit WAN\/LAN Fallback<\/h2>\n<p>SSL-Zertifikate k\u00f6nnen in der Regel nur f\u00fcr Domainnamen erstellt werden, nicht f\u00fcr lokale IP-Adressen. Daher f\u00fchrt der Zugriff \u00fcber die LAN-IP im Browser zu einem Zertifikatsfehler. Wird hingegen die im Zertifikat hinterlegte Domain genutzt, ist die Verbindung fehlerfrei. Deshalb wird zuerst die URL getestet und nur im Fehlerfall die LAN-IP verwendet.<\/p>\n<p>In diesem Schritt wird ein Script erstellt, das automatisch entscheidet, ob die ioBroker-Instanz \u00fcber die \u00f6ffentliche Domain oder die lokale IP gestartet wird.<\/p><!-- Urvanov Syntax Highlighter v2.9.1 -->\r\n\n\t\t<div id=\"urvanov-syntax-highlighter-6a6c6333f291e034097394\" class=\"urvanov-syntax-highlighter-syntax crayon-theme-classic urvanov-syntax-highlighter-font-monaco urvanov-syntax-highlighter-os-pc print-yes notranslate\" data-settings=\" minimize scroll-mouseover\" style=\" margin-top: 12px; margin-bottom: 12px; font-size: 12px !important; line-height: 15px !important;\">\n\t\t\n\t\t\t<div class=\"crayon-toolbar\" data-settings=\" mouseover overlay hide delay\" style=\"font-size: 12px !important;height: 18px !important; line-height: 18px !important;\"><span class=\"crayon-title\"><\/span>\n\t\t\t<div class=\"crayon-tools\" style=\"font-size: 12px !important;height: 18px !important; line-height: 18px !important;\"><div class=\"crayon-button urvanov-syntax-highlighter-nums-button\" title=\"Zeilennummern\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-plain-button\" title=\"Unformatierte Code-Ansicht\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-wrap-button\" title=\"Zeilenumbruch umschalten\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-expand-button\" title=\"Code aufklappen\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-copy-button\" title=\"Copy\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-popup-button\" title=\"Code in einem neuen Fenster anzeigen\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><\/div><\/div>\n\t\t\t<div class=\"crayon-info\" style=\"min-height: 16.8px !important; line-height: 16.8px !important;\"><\/div>\n\t\t\t<div class=\"urvanov-syntax-highlighter-plain-wrap\"><textarea wrap=\"soft\" class=\"urvanov-syntax-highlighter-plain print-no\" data-settings=\"dblclick\" readonly style=\"-moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4; font-size: 12px !important; line-height: 15px !important;\">\nnano ~\/start-iobroker-ff-appmode.sh<\/textarea><\/div>\n\t\t\t<div class=\"urvanov-syntax-highlighter-main\" style=\"\">\n\t\t\t\t<table class=\"crayon-table\">\n\t\t\t\t\t<tr class=\"urvanov-syntax-highlighter-row\">\n\t\t\t\t<td class=\"crayon-nums \" data-settings=\"show\">\n\t\t\t\t\t<div class=\"urvanov-syntax-highlighter-nums-content\" style=\"font-size: 12px !important; line-height: 15px !important;\"><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f291e034097394-1\">1<\/div><\/div>\n\t\t\t\t<\/td>\n\t\t\t\t\t\t<td class=\"urvanov-syntax-highlighter-code\"><div class=\"crayon-pre\" style=\"font-size: 12px !important; line-height: 15px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;\"><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f291e034097394-1\"><span class=\"crayon-v\">nano<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">~<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-v\">start<\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-v\">iobroker<\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-v\">ff<\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-v\">appmode<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-v\">sh<\/span><\/div><\/div><\/td>\n\t\t\t\t\t<\/tr>\n\t\t\t\t<\/table>\n\t\t\t<\/div>\n\t\t<\/div>\r\n<!-- [Format Time: 0.0001 seconds] -->\r\n<p>Inhalt:<\/p><!-- Urvanov Syntax Highlighter v2.9.1 -->\r\n\n\t\t<div id=\"urvanov-syntax-highlighter-6a6c6333f2921203566926\" class=\"urvanov-syntax-highlighter-syntax crayon-theme-classic urvanov-syntax-highlighter-font-monaco urvanov-syntax-highlighter-os-pc print-yes notranslate\" data-settings=\" minimize scroll-mouseover\" style=\" margin-top: 12px; margin-bottom: 12px; font-size: 12px !important; line-height: 15px !important;\">\n\t\t\n\t\t\t<div class=\"crayon-toolbar\" data-settings=\" mouseover overlay hide delay\" style=\"font-size: 12px !important;height: 18px !important; line-height: 18px !important;\"><span class=\"crayon-title\"><\/span>\n\t\t\t<div class=\"crayon-tools\" style=\"font-size: 12px !important;height: 18px !important; line-height: 18px !important;\"><div class=\"crayon-button urvanov-syntax-highlighter-nums-button\" title=\"Zeilennummern\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-plain-button\" title=\"Unformatierte Code-Ansicht\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-wrap-button\" title=\"Zeilenumbruch umschalten\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-expand-button\" title=\"Code aufklappen\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-copy-button\" title=\"Copy\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-popup-button\" title=\"Code in einem neuen Fenster anzeigen\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><\/div><\/div>\n\t\t\t<div class=\"crayon-info\" style=\"min-height: 16.8px !important; line-height: 16.8px !important;\"><\/div>\n\t\t\t<div class=\"urvanov-syntax-highlighter-plain-wrap\"><textarea wrap=\"soft\" class=\"urvanov-syntax-highlighter-plain print-no\" data-settings=\"dblclick\" readonly style=\"-moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4; font-size: 12px !important; line-height: 15px !important;\">\n#!\/bin\/bash\r\n\r\nURL_PUBLIC=\"https:\/\/&amp;lt;DDNS-Domain&amp;gt;:8082\/iqontrol\/index.html?namespace=iqontrol.0\"\r\nURL_LAN=\"https:\/\/&amp;lt;LAN-IP&amp;gt;:8082\/iqontrol\/index.html?namespace=iqontrol.0\"\r\n\r\nif timeout 2 bash -c \"&amp;lt;\/dev\/tcp\/&amp;lt;DDNS-Domain&amp;gt;\/8082\" 2&amp;gt;\/dev\/null; then\r\n    URL=\"$URL_PUBLIC\"\r\nelse\r\n    URL=\"$URL_LAN\"\r\nfi\r\n\r\nfirefox-esr -P iobroker --class=iobroker --window-size=1600,900 \"$URL\"<\/textarea><\/div>\n\t\t\t<div class=\"urvanov-syntax-highlighter-main\" style=\"\">\n\t\t\t\t<table class=\"crayon-table\">\n\t\t\t\t\t<tr class=\"urvanov-syntax-highlighter-row\">\n\t\t\t\t<td class=\"crayon-nums \" data-settings=\"show\">\n\t\t\t\t\t<div class=\"urvanov-syntax-highlighter-nums-content\" style=\"font-size: 12px !important; line-height: 15px !important;\"><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f2921203566926-1\">1<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f2921203566926-2\">2<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f2921203566926-3\">3<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f2921203566926-4\">4<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f2921203566926-5\">5<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f2921203566926-6\">6<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f2921203566926-7\">7<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f2921203566926-8\">8<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f2921203566926-9\">9<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f2921203566926-10\">10<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f2921203566926-11\">11<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f2921203566926-12\">12<\/div><\/div>\n\t\t\t\t<\/td>\n\t\t\t\t\t\t<td class=\"urvanov-syntax-highlighter-code\"><div class=\"crayon-pre\" style=\"font-size: 12px !important; line-height: 15px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;\"><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f2921203566926-1\"><span class=\"crayon-p\">#!\/bin\/bash<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f2921203566926-2\">&nbsp;<\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f2921203566926-3\"><span class=\"crayon-v\">URL_PUBLIC<\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-s\">\"https:\/\/&amp;lt;DDNS-Domain&amp;gt;:8082\/iqontrol\/index.html?namespace=iqontrol.0\"<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f2921203566926-4\"><span class=\"crayon-v\">URL_LAN<\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-s\">\"https:\/\/&amp;lt;LAN-IP&amp;gt;:8082\/iqontrol\/index.html?namespace=iqontrol.0\"<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f2921203566926-5\">&nbsp;<\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f2921203566926-6\"><span class=\"crayon-st\">if<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-i\">timeout<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">2<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">bash<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-i\">c<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"&amp;lt;\/dev\/tcp\/&amp;lt;DDNS-Domain&amp;gt;\/8082\"<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">2<\/span><span class=\"crayon-o\">&amp;<\/span><span class=\"crayon-v\">gt<\/span><span class=\"crayon-sy\">;<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-v\">dev<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-t\">null<\/span><span class=\"crayon-sy\">;<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-st\">then<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f2921203566926-7\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-v\">URL<\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-s\">\"$URL_PUBLIC\"<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f2921203566926-8\"><span class=\"crayon-st\">else<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f2921203566926-9\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-v\">URL<\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-s\">\"$URL_LAN\"<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f2921203566926-10\"><span class=\"crayon-e\">fi<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f2921203566926-11\">&nbsp;<\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f2921203566926-12\"><span class=\"crayon-v\">firefox<\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-v\">esr<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-i\">P<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">iobroker<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">--<\/span><span class=\"crayon-t\">class<\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-v\">iobroker<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">--<\/span><span class=\"crayon-v\">window<\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-v\">size<\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-cn\">1600<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-cn\">900<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"$URL\"<\/span><\/div><\/div><\/td>\n\t\t\t\t\t<\/tr>\n\t\t\t\t<\/table>\n\t\t\t<\/div>\n\t\t<\/div>\r\n<!-- [Format Time: 0.0003 seconds] -->\r\n<p>Rechte anpassen:<\/p><!-- Urvanov Syntax Highlighter v2.9.1 -->\r\n\n\t\t<div id=\"urvanov-syntax-highlighter-6a6c6333f2923880117211\" class=\"urvanov-syntax-highlighter-syntax crayon-theme-classic urvanov-syntax-highlighter-font-monaco urvanov-syntax-highlighter-os-pc print-yes notranslate\" data-settings=\" minimize scroll-mouseover\" style=\" margin-top: 12px; margin-bottom: 12px; font-size: 12px !important; line-height: 15px !important;\">\n\t\t\n\t\t\t<div class=\"crayon-toolbar\" data-settings=\" mouseover overlay hide delay\" style=\"font-size: 12px !important;height: 18px !important; line-height: 18px !important;\"><span class=\"crayon-title\"><\/span>\n\t\t\t<div class=\"crayon-tools\" style=\"font-size: 12px !important;height: 18px !important; line-height: 18px !important;\"><div class=\"crayon-button urvanov-syntax-highlighter-nums-button\" title=\"Zeilennummern\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-plain-button\" title=\"Unformatierte Code-Ansicht\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-wrap-button\" title=\"Zeilenumbruch umschalten\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-expand-button\" title=\"Code aufklappen\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-copy-button\" title=\"Copy\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-popup-button\" title=\"Code in einem neuen Fenster anzeigen\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><\/div><\/div>\n\t\t\t<div class=\"crayon-info\" style=\"min-height: 16.8px !important; line-height: 16.8px !important;\"><\/div>\n\t\t\t<div class=\"urvanov-syntax-highlighter-plain-wrap\"><textarea wrap=\"soft\" class=\"urvanov-syntax-highlighter-plain print-no\" data-settings=\"dblclick\" readonly style=\"-moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4; font-size: 12px !important; line-height: 15px !important;\">\nchmod +x ~\/start-iobroker-ff-appmode.sh<\/textarea><\/div>\n\t\t\t<div class=\"urvanov-syntax-highlighter-main\" style=\"\">\n\t\t\t\t<table class=\"crayon-table\">\n\t\t\t\t\t<tr class=\"urvanov-syntax-highlighter-row\">\n\t\t\t\t<td class=\"crayon-nums \" data-settings=\"show\">\n\t\t\t\t\t<div class=\"urvanov-syntax-highlighter-nums-content\" style=\"font-size: 12px !important; line-height: 15px !important;\"><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f2923880117211-1\">1<\/div><\/div>\n\t\t\t\t<\/td>\n\t\t\t\t\t\t<td class=\"urvanov-syntax-highlighter-code\"><div class=\"crayon-pre\" style=\"font-size: 12px !important; line-height: 15px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;\"><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f2923880117211-1\"><span class=\"crayon-v\">chmod<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">+<\/span><span class=\"crayon-v\">x<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">~<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-v\">start<\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-v\">iobroker<\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-v\">ff<\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-v\">appmode<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-v\">sh<\/span><\/div><\/div><\/td>\n\t\t\t\t\t<\/tr>\n\t\t\t\t<\/table>\n\t\t\t<\/div>\n\t\t<\/div>\r\n<!-- [Format Time: 0.0001 seconds] -->\r\n<p><\/p>\n<hr \/>\n<h2>5. Desktop-Shortcut erstellen (optional)<\/h2>\n<p><\/p><!-- Urvanov Syntax Highlighter v2.9.1 -->\r\n\n\t\t<div id=\"urvanov-syntax-highlighter-6a6c6333f2925236939639\" class=\"urvanov-syntax-highlighter-syntax crayon-theme-classic urvanov-syntax-highlighter-font-monaco urvanov-syntax-highlighter-os-pc print-yes notranslate\" data-settings=\" minimize scroll-mouseover\" style=\" margin-top: 12px; margin-bottom: 12px; font-size: 12px !important; line-height: 15px !important;\">\n\t\t\n\t\t\t<div class=\"crayon-toolbar\" data-settings=\" mouseover overlay hide delay\" style=\"font-size: 12px !important;height: 18px !important; line-height: 18px !important;\"><span class=\"crayon-title\"><\/span>\n\t\t\t<div class=\"crayon-tools\" style=\"font-size: 12px !important;height: 18px !important; line-height: 18px !important;\"><div class=\"crayon-button urvanov-syntax-highlighter-nums-button\" title=\"Zeilennummern\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-plain-button\" title=\"Unformatierte Code-Ansicht\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-wrap-button\" title=\"Zeilenumbruch umschalten\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-expand-button\" title=\"Code aufklappen\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-copy-button\" title=\"Copy\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-popup-button\" title=\"Code in einem neuen Fenster anzeigen\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><\/div><\/div>\n\t\t\t<div class=\"crayon-info\" style=\"min-height: 16.8px !important; line-height: 16.8px !important;\"><\/div>\n\t\t\t<div class=\"urvanov-syntax-highlighter-plain-wrap\"><textarea wrap=\"soft\" class=\"urvanov-syntax-highlighter-plain print-no\" data-settings=\"dblclick\" readonly style=\"-moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4; font-size: 12px !important; line-height: 15px !important;\">\nnano ~\/Desktop\/ioBroker.desktop<\/textarea><\/div>\n\t\t\t<div class=\"urvanov-syntax-highlighter-main\" style=\"\">\n\t\t\t\t<table class=\"crayon-table\">\n\t\t\t\t\t<tr class=\"urvanov-syntax-highlighter-row\">\n\t\t\t\t<td class=\"crayon-nums \" data-settings=\"show\">\n\t\t\t\t\t<div class=\"urvanov-syntax-highlighter-nums-content\" style=\"font-size: 12px !important; line-height: 15px !important;\"><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f2925236939639-1\">1<\/div><\/div>\n\t\t\t\t<\/td>\n\t\t\t\t\t\t<td class=\"urvanov-syntax-highlighter-code\"><div class=\"crayon-pre\" style=\"font-size: 12px !important; line-height: 15px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;\"><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f2925236939639-1\"><span class=\"crayon-v\">nano<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">~<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-v\">Desktop<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-v\">ioBroker<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-v\">desktop<\/span><\/div><\/div><\/td>\n\t\t\t\t\t<\/tr>\n\t\t\t\t<\/table>\n\t\t\t<\/div>\n\t\t<\/div>\r\n<!-- [Format Time: 0.0001 seconds] -->\r\n<p>Inhalt:<\/p><!-- Urvanov Syntax Highlighter v2.9.1 -->\r\n\n\t\t<div id=\"urvanov-syntax-highlighter-6a6c6333f2928555055455\" class=\"urvanov-syntax-highlighter-syntax crayon-theme-classic urvanov-syntax-highlighter-font-monaco urvanov-syntax-highlighter-os-pc print-yes notranslate\" data-settings=\" minimize scroll-mouseover\" style=\" margin-top: 12px; margin-bottom: 12px; font-size: 12px !important; line-height: 15px !important;\">\n\t\t\n\t\t\t<div class=\"crayon-toolbar\" data-settings=\" mouseover overlay hide delay\" style=\"font-size: 12px !important;height: 18px !important; line-height: 18px !important;\"><span class=\"crayon-title\"><\/span>\n\t\t\t<div class=\"crayon-tools\" style=\"font-size: 12px !important;height: 18px !important; line-height: 18px !important;\"><div class=\"crayon-button urvanov-syntax-highlighter-nums-button\" title=\"Zeilennummern\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-plain-button\" title=\"Unformatierte Code-Ansicht\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-wrap-button\" title=\"Zeilenumbruch umschalten\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-expand-button\" title=\"Code aufklappen\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-copy-button\" title=\"Copy\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-popup-button\" title=\"Code in einem neuen Fenster anzeigen\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><\/div><\/div>\n\t\t\t<div class=\"crayon-info\" style=\"min-height: 16.8px !important; line-height: 16.8px !important;\"><\/div>\n\t\t\t<div class=\"urvanov-syntax-highlighter-plain-wrap\"><textarea wrap=\"soft\" class=\"urvanov-syntax-highlighter-plain print-no\" data-settings=\"dblclick\" readonly style=\"-moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4; font-size: 12px !important; line-height: 15px !important;\">\n[Desktop Entry]\r\nName=ioBroker iqControl\r\nExec=\/home\/USER\/start-iobroker.sh\r\nType=Application\r\nIcon=firefox-esr\r\nCategories=Utility;\r\nTerminal=false<\/textarea><\/div>\n\t\t\t<div class=\"urvanov-syntax-highlighter-main\" style=\"\">\n\t\t\t\t<table class=\"crayon-table\">\n\t\t\t\t\t<tr class=\"urvanov-syntax-highlighter-row\">\n\t\t\t\t<td class=\"crayon-nums \" data-settings=\"show\">\n\t\t\t\t\t<div class=\"urvanov-syntax-highlighter-nums-content\" style=\"font-size: 12px !important; line-height: 15px !important;\"><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f2928555055455-1\">1<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f2928555055455-2\">2<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f2928555055455-3\">3<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f2928555055455-4\">4<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f2928555055455-5\">5<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f2928555055455-6\">6<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f2928555055455-7\">7<\/div><\/div>\n\t\t\t\t<\/td>\n\t\t\t\t\t\t<td class=\"urvanov-syntax-highlighter-code\"><div class=\"crayon-pre\" style=\"font-size: 12px !important; line-height: 15px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;\"><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f2928555055455-1\"><span class=\"crayon-sy\">[<\/span><span class=\"crayon-e\">Desktop <\/span><span class=\"crayon-v\">Entry<\/span><span class=\"crayon-sy\">]<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f2928555055455-2\"><span class=\"crayon-v\">Name<\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-e\">ioBroker <\/span><span class=\"crayon-e\">iqControl<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f2928555055455-3\"><span class=\"crayon-v\">Exec<\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-v\">home<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-v\">USER<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-v\">start<\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-v\">iobroker<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-e\">sh<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f2928555055455-4\"><span class=\"crayon-v\">Type<\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-e\">Application<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f2928555055455-5\"><span class=\"crayon-v\">Icon<\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-v\">firefox<\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-e\">esr<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f2928555055455-6\"><span class=\"crayon-v\">Categories<\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-v\">Utility<\/span><span class=\"crayon-sy\">;<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f2928555055455-7\"><span class=\"crayon-v\">Terminal<\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-t\">false<\/span><\/div><\/div><\/td>\n\t\t\t\t\t<\/tr>\n\t\t\t\t<\/table>\n\t\t\t<\/div>\n\t\t<\/div>\r\n<!-- [Format Time: 0.0002 seconds] -->\r\n<p>Rechte anpassen:<\/p><!-- Urvanov Syntax Highlighter v2.9.1 -->\r\n\n\t\t<div id=\"urvanov-syntax-highlighter-6a6c6333f292a724677919\" class=\"urvanov-syntax-highlighter-syntax crayon-theme-classic urvanov-syntax-highlighter-font-monaco urvanov-syntax-highlighter-os-pc print-yes notranslate\" data-settings=\" minimize scroll-mouseover\" style=\" margin-top: 12px; margin-bottom: 12px; font-size: 12px !important; line-height: 15px !important;\">\n\t\t\n\t\t\t<div class=\"crayon-toolbar\" data-settings=\" mouseover overlay hide delay\" style=\"font-size: 12px !important;height: 18px !important; line-height: 18px !important;\"><span class=\"crayon-title\"><\/span>\n\t\t\t<div class=\"crayon-tools\" style=\"font-size: 12px !important;height: 18px !important; line-height: 18px !important;\"><div class=\"crayon-button urvanov-syntax-highlighter-nums-button\" title=\"Zeilennummern\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-plain-button\" title=\"Unformatierte Code-Ansicht\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-wrap-button\" title=\"Zeilenumbruch umschalten\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-expand-button\" title=\"Code aufklappen\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-copy-button\" title=\"Copy\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-popup-button\" title=\"Code in einem neuen Fenster anzeigen\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><\/div><\/div>\n\t\t\t<div class=\"crayon-info\" style=\"min-height: 16.8px !important; line-height: 16.8px !important;\"><\/div>\n\t\t\t<div class=\"urvanov-syntax-highlighter-plain-wrap\"><textarea wrap=\"soft\" class=\"urvanov-syntax-highlighter-plain print-no\" data-settings=\"dblclick\" readonly style=\"-moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4; font-size: 12px !important; line-height: 15px !important;\">\nchmod +x ~\/Desktop\/ioBroker.desktop<\/textarea><\/div>\n\t\t\t<div class=\"urvanov-syntax-highlighter-main\" style=\"\">\n\t\t\t\t<table class=\"crayon-table\">\n\t\t\t\t\t<tr class=\"urvanov-syntax-highlighter-row\">\n\t\t\t\t<td class=\"crayon-nums \" data-settings=\"show\">\n\t\t\t\t\t<div class=\"urvanov-syntax-highlighter-nums-content\" style=\"font-size: 12px !important; line-height: 15px !important;\"><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f292a724677919-1\">1<\/div><\/div>\n\t\t\t\t<\/td>\n\t\t\t\t\t\t<td class=\"urvanov-syntax-highlighter-code\"><div class=\"crayon-pre\" style=\"font-size: 12px !important; line-height: 15px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;\"><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f292a724677919-1\"><span class=\"crayon-v\">chmod<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">+<\/span><span class=\"crayon-v\">x<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">~<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-v\">Desktop<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-v\">ioBroker<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-v\">desktop<\/span><\/div><\/div><\/td>\n\t\t\t\t\t<\/tr>\n\t\t\t\t<\/table>\n\t\t\t<\/div>\n\t\t<\/div>\r\n<!-- [Format Time: 0.0001 seconds] -->\r\n<p><\/p>\n<hr \/>\n<h2>6. Autostart (optional)<\/h2>\n<p><\/p><!-- Urvanov Syntax Highlighter v2.9.1 -->\r\n\n\t\t<div id=\"urvanov-syntax-highlighter-6a6c6333f292c329383397\" class=\"urvanov-syntax-highlighter-syntax crayon-theme-classic urvanov-syntax-highlighter-font-monaco urvanov-syntax-highlighter-os-pc print-yes notranslate\" data-settings=\" minimize scroll-mouseover\" style=\" margin-top: 12px; margin-bottom: 12px; font-size: 12px !important; line-height: 15px !important;\">\n\t\t\n\t\t\t<div class=\"crayon-toolbar\" data-settings=\" mouseover overlay hide delay\" style=\"font-size: 12px !important;height: 18px !important; line-height: 18px !important;\"><span class=\"crayon-title\"><\/span>\n\t\t\t<div class=\"crayon-tools\" style=\"font-size: 12px !important;height: 18px !important; line-height: 18px !important;\"><div class=\"crayon-button urvanov-syntax-highlighter-nums-button\" title=\"Zeilennummern\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-plain-button\" title=\"Unformatierte Code-Ansicht\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-wrap-button\" title=\"Zeilenumbruch umschalten\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-expand-button\" title=\"Code aufklappen\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-copy-button\" title=\"Copy\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-popup-button\" title=\"Code in einem neuen Fenster anzeigen\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><\/div><\/div>\n\t\t\t<div class=\"crayon-info\" style=\"min-height: 16.8px !important; line-height: 16.8px !important;\"><\/div>\n\t\t\t<div class=\"urvanov-syntax-highlighter-plain-wrap\"><textarea wrap=\"soft\" class=\"urvanov-syntax-highlighter-plain print-no\" data-settings=\"dblclick\" readonly style=\"-moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4; font-size: 12px !important; line-height: 15px !important;\">\nmkdir -p ~\/.config\/autostart\r\ncp ~\/Desktop\/ioBroker.desktop ~\/.config\/autostart\/<\/textarea><\/div>\n\t\t\t<div class=\"urvanov-syntax-highlighter-main\" style=\"\">\n\t\t\t\t<table class=\"crayon-table\">\n\t\t\t\t\t<tr class=\"urvanov-syntax-highlighter-row\">\n\t\t\t\t<td class=\"crayon-nums \" data-settings=\"show\">\n\t\t\t\t\t<div class=\"urvanov-syntax-highlighter-nums-content\" style=\"font-size: 12px !important; line-height: 15px !important;\"><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f292c329383397-1\">1<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f292c329383397-2\">2<\/div><\/div>\n\t\t\t\t<\/td>\n\t\t\t\t\t\t<td class=\"urvanov-syntax-highlighter-code\"><div class=\"crayon-pre\" style=\"font-size: 12px !important; line-height: 15px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;\"><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f292c329383397-1\"><span class=\"crayon-v\">mkdir<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-v\">p<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">~<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-v\">config<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-e\">autostart<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f292c329383397-2\"><span class=\"crayon-v\">cp<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">~<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-v\">Desktop<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-v\">ioBroker<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-v\">desktop<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">~<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-v\">config<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-v\">autostart<\/span><span class=\"crayon-o\">\/<\/span><\/div><\/div><\/td>\n\t\t\t\t\t<\/tr>\n\t\t\t\t<\/table>\n\t\t\t<\/div>\n\t\t<\/div>\r\n<!-- [Format Time: 0.0001 seconds] -->\r\n<p><\/p>\n<hr \/>\n<h2>Hinweise<\/h2>\n<ul>\n<li>WAN wird bevorzugt genutzt (<code>https:\/\/&lt;DDNS-Domain&gt;<\/code>)<\/li>\n<li>LAN dient als Backup (<code>https:\/\/&lt;LAN-IP&gt;<\/code>)<\/li>\n<li>SSL funktioniert nur f\u00fcr Domainnamen<\/li>\n<li>IP-Zugriff bleibt Notfallpfad ohne g\u00fcltiges Zertifikat<\/li>\n<li>Firefox l\u00e4uft im stark reduzierten App-\/Kiosk-Modus<\/li>\n<\/ul>\n<hr \/>\n<h2>Erweiterungen (optional)<\/h2>\n<ul>\n<li>systemd Service statt Desktop-Start<\/li>\n<li>Anzeige WAN\/LAN im Fenstertitel<\/li>\n<li>echtes Kiosk-System (GNOME \/ Wayland)<\/li>\n<li>Touchscreen-Optimierung f\u00fcr Wanddisplay<\/li>\n<li>automatische Offline-Erkennung und Retry-Logik<\/li>\n<\/ul>\n<hr \/>\n<p><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-2821 alignleft\" src=\"https:\/\/speefak.spdns.de\/oss_lifestyle\/wp-content\/uploads\/2014\/08\/CC_BY_NC_SA.png\" alt=\"CC_BY_NC_SA\" width=\"65\" height=\"23\" \/>by Speefak<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<ol data-start=\"717\" data-end=\"894\">\n<li data-section-id=\"1fuoj8a\" data-start=\"846\" data-end=\"894\">\n<hr \/>\n<\/li>\n<\/ol>\n","protected":false},"excerpt":{"rendered":"<p>Ziel dieses Setups ist es, ioBroker iqControl in Firefox wie eine eigenst\u00e4ndige App zu betreiben. Der Browser wird dabei technisch weiter genutzt, aber optisch und funktional so stark reduziert, dass er wie ein dedizierter Kiosk-Client f\u00fcr das Dashboard wirkt. Konkret wird erreicht: kein sichtbarer Browser-Chrome (Tabs, Adressleiste, Men\u00fcs) feste Fenstergr\u00f6\u00dfe beim Start, ver\u00e4nderbar nach Start [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[109,111],"tags":[],"class_list":["post-8674","post","type-post","status-publish","format-standard","hentry","category-iobroker","category-smart-home"],"rttpg_featured_image_url":null,"rttpg_author":{"display_name":"speefak","author_link":"https:\/\/speefak.spdns.de\/oss_lifestyle\/author\/speefak_oss\/"},"rttpg_comment":86,"rttpg_category":"<a href=\"https:\/\/speefak.spdns.de\/oss_lifestyle\/category\/iobroker\/\" rel=\"category tag\">ioBroker<\/a> <a href=\"https:\/\/speefak.spdns.de\/oss_lifestyle\/category\/smart-home\/\" rel=\"category tag\">Smart Home<\/a>","rttpg_excerpt":"Ziel dieses Setups ist es, ioBroker iqControl in Firefox wie eine eigenst\u00e4ndige App zu betreiben. Der Browser wird dabei technisch weiter genutzt, aber optisch und funktional so stark reduziert, dass er wie ein dedizierter Kiosk-Client f\u00fcr das Dashboard wirkt. Konkret wird erreicht: kein sichtbarer Browser-Chrome (Tabs, Adressleiste, Men\u00fcs) feste Fenstergr\u00f6\u00dfe beim Start, ver\u00e4nderbar nach Start&hellip;","_links":{"self":[{"href":"https:\/\/speefak.spdns.de\/oss_lifestyle\/wp-json\/wp\/v2\/posts\/8674","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/speefak.spdns.de\/oss_lifestyle\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/speefak.spdns.de\/oss_lifestyle\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/speefak.spdns.de\/oss_lifestyle\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/speefak.spdns.de\/oss_lifestyle\/wp-json\/wp\/v2\/comments?post=8674"}],"version-history":[{"count":4,"href":"https:\/\/speefak.spdns.de\/oss_lifestyle\/wp-json\/wp\/v2\/posts\/8674\/revisions"}],"predecessor-version":[{"id":8747,"href":"https:\/\/speefak.spdns.de\/oss_lifestyle\/wp-json\/wp\/v2\/posts\/8674\/revisions\/8747"}],"wp:attachment":[{"href":"https:\/\/speefak.spdns.de\/oss_lifestyle\/wp-json\/wp\/v2\/media?parent=8674"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/speefak.spdns.de\/oss_lifestyle\/wp-json\/wp\/v2\/categories?post=8674"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/speefak.spdns.de\/oss_lifestyle\/wp-json\/wp\/v2\/tags?post=8674"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}},{"id":8657,"date":"2026-02-23T15:06:44","date_gmt":"2026-02-23T14:06:44","guid":{"rendered":"https:\/\/speefak.spdns.de\/oss_lifestyle\/?p=8657"},"modified":"2026-02-23T15:37:50","modified_gmt":"2026-02-23T14:37:50","slug":"zoneminder-datenbank-und-events-speicherverbrauch-reduzieren","status":"publish","type":"post","link":"https:\/\/speefak.spdns.de\/oss_lifestyle\/zoneminder-datenbank-und-events-speicherverbrauch-reduzieren\/","title":{"rendered":"ZoneMinder: Datenbank und Events Speicherverbrauch reduzieren"},"content":{"rendered":"<p data-start=\"161\" data-end=\"413\">ZoneMinder kann bei l\u00e4ngerer Laufzeit ohne Optimierungen sehr gro\u00dfe Datenmengen in der MySQL-Datenbank, Event-Speiche und im Dateisystem erzeugen. Ohne geeignete Aufbewahrungs- und Bereinigungsstrategien kann dies zu starkem Speicherverbrauch und Performance-Einbu\u00dfen f\u00fchren. Die nachfolgenden Konfigurationsma\u00dfnahmen zielen darauf ab, das Datenvolumen planbar zu begrenzen, ohne die Kernfunktionen (Motion Detection, Recording, Event Review) funktional einzuschr\u00e4nken.<\/p>\n<hr \/>\n<h4>Zielsetzung<\/h4>\n<ul>\n<li data-start=\"627\" data-end=\"661\">Begrenzung der Event-Retention<\/li>\n<li data-start=\"627\" data-end=\"661\">Reduktion der Tabellenwachstumsrate (insbesondere <code data-start=\"714\" data-end=\"722\">Frames<\/code>)<\/li>\n<li data-start=\"627\" data-end=\"661\">Stabilisierung der Datenbankgr\u00f6\u00dfe<\/li>\n<li>Minimierung manueller Wartungsma\u00dfnahmen<\/li>\n<\/ul>\n<h4 data-start=\"854\" data-end=\"932\">Bei konsistenter Konfiguration sind typischerweise folgende Gr\u00f6\u00dfen erreichbar:<\/h4>\n<ul data-start=\"934\" data-end=\"1148\">\n<li data-start=\"934\" data-end=\"968\">Event-Retention: 7\u201330 Tage<\/li>\n<li>Frames-Tabelle: &lt; 500.000 Datens\u00e4tze<\/li>\n<li>frames.ibd (InnoDB): ca. 300\u2013500 MB<\/li>\n<li>Wachstumsrate: nur noch geringer, linearer Zuwachs von Datenbank und Event-Storage<br \/>\n<hr \/>\n<\/li>\n<\/ul>\n<h4>1. Automatische L\u00f6schung alter Events einrichten<\/h4>\n<p>Entfernt automatisch Events, die \u00e4lter als ein definierter Zeitraum sind. Das ist die effektivste Ma\u00dfnahme gegen unbegrenztes Wachstum von Datenbank und Speicherplatz.<\/p>\n<p>&#8211; Filter \u2192 Neuer Filter<br \/>\n&#8211; Bedingung: StartTime &lt; 7 Tage (oder 14\/30 Tage)<br \/>\n&#8211; Aktion: Delete (inkl. aller zugeh\u00f6rigen Dateien und DB-Eintr\u00e4ge)<br \/>\n&#8211; Automatische Ausf\u00fchrung aktivieren (PurgeWhenFull oder regelm\u00e4\u00dfig)<\/p>\n<h4>2. Anzahl der Frames in der Datenbank stark reduzieren<\/h4>\n<p>Durch BULK_FRAME_INTERVAL wird bei kontinuierlicher Aufnahme nur jeder n-te Frame in die Frames-Tabelle geschrieben. Dadurch sinkt die Anzahl der Datenbankzeilen um 95\u201399 %.<\/p>\n<p>&#8211; Optionen \u2192 Konfig.<br \/>\n&#8211; BULK_FRAME_INTERVAL auf 200\u2013500 setzen (empfohlen: 200)<br \/>\n\u2192 Nur jeder n-te Frame wird bei kontinuierlicher Aufnahme in die Frames-Tabelle geschrieben<\/p>\n<h4>3. Speicherung von Einzelbildern (JPEGs) minimieren<\/h4>\n<p>Deaktiviert oder beschr\u00e4nkt die Erzeugung von JPEG-Dateien pro Frame. Das spart massiv Speicherplatz im Events-Verzeichnis und reduziert indirekt Datenbank-Eintr\u00e4ge.<\/p>\n<p>&#8211; Pro Monitor oder global (Optionen \u2192 Storage):<br \/>\n&#8211; Save JPEGs \u2192 Disabled oder Alarm Frames Only<br \/>\n&#8211; Image Store \u2192 Frames Only oder komplett deaktiviert<\/p>\n<h4>4. Event-Statistiken deaktivieren<\/h4>\n<p>Verhindert das Schreiben detaillierter Frame-Statistiken in die Stats-Tabelle. Bei den meisten Installationen unn\u00f6tig und verursacht oft unn\u00f6tiges Wachstum auf mehrere GB.<\/p>\n<p>&#8211; Optionen \u2192 Logging<br \/>\n&#8211; RECORD_EVENT_STATS \u2192 No<br \/>\n\u2192 Verhindert Wachstum der Stats-Tabelle<\/p>\n<h4>5. Audit-Daemon ressourcenschonend konfigurieren<\/h4>\n<p>Der Audit-Daemon r\u00e4umt verwaiste Eintr\u00e4ge (Orphans) auf. Ein zu kurzes Intervall belastet CPU und IO unn\u00f6tig \u2013 ein l\u00e4ngeres Intervall reicht bei normalem Betrieb aus.<\/p>\n<p>&#8211; Optionen \u2192 System<br \/>\n&#8211; ZM_RUN_AUDIT \u2192 Yes<br \/>\n&#8211; ZM_AUDIT_CHECK_INTERVAL \u2192 21600 (6 Stunden) oder 86400 (24 Stunden)<\/p>\n<h4>6. Nach Konfigurations\u00e4nderungen und Purge Platz freigeben<\/h4>\n<p>Die genannten Befehle stoppen tempor\u00e4r ZoneMinder, r\u00e4umen Reste auf, optimieren die Tabellen und geben den physischen Speicherplatz im Dateisystem wirklich frei.<\/p><!-- Urvanov Syntax Highlighter v2.9.1 -->\r\n\n\t\t<div id=\"urvanov-syntax-highlighter-6a6c6333f2cb6157572872\" class=\"urvanov-syntax-highlighter-syntax crayon-theme-classic urvanov-syntax-highlighter-font-monaco urvanov-syntax-highlighter-os-pc print-yes notranslate\" data-settings=\" minimize scroll-mouseover\" style=\" margin-top: 12px; margin-bottom: 12px; font-size: 12px !important; line-height: 15px !important;\">\n\t\t\n\t\t\t<div class=\"crayon-toolbar\" data-settings=\" mouseover overlay hide delay\" style=\"font-size: 12px !important;height: 18px !important; line-height: 18px !important;\"><span class=\"crayon-title\"><\/span>\n\t\t\t<div class=\"crayon-tools\" style=\"font-size: 12px !important;height: 18px !important; line-height: 18px !important;\"><div class=\"crayon-button urvanov-syntax-highlighter-nums-button\" title=\"Zeilennummern\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-plain-button\" title=\"Unformatierte Code-Ansicht\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-wrap-button\" title=\"Zeilenumbruch umschalten\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-expand-button\" title=\"Code aufklappen\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-copy-button\" title=\"Copy\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-popup-button\" title=\"Code in einem neuen Fenster anzeigen\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><\/div><\/div>\n\t\t\t<div class=\"crayon-info\" style=\"min-height: 16.8px !important; line-height: 16.8px !important;\"><\/div>\n\t\t\t<div class=\"urvanov-syntax-highlighter-plain-wrap\"><textarea wrap=\"soft\" class=\"urvanov-syntax-highlighter-plain print-no\" data-settings=\"dblclick\" readonly style=\"-moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4; font-size: 12px !important; line-height: 15px !important;\">\nsystemctl stop zoneminder\r\nzmaudit.pl -f\r\nmysql -u root zm -e \"OPTIMIZE TABLE Frames;\"\r\nmysql -u root zm -e \"OPTIMIZE TABLE Stats;\"\r\nsystemctl restart mysql\r\nsystemctl start zoneminder<\/textarea><\/div>\n\t\t\t<div class=\"urvanov-syntax-highlighter-main\" style=\"\">\n\t\t\t\t<table class=\"crayon-table\">\n\t\t\t\t\t<tr class=\"urvanov-syntax-highlighter-row\">\n\t\t\t\t<td class=\"crayon-nums \" data-settings=\"show\">\n\t\t\t\t\t<div class=\"urvanov-syntax-highlighter-nums-content\" style=\"font-size: 12px !important; line-height: 15px !important;\"><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f2cb6157572872-1\">1<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f2cb6157572872-2\">2<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f2cb6157572872-3\">3<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f2cb6157572872-4\">4<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f2cb6157572872-5\">5<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f2cb6157572872-6\">6<\/div><\/div>\n\t\t\t\t<\/td>\n\t\t\t\t\t\t<td class=\"urvanov-syntax-highlighter-code\"><div class=\"crayon-pre\" style=\"font-size: 12px !important; line-height: 15px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;\"><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f2cb6157572872-1\"><span class=\"crayon-e\">systemctl <\/span><span class=\"crayon-e\">stop <\/span><span class=\"crayon-e\">zoneminder<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f2cb6157572872-2\"><span class=\"crayon-v\">zmaudit<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-v\">pl<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-i\">f<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f2cb6157572872-3\"><span class=\"crayon-v\">mysql<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-i\">u<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-e\">root <\/span><span class=\"crayon-v\">zm<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-i\">e<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"OPTIMIZE TABLE Frames;\"<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f2cb6157572872-4\"><span class=\"crayon-v\">mysql<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-i\">u<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-e\">root <\/span><span class=\"crayon-v\">zm<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-i\">e<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"OPTIMIZE TABLE Stats;\"<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f2cb6157572872-5\"><span class=\"crayon-e\">systemctl <\/span><span class=\"crayon-e\">restart <\/span><span class=\"crayon-e\">mysql<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f2cb6157572872-6\"><span class=\"crayon-e\">systemctl <\/span><span class=\"crayon-e\">start <\/span><span class=\"crayon-v\">zoneminder<\/span><\/div><\/div><\/td>\n\t\t\t\t\t<\/tr>\n\t\t\t\t<\/table>\n\t\t\t<\/div>\n\t\t<\/div>\r\n<!-- [Format Time: 0.0002 seconds] -->\r\n<p><\/p>\n<h4>7. Regelm\u00e4\u00dfige \u00dcberpr\u00fcfung der Entwicklung<\/h4>\n<p>Die angegebenen Kommandos zeigen die aktuelle Anzahl von Events und Frames sowie die reale Dateigr\u00f6\u00dfe der wichtigsten Tabellen. So l\u00e4sst sich der Erfolg der Ma\u00dfnahmen \u00fcberpr\u00fcfen.<\/p><!-- Urvanov Syntax Highlighter v2.9.1 -->\r\n\n\t\t<div id=\"urvanov-syntax-highlighter-6a6c6333f2cbf149969919\" class=\"urvanov-syntax-highlighter-syntax crayon-theme-classic urvanov-syntax-highlighter-font-monaco urvanov-syntax-highlighter-os-pc print-yes notranslate\" data-settings=\" minimize scroll-mouseover\" style=\" margin-top: 12px; margin-bottom: 12px; font-size: 12px !important; line-height: 15px !important;\">\n\t\t\n\t\t\t<div class=\"crayon-toolbar\" data-settings=\" mouseover overlay hide delay\" style=\"font-size: 12px !important;height: 18px !important; line-height: 18px !important;\"><span class=\"crayon-title\"><\/span>\n\t\t\t<div class=\"crayon-tools\" style=\"font-size: 12px !important;height: 18px !important; line-height: 18px !important;\"><div class=\"crayon-button urvanov-syntax-highlighter-nums-button\" title=\"Zeilennummern\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-plain-button\" title=\"Unformatierte Code-Ansicht\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-wrap-button\" title=\"Zeilenumbruch umschalten\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-expand-button\" title=\"Code aufklappen\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-copy-button\" title=\"Copy\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-popup-button\" title=\"Code in einem neuen Fenster anzeigen\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><\/div><\/div>\n\t\t\t<div class=\"crayon-info\" style=\"min-height: 16.8px !important; line-height: 16.8px !important;\"><\/div>\n\t\t\t<div class=\"urvanov-syntax-highlighter-plain-wrap\"><textarea wrap=\"soft\" class=\"urvanov-syntax-highlighter-plain print-no\" data-settings=\"dblclick\" readonly style=\"-moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4; font-size: 12px !important; line-height: 15px !important;\">\nmysql -u root zm -e \"SELECT COUNT(*) FROM Events;\"\r\nmysql -u root zm -e \"SELECT COUNT(*) FROM Frames;\"\r\nls -lh \/var\/lib\/mysql\/zm\/Frames.ibd\r\ndf -h \/var\/cache\/zoneminder\/event<\/textarea><\/div>\n\t\t\t<div class=\"urvanov-syntax-highlighter-main\" style=\"\">\n\t\t\t\t<table class=\"crayon-table\">\n\t\t\t\t\t<tr class=\"urvanov-syntax-highlighter-row\">\n\t\t\t\t<td class=\"crayon-nums \" data-settings=\"show\">\n\t\t\t\t\t<div class=\"urvanov-syntax-highlighter-nums-content\" style=\"font-size: 12px !important; line-height: 15px !important;\"><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f2cbf149969919-1\">1<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f2cbf149969919-2\">2<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f2cbf149969919-3\">3<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f2cbf149969919-4\">4<\/div><\/div>\n\t\t\t\t<\/td>\n\t\t\t\t\t\t<td class=\"urvanov-syntax-highlighter-code\"><div class=\"crayon-pre\" style=\"font-size: 12px !important; line-height: 15px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;\"><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f2cbf149969919-1\"><span class=\"crayon-v\">mysql<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-i\">u<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-e\">root <\/span><span class=\"crayon-v\">zm<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-i\">e<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"SELECT COUNT(*) FROM Events;\"<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f2cbf149969919-2\"><span class=\"crayon-v\">mysql<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-i\">u<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-e\">root <\/span><span class=\"crayon-v\">zm<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-i\">e<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"SELECT COUNT(*) FROM Frames;\"<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f2cbf149969919-3\"><span class=\"crayon-v\">ls<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-v\">lh<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-t\">var<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-v\">lib<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-v\">mysql<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-v\">zm<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-v\">Frames<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-e\">ibd<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f2cbf149969919-4\"><span class=\"crayon-v\">df<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-v\">h<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-t\">var<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-v\">cache<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-v\">zoneminder<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-v\">event<\/span><\/div><\/div><\/td>\n\t\t\t\t\t<\/tr>\n\t\t\t\t<\/table>\n\t\t\t<\/div>\n\t\t<\/div>\r\n<!-- [Format Time: 0.0002 seconds] -->\r\n<p><\/p>\n<hr \/>\n<p><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-2821 alignleft\" src=\"https:\/\/speefak.spdns.de\/oss_lifestyle\/wp-content\/uploads\/2014\/08\/CC_BY_NC_SA.png\" alt=\"CC_BY_NC_SA\" width=\"65\" height=\"23\" \/>by Speefak<\/p>\n","protected":false},"excerpt":{"rendered":"<p>ZoneMinder kann bei l\u00e4ngerer Laufzeit ohne Optimierungen sehr gro\u00dfe Datenmengen in der MySQL-Datenbank, Event-Speiche und im Dateisystem erzeugen. Ohne geeignete Aufbewahrungs- und Bereinigungsstrategien kann dies zu starkem Speicherverbrauch und Performance-Einbu\u00dfen f\u00fchren. Die nachfolgenden Konfigurationsma\u00dfnahmen zielen darauf ab, das Datenvolumen planbar zu begrenzen, ohne die Kernfunktionen (Motion Detection, Recording, Event Review) funktional einzuschr\u00e4nken. Zielsetzung Begrenzung der [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[43,96,112],"tags":[],"class_list":["post-8657","post","type-post","status-publish","format-standard","hentry","category-sicherheit","category-video-ueberwachung","category-zoneminder"],"rttpg_featured_image_url":null,"rttpg_author":{"display_name":"speefak","author_link":"https:\/\/speefak.spdns.de\/oss_lifestyle\/author\/speefak_oss\/"},"rttpg_comment":0,"rttpg_category":"<a href=\"https:\/\/speefak.spdns.de\/oss_lifestyle\/category\/sicherheit\/\" rel=\"category tag\">Sicherheit<\/a> <a href=\"https:\/\/speefak.spdns.de\/oss_lifestyle\/category\/video-ueberwachung\/\" rel=\"category tag\">Video \u00dcberwachung<\/a> <a href=\"https:\/\/speefak.spdns.de\/oss_lifestyle\/category\/zoneminder\/\" rel=\"category tag\">Zoneminder<\/a>","rttpg_excerpt":"ZoneMinder kann bei l\u00e4ngerer Laufzeit ohne Optimierungen sehr gro\u00dfe Datenmengen in der MySQL-Datenbank, Event-Speiche und im Dateisystem erzeugen. Ohne geeignete Aufbewahrungs- und Bereinigungsstrategien kann dies zu starkem Speicherverbrauch und Performance-Einbu\u00dfen f\u00fchren. Die nachfolgenden Konfigurationsma\u00dfnahmen zielen darauf ab, das Datenvolumen planbar zu begrenzen, ohne die Kernfunktionen (Motion Detection, Recording, Event Review) funktional einzuschr\u00e4nken. Zielsetzung Begrenzung der&hellip;","_links":{"self":[{"href":"https:\/\/speefak.spdns.de\/oss_lifestyle\/wp-json\/wp\/v2\/posts\/8657","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/speefak.spdns.de\/oss_lifestyle\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/speefak.spdns.de\/oss_lifestyle\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/speefak.spdns.de\/oss_lifestyle\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/speefak.spdns.de\/oss_lifestyle\/wp-json\/wp\/v2\/comments?post=8657"}],"version-history":[{"count":0,"href":"https:\/\/speefak.spdns.de\/oss_lifestyle\/wp-json\/wp\/v2\/posts\/8657\/revisions"}],"wp:attachment":[{"href":"https:\/\/speefak.spdns.de\/oss_lifestyle\/wp-json\/wp\/v2\/media?parent=8657"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/speefak.spdns.de\/oss_lifestyle\/wp-json\/wp\/v2\/categories?post=8657"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/speefak.spdns.de\/oss_lifestyle\/wp-json\/wp\/v2\/tags?post=8657"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}},{"id":8617,"date":"2026-02-06T20:05:49","date_gmt":"2026-02-06T19:05:49","guid":{"rendered":"https:\/\/speefak.spdns.de\/oss_lifestyle\/?p=8617"},"modified":"2026-02-12T09:01:45","modified_gmt":"2026-02-12T08:01:45","slug":"epg-fuer-iptv-kanaele-in-tvheadend-einrichten-und-automatisch-aktualisieren","status":"publish","type":"post","link":"https:\/\/speefak.spdns.de\/oss_lifestyle\/epg-fuer-iptv-kanaele-in-tvheadend-einrichten-und-automatisch-aktualisieren\/","title":{"rendered":"EPG f\u00fcr IPTV-Kan\u00e4le in Tvheadend einrichten und automatisch aktualisieren"},"content":{"rendered":"<p>F\u00fcr die Bereitstellung von Elektronischen Programmf\u00fchrern (EPG) f\u00fcr IPTV-Kan\u00e4le in Tvheadend existieren zwei grundlegend verschiedene Ans\u00e4tze:<\/p>\n<p><strong>Nutzung der EIT-Daten eines DVB-S-Transponders (sehr einfache Methode)<\/strong> Wenn mindestens ein Sender desselben Transponders (z. B. 12551 H bei Astra 19.2\u00b0) \u00fcber DVB-S empfangen werden kann, lassen sich die vom Transponder \u00fcbertragenen EIT\/OTA-EPG-Daten auch f\u00fcr IPTV-Kan\u00e4le nutzen, die selbst nicht per Satellit empfangen werden (z. B. 3sat IPTV). Da die EPG-Daten f\u00fcr den gesamten Transponder gemeinsam \u00fcbertragen werden, reicht der Empfang eines beliebigen Senders dieses Transponders aus, um dieProgramminformationen aller zugeh\u00f6rigen Sender \u2013 einschlie\u00dflich nicht empfangener Kan\u00e4le \u2013 zu erhalten. Die Zuordnung erfolgt in Tvheadend \u00fcber die \u201eEPG-Reuse\u201c-Funktion.<\/p>\n<p><strong>Import externer XMLTV-Daten (flexible, aber aufw\u00e4ndigere Methode)<\/strong> Alternativ k\u00f6nnen Programmdaten unabh\u00e4ngig von einem DVB-S-Empfang \u00fcber externe XMLTV-Quellen eingepflegt werden. Hierzu wird eine XMLTV-Datei heruntergeladen, \u00fcber einen Unix-Socket oder eine Datei in Tvheadend importiert und den IPTV-Kan\u00e4len manuell oder halbautomatisch zugeordnet. Diese Variante erfordert die Einrichtung eines zus\u00e4tzlichen EPG-Grabbers sowie \u2013 f\u00fcr einen automatisierten Betrieb \u2013 ein entsprechendes Update-Skript (z. B. per Cron-Job) inklusive Fehlerbehandlung und Fallback-Mechanismen.<\/p>\n<p dir=\"auto\">Die nachfolgenden Abschnitte beschreiben beide Verfahren detailliert. Die erste Methode (EPG-Reuse) ist in den meisten Haushalten mit vorhandenem Sat-Empfang die deutlich einfachere und wartungs\u00e4rmere L\u00f6sung.<\/p>\n<hr \/>\n<h2>\u00dcbernahme der EPG-Daten vom DVB-S-Transponder<\/h2>\n<p>In der vorliegenden Konfiguration ist ein Empfang von 3sat \u00fcber DVB-S nicht m\u00f6glich. Es besteht jedoch ein stabiler DVB-S-Empfang von anderen Sendern, die auf demselben Transponder wie 3sat \u00fcbertragen werden (12551 MHz Horizontal, SR 22000). Somit k\u00f6nnen die Transponder EPG Daten f\u00fcr den 3sat IPTV Stream verwendet werden. Diese Vorgehensweise gilt in den meisten Anwendungsf\u00e4llen als die effizienteste, stabilste und wartungs\u00e4rmste L\u00f6sung.<\/p>\n<h4>Voraussetzungen<\/h4>\n<p>&#8211; Mindestens einer der folgenden Sender ist \u00fcber DVB-S empfangbar:<br \/>\nDas Erste HD, ZDF HD, arte HD, phoenix HD, KiKA HD<br \/>\n(Transponder: 12551 MHz H, Symbolrate 22000, FEC 5\/6)<br \/>\n&#8211; Der Kanal 3sat ist als IPTV-Stream in Tvheadend eingerichtet und einem Kanal zugeordnet<\/p>\n<h4>Konfigurationsschritte<\/h4>\n<p>1. Zur\u00fccksetzen der EPG-Quelle<br \/>\n\u2192 Konfiguration \u2192 Kanal \/ EPG \u2192 Kan\u00e4le<br \/>\n\u2192 Kanal \u201e3sat HD\u201c (IPTV) ausw\u00e4hlen \u2192 Bearbeiten<br \/>\n\u2192 Feld EPG-Quelle auf \u201eNicht gesetzt\u201c setzen<br \/>\n\u2192 \u00c4nderungen speichern<\/p>\n<p>2. Zuweisung der EPG-Daten \u00fcber die Reuse-Funktion<br \/>\n\u2192 Im Bearbeitungsfenster des Kanals \u201e3sat HD\u201c zu den Experten-Einstellungen navigieren<br \/>\n\u2192 Feld Benutze EPG von:<br \/>\nEinen Sender desselben Transponders ausw\u00e4hlen, z. B.:<br \/>\n&#8211; Das Erste HD<br \/>\n&#8211; ZDF HD<br \/>\n&#8211; arte HD<br \/>\n&#8211; phoenix HD<br \/>\n\u2192 \u00c4nderungen speichern und \u00fcbernehmen<\/p>\n<p>3. \u00dcberpr\u00fcfung und Priorisierung des EIT-Grabbers<br \/>\n\u2192 Konfiguration \u2192 Kanal \/ EPG \u2192 EPG-Grabber-Module<br \/>\n&#8211; Modul EIT: DVB Grabber muss aktiviert sein<br \/>\n&#8211; Priorit\u00e4t auf Wert 1 oder 2 setzen (h\u00f6her als XMLTV-Module)<br \/>\n&#8211; Andere Grabber-Module (insbesondere XMLTV) gegebenenfalls tempor\u00e4r deaktivieren<\/p>\n<p>4. Aktualisierung der EPG-Daten<br \/>\n&#8211; Automatische Aktualisierung abwarten (meist innerhalb von 10\u201360 Minuten)<br \/>\n&#8211; Alternativ: Manuelles Ansto\u00dfen des Internal EPG Grabber \u00fcber die Benutzeroberfl\u00e4che<\/p>\n<p>Nach erfolgreicher \u00dcbernahme werden im Elektronischen Programmf\u00fchrer (EPG) f\u00fcr den Kanal 3sat HD die vollst\u00e4ndigen EIT-Daten des Transponders 12551 H angezeigt. Kan\u00e4le des Transponders 12515 V (Vertical) sind nicht geeignet, da dort eine andere EIT-Tabelle \u00fcbertragen wird.<\/p>\n<p>Vorteile der Methode<br \/>\n&#8211; Keine Abh\u00e4ngigkeit von externen Programmdatenquellen<br \/>\n&#8211; Hohe Datenqualit\u00e4t (inkl. Genre, Episodeninformationen, detaillierte Beschreibungen)<br \/>\n&#8211; Vollst\u00e4ndig wartungs- und kostenfrei<br \/>\n&#8211; Direkte Nutzung der nativen EIT-Daten von Astra 19.2\u00b0 E<\/p>\n<hr \/>\n<h2 dir=\"auto\">EPG-Daten aus externen Quellen beziehen (XMLTV-Methode)<\/h2>\n<p dir=\"auto\">Wenn kein DVB-S-, DVB-C- oder DVB-T-Empfang verf\u00fcgbar ist, k\u00f6nnen Programminformationen (EPG) \u00fcber externe XMLTV-Datenquellen bereitgestellt werden. Diese L\u00f6sung nutzt externe XMLTV-Quellen, ein automatisches Kanal-Mapping sowie ein Update-Skript das \u00fcber einen Unix-Socket EPG Daten in Tvheadend importiert. Dadurch entsteht eine zuverl\u00e4ssige und weitgehend wartungsarme EPG-Versorgung. Ein t\u00e4glicher Cron-Job sorgt f\u00fcr die automatische Aktualisierung.<\/p>\n<ul>\n<li dir=\"auto\"><strong>Externe XMLTV-Quellen:<\/strong> Bis zu 14 Tage Programmvorlauf durch \u00f6ffentlich aktualisierte Quellen; Unterst\u00fctzung f\u00fcr komprimierte und unkomprimierte XML-Formate.<\/li>\n<li dir=\"auto\"><strong>Kanal-Mapping:<\/strong> Einmalige manuelle Zuordnung im Tvheadend-Webinterface; dauerhafte Verkn\u00fcpfung \u00fcber standardisierte XMLTV-Channel-IDs.<\/li>\n<li dir=\"auto\"><strong>Robustes Skript:<\/strong> Prim\u00e4rquelle (<code class=\"font-weight-400 rounded-md bg-state-ghost-hover p-1 text-sm whitespace-normal\" data-testid=\"code-block\">epgshare01<\/code>) mit Fallback (<code class=\"font-weight-400 rounded-md bg-state-ghost-hover p-1 text-sm whitespace-normal\" data-testid=\"code-block\">open-epg<\/code>); umfangreiche Fehlerbehandlung und Logging.<\/li>\n<li dir=\"auto\"><strong>Automatische Updates:<\/strong> T\u00e4glicher Import (z. B. 04:30 Uhr) im Hintergrund; Integration in Systemd-Journal f\u00fcr zentrale \u00dcberwachung.<\/li>\n<\/ul>\n<h4>Voraussetzungen<\/h4>\n<p>&#8211; Tvheadend l\u00e4uft nativ auf Debian (kein Docker)<br \/>\n&#8211; Externer XMLTV-Grabber ist aktiviert (External: XMLTV mit Socket \/var\/lib\/tvheadend\/epggrab\/xmltv.sock)<br \/>\n&#8211; Der Benutzer \u201ehts\u201c existiert und Tvheadend l\u00e4uft unter diesem Benutzer<br \/>\n&#8211; socat ist installiert (<code>sudo apt install socat<\/code>)<br \/>\n&#8211; IPTV-Kan\u00e4le sind bereits in Tvheadend angelegt<\/p>\n<h4>EPG-Grabber einmalig konfigurieren<\/h4>\n<p>1. Tvheadend-Webinterface \u00f6ffnen<br \/>\n\u2192 Configuration \u2192 General \u2192 Base<br \/>\n\u2192 User interface level = Expert \u2192 Save<\/p>\n<p>2. EPG-Grabber aktivieren<br \/>\n\u2192 Configuration \u2192 Channel\/EPG \u2192 EPG Grabber Modules<br \/>\n\u2192 External: XMLTV doppelt anklicken<br \/>\n\u2192 Aktiviert = Ja<br \/>\n\u2192 Priorit\u00e4t = 1<br \/>\n\u2192 Pfad = <code>\/var\/lib\/tvheadend\/epggrab\/xmltv.sock<\/code> (meist schon vorausgef\u00fcllt)<br \/>\n\u2192 Save<\/p>\n<p>3. Retention-Einstellungen setzen<br \/>\n\u2192 Configuration \u2192 Channel\/EPG \u2192 EPG Grabber<br \/>\n\u2192 Speichere EPG periodisch auf Festplatte (Stunden) = 336 oder 720<br \/>\n\u2192 Save EPG to disk after xmltv import = Ja (H\u00e4kchen)<br \/>\n\u2192 Save<\/p>\n<h4>EPG-Quelle ausw\u00e4hlen und testen<\/h4>\n<p>Empfohlene Quellen (Stand 2026):<\/p>\n<table style=\"border-collapse: collapse; width: 100%;\">\n<tbody>\n<tr>\n<td style=\"width: 20%;\">Quelle<\/td>\n<td style=\"width: 20%;\">URL \/ Befehl<\/td>\n<td style=\"width: 20%;\">Gr\u00f6\u00dfe<\/td>\n<td style=\"width: 20%;\">Tage ca.<\/td>\n<td style=\"width: 20%;\">Kommentar<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 20%;\">open-epg (schnell)<\/td>\n<td style=\"width: 20%;\">wget https:\/\/www.open-epg.com\/files\/germany1.xml -O \/tmp\/epg.xml<\/td>\n<td style=\"width: 20%;\">~1\u20135 MB<\/td>\n<td style=\"width: 20%;\">1\u20133 Tage<\/td>\n<td style=\"width: 20%;\">Sehr aktuell, klein &amp; schnell<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 20%;\"><\/td>\n<td style=\"width: 20%;\"><\/td>\n<td style=\"width: 20%;\"><\/td>\n<td style=\"width: 20%;\"><\/td>\n<td style=\"width: 20%;\"><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Test-Import (nach Download):<\/p><!-- Urvanov Syntax Highlighter v2.9.1 -->\r\n\n\t\t<div id=\"urvanov-syntax-highlighter-6a6c6333f2f6f948264277\" class=\"urvanov-syntax-highlighter-syntax crayon-theme-classic urvanov-syntax-highlighter-font-monaco urvanov-syntax-highlighter-os-pc print-yes notranslate\" data-settings=\" minimize scroll-mouseover\" style=\" margin-top: 12px; margin-bottom: 12px; font-size: 12px !important; line-height: 15px !important;\">\n\t\t\n\t\t\t<div class=\"crayon-toolbar\" data-settings=\" mouseover overlay hide delay\" style=\"font-size: 12px !important;height: 18px !important; line-height: 18px !important;\"><span class=\"crayon-title\"><\/span>\n\t\t\t<div class=\"crayon-tools\" style=\"font-size: 12px !important;height: 18px !important; line-height: 18px !important;\"><div class=\"crayon-button urvanov-syntax-highlighter-nums-button\" title=\"Zeilennummern\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-plain-button\" title=\"Unformatierte Code-Ansicht\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-wrap-button\" title=\"Zeilenumbruch umschalten\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-expand-button\" title=\"Code aufklappen\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-copy-button\" title=\"Copy\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-popup-button\" title=\"Code in einem neuen Fenster anzeigen\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><\/div><\/div>\n\t\t\t<div class=\"crayon-info\" style=\"min-height: 16.8px !important; line-height: 16.8px !important;\"><\/div>\n\t\t\t<div class=\"urvanov-syntax-highlighter-plain-wrap\"><textarea wrap=\"soft\" class=\"urvanov-syntax-highlighter-plain print-no\" data-settings=\"dblclick\" readonly style=\"-moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4; font-size: 12px !important; line-height: 15px !important;\">\nsudo chown hts:hts \/tmp\/epg.xml\r\nsudo cat \/tmp\/epg.xml | socat - UNIX-CONNECT:\/var\/lib\/tvheadend\/epggrab\/xmltv.sock<\/textarea><\/div>\n\t\t\t<div class=\"urvanov-syntax-highlighter-main\" style=\"\">\n\t\t\t\t<table class=\"crayon-table\">\n\t\t\t\t\t<tr class=\"urvanov-syntax-highlighter-row\">\n\t\t\t\t<td class=\"crayon-nums \" data-settings=\"show\">\n\t\t\t\t\t<div class=\"urvanov-syntax-highlighter-nums-content\" style=\"font-size: 12px !important; line-height: 15px !important;\"><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f2f6f948264277-1\">1<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f2f6f948264277-2\">2<\/div><\/div>\n\t\t\t\t<\/td>\n\t\t\t\t\t\t<td class=\"urvanov-syntax-highlighter-code\"><div class=\"crayon-pre\" style=\"font-size: 12px !important; line-height: 15px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;\"><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f2f6f948264277-1\"><span class=\"crayon-e\">sudo <\/span><span class=\"crayon-e\">chown <\/span><span class=\"crayon-v\">hts<\/span><span class=\"crayon-o\">:<\/span><span class=\"crayon-v\">hts<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-v\">tmp<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-v\">epg<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-e\">xml<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f2f6f948264277-2\"><span class=\"crayon-e\">sudo <\/span><span class=\"crayon-v\">cat<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-v\">tmp<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-v\">epg<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-v\">xml<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">|<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">socat<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">UNIX<\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-v\">CONNECT<\/span><span class=\"crayon-o\">:<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-t\">var<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-v\">lib<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-v\">tvheadend<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-v\">epggrab<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-v\">xmltv<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-v\">sock<\/span><\/div><\/div><\/td>\n\t\t\t\t\t<\/tr>\n\t\t\t\t<\/table>\n\t\t\t<\/div>\n\t\t<\/div>\r\n<!-- [Format Time: 0.0002 seconds] -->\r\n<p>Log pr\u00fcfen (live):<\/p><!-- Urvanov Syntax Highlighter v2.9.1 -->\r\n\n\t\t<div id=\"urvanov-syntax-highlighter-6a6c6333f2f79746134618\" class=\"urvanov-syntax-highlighter-syntax crayon-theme-classic urvanov-syntax-highlighter-font-monaco urvanov-syntax-highlighter-os-pc print-yes notranslate\" data-settings=\" minimize scroll-mouseover\" style=\" margin-top: 12px; margin-bottom: 12px; font-size: 12px !important; line-height: 15px !important;\">\n\t\t\n\t\t\t<div class=\"crayon-toolbar\" data-settings=\" mouseover overlay hide delay\" style=\"font-size: 12px !important;height: 18px !important; line-height: 18px !important;\"><span class=\"crayon-title\"><\/span>\n\t\t\t<div class=\"crayon-tools\" style=\"font-size: 12px !important;height: 18px !important; line-height: 18px !important;\"><div class=\"crayon-button urvanov-syntax-highlighter-nums-button\" title=\"Zeilennummern\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-plain-button\" title=\"Unformatierte Code-Ansicht\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-wrap-button\" title=\"Zeilenumbruch umschalten\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-expand-button\" title=\"Code aufklappen\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-copy-button\" title=\"Copy\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-popup-button\" title=\"Code in einem neuen Fenster anzeigen\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><\/div><\/div>\n\t\t\t<div class=\"crayon-info\" style=\"min-height: 16.8px !important; line-height: 16.8px !important;\"><\/div>\n\t\t\t<div class=\"urvanov-syntax-highlighter-plain-wrap\"><textarea wrap=\"soft\" class=\"urvanov-syntax-highlighter-plain print-no\" data-settings=\"dblclick\" readonly style=\"-moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4; font-size: 12px !important; line-height: 15px !important;\">\nsudo journalctl -t tvheadend | tail -n20  #last 20 entries\r\nsudo journalctl -t tvheadend -fn          #livelog<\/textarea><\/div>\n\t\t\t<div class=\"urvanov-syntax-highlighter-main\" style=\"\">\n\t\t\t\t<table class=\"crayon-table\">\n\t\t\t\t\t<tr class=\"urvanov-syntax-highlighter-row\">\n\t\t\t\t<td class=\"crayon-nums \" data-settings=\"show\">\n\t\t\t\t\t<div class=\"urvanov-syntax-highlighter-nums-content\" style=\"font-size: 12px !important; line-height: 15px !important;\"><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f2f79746134618-1\">1<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f2f79746134618-2\">2<\/div><\/div>\n\t\t\t\t<\/td>\n\t\t\t\t\t\t<td class=\"urvanov-syntax-highlighter-code\"><div class=\"crayon-pre\" style=\"font-size: 12px !important; line-height: 15px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;\"><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f2f79746134618-1\"><span class=\"crayon-e\">sudo <\/span><span class=\"crayon-v\">journalctl<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-i\">t<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">tvheadend<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">|<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">tail<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-i\">n20<\/span><span class=\"crayon-h\">&nbsp;&nbsp;<\/span><span class=\"crayon-p\">#last 20 entries<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f2f79746134618-2\"><span class=\"crayon-e\">sudo <\/span><span class=\"crayon-v\">journalctl<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-i\">t<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">tvheadend<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-i\">fn<\/span><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-p\">#livelog<\/span><\/div><\/div><\/td>\n\t\t\t\t\t<\/tr>\n\t\t\t\t<\/table>\n\t\t\t<\/div>\n\t\t<\/div>\r\n<!-- [Format Time: 0.0001 seconds] -->\r\n<p>Wichtige Zeilen:<br \/>\n&#8211; <code>xmltv: broadcasts tot= ... new= ...<\/code> \u2192 Zahl &gt; 0 = Erfolg<br \/>\n&#8211; <code>epgdb: broadcasts ...<\/code> \u2192 zeigt Gesamtzahl<\/p>\n<h4>IPTV-Kan\u00e4le mit EPG verkn\u00fcpfen<\/h4>\n<p>1. Configuration \u2192 Channel\/EPG \u2192 Channels<br \/>\n2. Jeden IPTV-Kanal (z. B. 3sat) bearbeiten<br \/>\n3. Feld <strong>EPG Source<\/strong> oder <strong>XMLTV channel ID<\/strong> anklicken<br \/>\n4. Aus Dropdown den passenden Eintrag w\u00e4hlen (h\u00e4ufig: <code>3sat.de<\/code>, <code>3sat<\/code>, <code>C3SAT<\/code>, <code>3sat HD<\/code>)<br \/>\n5. Speichern<\/p>\n<p>Nach Mapping \u2192 EPG in Web-Interface oder Kodi nach kurzer Zeit sichtbar.<\/p>\n<h4>Automatisches t\u00e4gliches Update (Cron-Script)<\/h4>\n<p>Script erstellen (ggf. germany1.xml und germany2.xml zusammenf\u00fchren)<\/p><!-- Urvanov Syntax Highlighter v2.9.1 -->\r\n\n\t\t<div id=\"urvanov-syntax-highlighter-6a6c6333f2f7c746926684\" class=\"urvanov-syntax-highlighter-syntax crayon-theme-classic urvanov-syntax-highlighter-font-monaco urvanov-syntax-highlighter-os-pc print-yes notranslate\" data-settings=\" minimize scroll-mouseover\" style=\" margin-top: 12px; margin-bottom: 12px; font-size: 12px !important; line-height: 15px !important;\">\n\t\t\n\t\t\t<div class=\"crayon-toolbar\" data-settings=\" mouseover overlay hide delay\" style=\"font-size: 12px !important;height: 18px !important; line-height: 18px !important;\"><span class=\"crayon-title\"><\/span>\n\t\t\t<div class=\"crayon-tools\" style=\"font-size: 12px !important;height: 18px !important; line-height: 18px !important;\"><div class=\"crayon-button urvanov-syntax-highlighter-nums-button\" title=\"Zeilennummern\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-plain-button\" title=\"Unformatierte Code-Ansicht\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-wrap-button\" title=\"Zeilenumbruch umschalten\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-expand-button\" title=\"Code aufklappen\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-copy-button\" title=\"Copy\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-popup-button\" title=\"Code in einem neuen Fenster anzeigen\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><\/div><\/div>\n\t\t\t<div class=\"crayon-info\" style=\"min-height: 16.8px !important; line-height: 16.8px !important;\"><\/div>\n\t\t\t<div class=\"urvanov-syntax-highlighter-plain-wrap\"><textarea wrap=\"soft\" class=\"urvanov-syntax-highlighter-plain print-no\" data-settings=\"dblclick\" readonly style=\"-moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4; font-size: 12px !important; line-height: 15px !important;\">\n#!\/bin\/bash\r\n# \/usr\/local\/bin\/tvh_epg_update.sh \r\n\r\nset -e\r\n\r\n# ==================== Settings ====================\r\nEPG_URL=\"https:\/\/www.open-epg.com\/files\/germany1.xml\" # EPG_URL=\"https:\/\/www.open-epg.com\/files\/germany2.xml\"\r\nTEMP_XML=\"\/tmp\/epg.xml\"\r\nSOCKET=\"\/var\/lib\/tvheadend\/epggrab\/xmltv.sock\"\r\n\r\n# ==================== Functions ====================\r\nlog() {\r\n    echo \"$*\" | systemd-cat -t tvheadend -p info\r\n}\r\n\r\nerror() {\r\n    echo \"ERROR: $*\" | systemd-cat -t tvheadend -p err\r\n}\r\n\r\n# ==================== Main Logic ====================\r\n\r\nlog \"Starting EPG update\"\r\n\r\n# Remove old files\r\nrm -f \"$TEMP_XML\" 2&gt;\/dev\/null || true\r\n\r\n# Try primary source\r\nlog \"Downloading EPG from $EPG_URL...\"\r\nif wget -q --no-check-certificate -O \"$TEMP_XML\" \"$EPG_URL\"; then\r\n    log \"Download from $EPG_URL successful\"\r\nelse\r\n    MSG=\"Download from $EPG_URL failed. Please consider using WebGrab+Plus as an alternative EPG source.\"\r\n    error \"$MSG\"\r\n    echo \"$MSG\"\r\n    exit 1\r\nfi\r\n\r\n# Check if the file exists\r\nif [ ! -f \"$TEMP_XML\" ]; then\r\n    error \"EPG file $TEMP_XML does not exist\"\r\n    exit 1\r\nfi\r\n\r\n# Set permissions\r\nchown hts:hts \"$TEMP_XML\" || error \"chown failed for $TEMP_XML\"\r\n\r\n# Start import\r\nlog \"Importing EPG from $TEMP_XML into Tvheadend...\"\r\nif cat \"$TEMP_XML\" | socat - UNIX-CONNECT:\"$SOCKET\"; then\r\n    log \"Import completed successfully\"\r\nelse\r\n    error \"Socket import failed for $TEMP_XML\"\r\n    exit 1\r\nfi\r\n\r\n# Clean up\r\nrm -f \"$TEMP_XML\" 2&gt;\/dev\/null || true\r\n\r\nlog \"EPG update fully completed\"\r\nexit 0<\/textarea><\/div>\n\t\t\t<div class=\"urvanov-syntax-highlighter-main\" style=\"\">\n\t\t\t\t<table class=\"crayon-table\">\n\t\t\t\t\t<tr class=\"urvanov-syntax-highlighter-row\">\n\t\t\t\t<td class=\"crayon-nums \" data-settings=\"show\">\n\t\t\t\t\t<div class=\"urvanov-syntax-highlighter-nums-content\" style=\"font-size: 12px !important; line-height: 15px !important;\"><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f2f7c746926684-1\">1<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f2f7c746926684-2\">2<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f2f7c746926684-3\">3<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f2f7c746926684-4\">4<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f2f7c746926684-5\">5<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f2f7c746926684-6\">6<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f2f7c746926684-7\">7<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f2f7c746926684-8\">8<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f2f7c746926684-9\">9<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f2f7c746926684-10\">10<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f2f7c746926684-11\">11<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f2f7c746926684-12\">12<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f2f7c746926684-13\">13<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f2f7c746926684-14\">14<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f2f7c746926684-15\">15<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f2f7c746926684-16\">16<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f2f7c746926684-17\">17<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f2f7c746926684-18\">18<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f2f7c746926684-19\">19<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f2f7c746926684-20\">20<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f2f7c746926684-21\">21<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f2f7c746926684-22\">22<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f2f7c746926684-23\">23<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f2f7c746926684-24\">24<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f2f7c746926684-25\">25<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f2f7c746926684-26\">26<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f2f7c746926684-27\">27<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f2f7c746926684-28\">28<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f2f7c746926684-29\">29<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f2f7c746926684-30\">30<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f2f7c746926684-31\">31<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f2f7c746926684-32\">32<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f2f7c746926684-33\">33<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f2f7c746926684-34\">34<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f2f7c746926684-35\">35<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f2f7c746926684-36\">36<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f2f7c746926684-37\">37<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f2f7c746926684-38\">38<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f2f7c746926684-39\">39<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f2f7c746926684-40\">40<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f2f7c746926684-41\">41<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f2f7c746926684-42\">42<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f2f7c746926684-43\">43<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f2f7c746926684-44\">44<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f2f7c746926684-45\">45<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f2f7c746926684-46\">46<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f2f7c746926684-47\">47<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f2f7c746926684-48\">48<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f2f7c746926684-49\">49<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f2f7c746926684-50\">50<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f2f7c746926684-51\">51<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f2f7c746926684-52\">52<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f2f7c746926684-53\">53<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f2f7c746926684-54\">54<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f2f7c746926684-55\">55<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f2f7c746926684-56\">56<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f2f7c746926684-57\">57<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f2f7c746926684-58\">58<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f2f7c746926684-59\">59<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f2f7c746926684-60\">60<\/div><\/div>\n\t\t\t\t<\/td>\n\t\t\t\t\t\t<td class=\"urvanov-syntax-highlighter-code\"><div class=\"crayon-pre\" style=\"font-size: 12px !important; line-height: 15px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;\"><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f2f7c746926684-1\"><span class=\"crayon-p\">#!\/bin\/bash<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f2f7c746926684-2\"><span class=\"crayon-p\"># \/usr\/local\/bin\/tvh_epg_update.sh <\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f2f7c746926684-3\">&nbsp;<\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f2f7c746926684-4\"><span class=\"crayon-v\">set<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-i\">e<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f2f7c746926684-5\">&nbsp;<\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f2f7c746926684-6\"><span class=\"crayon-p\"># ==================== Settings ====================<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f2f7c746926684-7\"><span class=\"crayon-v\">EPG_URL<\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-s\">\"https:\/\/www.open-epg.com\/files\/germany1.xml\"<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-p\"># EPG_URL=\"https:\/\/www.open-epg.com\/files\/germany2.xml\"<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f2f7c746926684-8\"><span class=\"crayon-v\">TEMP_XML<\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-s\">\"\/tmp\/epg.xml\"<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f2f7c746926684-9\"><span class=\"crayon-v\">SOCKET<\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-s\">\"\/var\/lib\/tvheadend\/epggrab\/xmltv.sock\"<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f2f7c746926684-10\">&nbsp;<\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f2f7c746926684-11\"><span class=\"crayon-p\"># ==================== Functions ====================<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f2f7c746926684-12\"><span class=\"crayon-e\">log<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-sy\">{<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f2f7c746926684-13\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-i\">echo<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"$*\"<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">|<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">systemd<\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-v\">cat<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-i\">t<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">tvheadend<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-i\">p<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-i\">info<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f2f7c746926684-14\"><span class=\"crayon-sy\">}<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f2f7c746926684-15\">&nbsp;<\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f2f7c746926684-16\"><span class=\"crayon-e\">error<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-sy\">{<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f2f7c746926684-17\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-i\">echo<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"ERROR: $*\"<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">|<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">systemd<\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-v\">cat<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-i\">t<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">tvheadend<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-i\">p<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-i\">err<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f2f7c746926684-18\"><span class=\"crayon-sy\">}<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f2f7c746926684-19\">&nbsp;<\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f2f7c746926684-20\"><span class=\"crayon-p\"># ==================== Main Logic ====================<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f2f7c746926684-21\">&nbsp;<\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f2f7c746926684-22\"><span class=\"crayon-i\">log<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"Starting EPG update\"<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f2f7c746926684-23\">&nbsp;<\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f2f7c746926684-24\"><span class=\"crayon-p\"># Remove old files<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f2f7c746926684-25\"><span class=\"crayon-v\">rm<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-i\">f<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"$TEMP_XML\"<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">2<\/span><span class=\"crayon-o\">&gt;<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-v\">dev<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-t\">null<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">||<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-t\">true<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f2f7c746926684-26\">&nbsp;<\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f2f7c746926684-27\"><span class=\"crayon-p\"># Try primary source<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f2f7c746926684-28\"><span class=\"crayon-i\">log<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"Downloading EPG from $EPG_URL...\"<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f2f7c746926684-29\"><span class=\"crayon-st\">if<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">wget<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-v\">q<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">--<\/span><span class=\"crayon-v\">no<\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-v\">check<\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-v\">certificate<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-i\">O<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"$TEMP_XML\"<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"$EPG_URL\"<\/span><span class=\"crayon-sy\">;<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-st\">then<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f2f7c746926684-30\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-i\">log<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"Download from $EPG_URL successful\"<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f2f7c746926684-31\"><span class=\"crayon-st\">else<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f2f7c746926684-32\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-v\">MSG<\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-s\">\"Download from $EPG_URL failed. Please consider using WebGrab+Plus as an alternative EPG source.\"<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f2f7c746926684-33\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-i\">error<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"$MSG\"<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f2f7c746926684-34\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-i\">echo<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"$MSG\"<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f2f7c746926684-35\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-i\">exit<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">1<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f2f7c746926684-36\"><span class=\"crayon-i\">fi<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f2f7c746926684-37\">&nbsp;<\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f2f7c746926684-38\"><span class=\"crayon-p\"># Check if the file exists<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f2f7c746926684-39\"><span class=\"crayon-st\">if<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-sy\">[<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">!<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-i\">f<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"$TEMP_XML\"<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-sy\">]<\/span><span class=\"crayon-sy\">;<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-st\">then<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f2f7c746926684-40\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-i\">error<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"EPG file $TEMP_XML does not exist\"<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f2f7c746926684-41\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-i\">exit<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">1<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f2f7c746926684-42\"><span class=\"crayon-i\">fi<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f2f7c746926684-43\">&nbsp;<\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f2f7c746926684-44\"><span class=\"crayon-p\"># Set permissions<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f2f7c746926684-45\"><span class=\"crayon-e\">chown <\/span><span class=\"crayon-v\">hts<\/span><span class=\"crayon-o\">:<\/span><span class=\"crayon-i\">hts<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"$TEMP_XML\"<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">||<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-i\">error<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"chown failed for $TEMP_XML\"<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f2f7c746926684-46\">&nbsp;<\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f2f7c746926684-47\"><span class=\"crayon-p\"># Start import<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f2f7c746926684-48\"><span class=\"crayon-i\">log<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"Importing EPG from $TEMP_XML into Tvheadend...\"<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f2f7c746926684-49\"><span class=\"crayon-st\">if<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-i\">cat<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"$TEMP_XML\"<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">|<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">socat<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">UNIX<\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-v\">CONNECT<\/span><span class=\"crayon-o\">:<\/span><span class=\"crayon-s\">\"$SOCKET\"<\/span><span class=\"crayon-sy\">;<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-st\">then<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f2f7c746926684-50\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-i\">log<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"Import completed successfully\"<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f2f7c746926684-51\"><span class=\"crayon-st\">else<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f2f7c746926684-52\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-i\">error<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"Socket import failed for $TEMP_XML\"<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f2f7c746926684-53\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-i\">exit<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">1<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f2f7c746926684-54\"><span class=\"crayon-i\">fi<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f2f7c746926684-55\">&nbsp;<\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f2f7c746926684-56\"><span class=\"crayon-p\"># Clean up<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f2f7c746926684-57\"><span class=\"crayon-v\">rm<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-i\">f<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"$TEMP_XML\"<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">2<\/span><span class=\"crayon-o\">&gt;<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-v\">dev<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-t\">null<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">||<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-t\">true<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f2f7c746926684-58\">&nbsp;<\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f2f7c746926684-59\"><span class=\"crayon-i\">log<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"EPG update fully completed\"<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f2f7c746926684-60\"><span class=\"crayon-i\">exit<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">0<\/span><\/div><\/div><\/td>\n\t\t\t\t\t<\/tr>\n\t\t\t\t<\/table>\n\t\t\t<\/div>\n\t\t<\/div>\r\n<!-- [Format Time: 0.0009 seconds] -->\r\n<p><\/p>\n<h4>Script einrichten<\/h4>\n<p><\/p><!-- Urvanov Syntax Highlighter v2.9.1 -->\r\n\n\t\t<div id=\"urvanov-syntax-highlighter-6a6c6333f2f7f479201374\" class=\"urvanov-syntax-highlighter-syntax crayon-theme-classic urvanov-syntax-highlighter-font-monaco urvanov-syntax-highlighter-os-pc print-yes notranslate\" data-settings=\" minimize scroll-mouseover\" style=\" margin-top: 12px; margin-bottom: 12px; font-size: 12px !important; line-height: 15px !important;\">\n\t\t\n\t\t\t<div class=\"crayon-toolbar\" data-settings=\" mouseover overlay hide delay\" style=\"font-size: 12px !important;height: 18px !important; line-height: 18px !important;\"><span class=\"crayon-title\"><\/span>\n\t\t\t<div class=\"crayon-tools\" style=\"font-size: 12px !important;height: 18px !important; line-height: 18px !important;\"><div class=\"crayon-button urvanov-syntax-highlighter-nums-button\" title=\"Zeilennummern\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-plain-button\" title=\"Unformatierte Code-Ansicht\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-wrap-button\" title=\"Zeilenumbruch umschalten\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-expand-button\" title=\"Code aufklappen\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-copy-button\" title=\"Copy\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-popup-button\" title=\"Code in einem neuen Fenster anzeigen\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><\/div><\/div>\n\t\t\t<div class=\"crayon-info\" style=\"min-height: 16.8px !important; line-height: 16.8px !important;\"><\/div>\n\t\t\t<div class=\"urvanov-syntax-highlighter-plain-wrap\"><textarea wrap=\"soft\" class=\"urvanov-syntax-highlighter-plain print-no\" data-settings=\"dblclick\" readonly style=\"-moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4; font-size: 12px !important; line-height: 15px !important;\">\nsudo nano \/usr\/local\/bin\/tvh_epg_update.sh\r\n# (Inhalt einf\u00fcgen)\r\n\r\nsleep 1\r\nsudo chmod +x \/usr\/local\/bin\/tvh_epg_update.sh\r\nsudo chown root:root \/usr\/local\/bin\/tvh_epg_update.sh<\/textarea><\/div>\n\t\t\t<div class=\"urvanov-syntax-highlighter-main\" style=\"\">\n\t\t\t\t<table class=\"crayon-table\">\n\t\t\t\t\t<tr class=\"urvanov-syntax-highlighter-row\">\n\t\t\t\t<td class=\"crayon-nums \" data-settings=\"show\">\n\t\t\t\t\t<div class=\"urvanov-syntax-highlighter-nums-content\" style=\"font-size: 12px !important; line-height: 15px !important;\"><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f2f7f479201374-1\">1<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f2f7f479201374-2\">2<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f2f7f479201374-3\">3<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f2f7f479201374-4\">4<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f2f7f479201374-5\">5<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f2f7f479201374-6\">6<\/div><\/div>\n\t\t\t\t<\/td>\n\t\t\t\t\t\t<td class=\"urvanov-syntax-highlighter-code\"><div class=\"crayon-pre\" style=\"font-size: 12px !important; line-height: 15px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;\"><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f2f7f479201374-1\"><span class=\"crayon-e\">sudo <\/span><span class=\"crayon-v\">nano<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-v\">usr<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-v\">local<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-v\">bin<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-v\">tvh_epg_update<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-i\">sh<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f2f7f479201374-2\"><span class=\"crayon-p\"># (Inhalt einf\u00fcgen)<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f2f7f479201374-3\">&nbsp;<\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f2f7f479201374-4\"><span class=\"crayon-i\">sleep<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">1<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f2f7f479201374-5\"><span class=\"crayon-e\">sudo <\/span><span class=\"crayon-v\">chmod<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">+<\/span><span class=\"crayon-v\">x<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-v\">usr<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-v\">local<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-v\">bin<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-v\">tvh_epg_update<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-e\">sh<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f2f7f479201374-6\"><span class=\"crayon-e\">sudo <\/span><span class=\"crayon-e\">chown <\/span><span class=\"crayon-v\">root<\/span><span class=\"crayon-o\">:<\/span><span class=\"crayon-v\">root<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-v\">usr<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-v\">local<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-v\">bin<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-v\">tvh_epg_update<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-v\">sh<\/span><\/div><\/div><\/td>\n\t\t\t\t\t<\/tr>\n\t\t\t\t<\/table>\n\t\t\t<\/div>\n\t\t<\/div>\r\n<!-- [Format Time: 0.0002 seconds] -->\r\n<p><\/p>\n<h4>Testlauf<\/h4>\n<p><\/p><!-- Urvanov Syntax Highlighter v2.9.1 -->\r\n\n\t\t<div id=\"urvanov-syntax-highlighter-6a6c6333f2f82008608009\" class=\"urvanov-syntax-highlighter-syntax crayon-theme-classic urvanov-syntax-highlighter-font-monaco urvanov-syntax-highlighter-os-pc print-yes notranslate\" data-settings=\" minimize scroll-mouseover\" style=\" margin-top: 12px; margin-bottom: 12px; font-size: 12px !important; line-height: 15px !important;\">\n\t\t\n\t\t\t<div class=\"crayon-toolbar\" data-settings=\" mouseover overlay hide delay\" style=\"font-size: 12px !important;height: 18px !important; line-height: 18px !important;\"><span class=\"crayon-title\"><\/span>\n\t\t\t<div class=\"crayon-tools\" style=\"font-size: 12px !important;height: 18px !important; line-height: 18px !important;\"><div class=\"crayon-button urvanov-syntax-highlighter-nums-button\" title=\"Zeilennummern\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-plain-button\" title=\"Unformatierte Code-Ansicht\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-wrap-button\" title=\"Zeilenumbruch umschalten\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-expand-button\" title=\"Code aufklappen\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-copy-button\" title=\"Copy\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-popup-button\" title=\"Code in einem neuen Fenster anzeigen\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><\/div><\/div>\n\t\t\t<div class=\"crayon-info\" style=\"min-height: 16.8px !important; line-height: 16.8px !important;\"><\/div>\n\t\t\t<div class=\"urvanov-syntax-highlighter-plain-wrap\"><textarea wrap=\"soft\" class=\"urvanov-syntax-highlighter-plain print-no\" data-settings=\"dblclick\" readonly style=\"-moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4; font-size: 12px !important; line-height: 15px !important;\">\nsudo \/usr\/local\/bin\/tvh_epg_update.sh\r\nsudo journalctl -u tvheadend -n 100 | grep -i xmltv<\/textarea><\/div>\n\t\t\t<div class=\"urvanov-syntax-highlighter-main\" style=\"\">\n\t\t\t\t<table class=\"crayon-table\">\n\t\t\t\t\t<tr class=\"urvanov-syntax-highlighter-row\">\n\t\t\t\t<td class=\"crayon-nums \" data-settings=\"show\">\n\t\t\t\t\t<div class=\"urvanov-syntax-highlighter-nums-content\" style=\"font-size: 12px !important; line-height: 15px !important;\"><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f2f82008608009-1\">1<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f2f82008608009-2\">2<\/div><\/div>\n\t\t\t\t<\/td>\n\t\t\t\t\t\t<td class=\"urvanov-syntax-highlighter-code\"><div class=\"crayon-pre\" style=\"font-size: 12px !important; line-height: 15px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;\"><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f2f82008608009-1\"><span class=\"crayon-v\">sudo<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-v\">usr<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-v\">local<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-v\">bin<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-v\">tvh_epg_update<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-e\">sh<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f2f82008608009-2\"><span class=\"crayon-e\">sudo <\/span><span class=\"crayon-v\">journalctl<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-i\">u<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">tvheadend<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-i\">n<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">100<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">|<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">grep<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-i\">i<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">xmltv<\/span><\/div><\/div><\/td>\n\t\t\t\t\t<\/tr>\n\t\t\t\t<\/table>\n\t\t\t<\/div>\n\t\t<\/div>\r\n<!-- [Format Time: 0.0002 seconds] -->\r\n<p><\/p>\n<h4>Cron einrichten (t\u00e4glich 04:30 Uhr)<\/h4>\n<p><\/p><!-- Urvanov Syntax Highlighter v2.9.1 -->\r\n\n\t\t<div id=\"urvanov-syntax-highlighter-6a6c6333f2f84709940912\" class=\"urvanov-syntax-highlighter-syntax crayon-theme-classic urvanov-syntax-highlighter-font-monaco urvanov-syntax-highlighter-os-pc print-yes notranslate\" data-settings=\" minimize scroll-mouseover\" style=\" margin-top: 12px; margin-bottom: 12px; font-size: 12px !important; line-height: 15px !important;\">\n\t\t\n\t\t\t<div class=\"crayon-toolbar\" data-settings=\" mouseover overlay hide delay\" style=\"font-size: 12px !important;height: 18px !important; line-height: 18px !important;\"><span class=\"crayon-title\"><\/span>\n\t\t\t<div class=\"crayon-tools\" style=\"font-size: 12px !important;height: 18px !important; line-height: 18px !important;\"><div class=\"crayon-button urvanov-syntax-highlighter-nums-button\" title=\"Zeilennummern\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-plain-button\" title=\"Unformatierte Code-Ansicht\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-wrap-button\" title=\"Zeilenumbruch umschalten\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-expand-button\" title=\"Code aufklappen\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-copy-button\" title=\"Copy\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-popup-button\" title=\"Code in einem neuen Fenster anzeigen\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><\/div><\/div>\n\t\t\t<div class=\"crayon-info\" style=\"min-height: 16.8px !important; line-height: 16.8px !important;\"><\/div>\n\t\t\t<div class=\"urvanov-syntax-highlighter-plain-wrap\"><textarea wrap=\"soft\" class=\"urvanov-syntax-highlighter-plain print-no\" data-settings=\"dblclick\" readonly style=\"-moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4; font-size: 12px !important; line-height: 15px !important;\">\nsudo crontab -e<\/textarea><\/div>\n\t\t\t<div class=\"urvanov-syntax-highlighter-main\" style=\"\">\n\t\t\t\t<table class=\"crayon-table\">\n\t\t\t\t\t<tr class=\"urvanov-syntax-highlighter-row\">\n\t\t\t\t<td class=\"crayon-nums \" data-settings=\"show\">\n\t\t\t\t\t<div class=\"urvanov-syntax-highlighter-nums-content\" style=\"font-size: 12px !important; line-height: 15px !important;\"><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f2f84709940912-1\">1<\/div><\/div>\n\t\t\t\t<\/td>\n\t\t\t\t\t\t<td class=\"urvanov-syntax-highlighter-code\"><div class=\"crayon-pre\" style=\"font-size: 12px !important; line-height: 15px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;\"><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f2f84709940912-1\"><span class=\"crayon-e\">sudo <\/span><span class=\"crayon-v\">crontab<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-v\">e<\/span><\/div><\/div><\/td>\n\t\t\t\t\t<\/tr>\n\t\t\t\t<\/table>\n\t\t\t<\/div>\n\t\t<\/div>\r\n<!-- [Format Time: 0.0001 seconds] -->\r\n<p>Eintrag hinzuf\u00fcgen:<\/p><!-- Urvanov Syntax Highlighter v2.9.1 -->\r\n\n\t\t<div id=\"urvanov-syntax-highlighter-6a6c6333f2f86084923303\" class=\"urvanov-syntax-highlighter-syntax crayon-theme-classic urvanov-syntax-highlighter-font-monaco urvanov-syntax-highlighter-os-pc print-yes notranslate\" data-settings=\" minimize scroll-mouseover\" style=\" margin-top: 12px; margin-bottom: 12px; font-size: 12px !important; line-height: 15px !important;\">\n\t\t\n\t\t\t<div class=\"crayon-toolbar\" data-settings=\" mouseover overlay hide delay\" style=\"font-size: 12px !important;height: 18px !important; line-height: 18px !important;\"><span class=\"crayon-title\"><\/span>\n\t\t\t<div class=\"crayon-tools\" style=\"font-size: 12px !important;height: 18px !important; line-height: 18px !important;\"><div class=\"crayon-button urvanov-syntax-highlighter-nums-button\" title=\"Zeilennummern\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-plain-button\" title=\"Unformatierte Code-Ansicht\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-wrap-button\" title=\"Zeilenumbruch umschalten\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-expand-button\" title=\"Code aufklappen\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-copy-button\" title=\"Copy\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-popup-button\" title=\"Code in einem neuen Fenster anzeigen\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><\/div><\/div>\n\t\t\t<div class=\"crayon-info\" style=\"min-height: 16.8px !important; line-height: 16.8px !important;\"><\/div>\n\t\t\t<div class=\"urvanov-syntax-highlighter-plain-wrap\"><textarea wrap=\"soft\" class=\"urvanov-syntax-highlighter-plain print-no\" data-settings=\"dblclick\" readonly style=\"-moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4; font-size: 12px !important; line-height: 15px !important;\">\n30 4 * * * \/usr\/local\/bin\/update_epg.sh<\/textarea><\/div>\n\t\t\t<div class=\"urvanov-syntax-highlighter-main\" style=\"\">\n\t\t\t\t<table class=\"crayon-table\">\n\t\t\t\t\t<tr class=\"urvanov-syntax-highlighter-row\">\n\t\t\t\t<td class=\"crayon-nums \" data-settings=\"show\">\n\t\t\t\t\t<div class=\"urvanov-syntax-highlighter-nums-content\" style=\"font-size: 12px !important; line-height: 15px !important;\"><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f2f86084923303-1\">1<\/div><\/div>\n\t\t\t\t<\/td>\n\t\t\t\t\t\t<td class=\"urvanov-syntax-highlighter-code\"><div class=\"crayon-pre\" style=\"font-size: 12px !important; line-height: 15px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;\"><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f2f86084923303-1\"><span class=\"crayon-cn\">30<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">4<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">*<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">*<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">*<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-v\">usr<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-v\">local<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-v\">bin<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-v\">update_epg<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-v\">sh<\/span><\/div><\/div><\/td>\n\t\t\t\t\t<\/tr>\n\t\t\t\t<\/table>\n\t\t\t<\/div>\n\t\t<\/div>\r\n<!-- [Format Time: 0.0001 seconds] -->\r\n<p><\/p>\n<hr \/>\n<p>&#8211; EPG wird jetzt t\u00e4glich automatisch aktualisiert<br \/>\n&#8211; Bei Problemen: <code>\/var\/log\/epg_update.log<\/code> und <code>journalctl -t tvheadend<\/code> pr\u00fcfen<br \/>\n&#8211; F\u00fcr noch mehr Tage: im Script weitere wget-Befehle f\u00fcr germany2.xml etc. erg\u00e4nzen und Dateien zusammenf\u00fchren (<code>cat file1 file2 &gt; combined.xml<\/code>)<\/p>\n<hr \/>\n<p><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-2821 alignleft\" src=\"https:\/\/speefak.spdns.de\/oss_lifestyle\/wp-content\/uploads\/2014\/08\/CC_BY_NC_SA.png\" alt=\"CC_BY_NC_SA\" width=\"65\" height=\"23\" \/>by Speefak<\/p>\n","protected":false},"excerpt":{"rendered":"<p>F\u00fcr die Bereitstellung von Elektronischen Programmf\u00fchrern (EPG) f\u00fcr IPTV-Kan\u00e4le in Tvheadend existieren zwei grundlegend verschiedene Ans\u00e4tze: Nutzung der EIT-Daten eines DVB-S-Transponders (sehr einfache Methode) Wenn mindestens ein Sender desselben Transponders (z. B. 12551 H bei Astra 19.2\u00b0) \u00fcber DVB-S empfangen werden kann, lassen sich die vom Transponder \u00fcbertragenen EIT\/OTA-EPG-Daten auch f\u00fcr IPTV-Kan\u00e4le nutzen, die selbst [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[8],"tags":[],"class_list":["post-8617","post","type-post","status-publish","format-standard","hentry","category-anleitungen"],"rttpg_featured_image_url":null,"rttpg_author":{"display_name":"speefak","author_link":"https:\/\/speefak.spdns.de\/oss_lifestyle\/author\/speefak_oss\/"},"rttpg_comment":2,"rttpg_category":"<a href=\"https:\/\/speefak.spdns.de\/oss_lifestyle\/category\/anleitungen\/\" rel=\"category tag\">Anleitungen<\/a>","rttpg_excerpt":"F\u00fcr die Bereitstellung von Elektronischen Programmf\u00fchrern (EPG) f\u00fcr IPTV-Kan\u00e4le in Tvheadend existieren zwei grundlegend verschiedene Ans\u00e4tze: Nutzung der EIT-Daten eines DVB-S-Transponders (sehr einfache Methode) Wenn mindestens ein Sender desselben Transponders (z. B. 12551 H bei Astra 19.2\u00b0) \u00fcber DVB-S empfangen werden kann, lassen sich die vom Transponder \u00fcbertragenen EIT\/OTA-EPG-Daten auch f\u00fcr IPTV-Kan\u00e4le nutzen, die selbst&hellip;","_links":{"self":[{"href":"https:\/\/speefak.spdns.de\/oss_lifestyle\/wp-json\/wp\/v2\/posts\/8617","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/speefak.spdns.de\/oss_lifestyle\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/speefak.spdns.de\/oss_lifestyle\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/speefak.spdns.de\/oss_lifestyle\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/speefak.spdns.de\/oss_lifestyle\/wp-json\/wp\/v2\/comments?post=8617"}],"version-history":[{"count":0,"href":"https:\/\/speefak.spdns.de\/oss_lifestyle\/wp-json\/wp\/v2\/posts\/8617\/revisions"}],"wp:attachment":[{"href":"https:\/\/speefak.spdns.de\/oss_lifestyle\/wp-json\/wp\/v2\/media?parent=8617"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/speefak.spdns.de\/oss_lifestyle\/wp-json\/wp\/v2\/categories?post=8617"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/speefak.spdns.de\/oss_lifestyle\/wp-json\/wp\/v2\/tags?post=8617"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}},{"id":8606,"date":"2026-01-29T10:56:15","date_gmt":"2026-01-29T09:56:15","guid":{"rendered":"https:\/\/speefak.spdns.de\/oss_lifestyle\/?p=8606"},"modified":"2026-01-29T15:44:57","modified_gmt":"2026-01-29T14:44:57","slug":"phpmyadmin-on-demand-unter-debian-installieren-betreiben","status":"publish","type":"post","link":"https:\/\/speefak.spdns.de\/oss_lifestyle\/phpmyadmin-on-demand-unter-debian-installieren-betreiben\/","title":{"rendered":"phpMyAdmin On-Demand unter Debian installieren &#038; betreiben"},"content":{"rendered":"<p dir=\"auto\">phpMyAdmin l\u00e4uft nicht permanent, sondern wird nur bei Bedarf (Datenbank-Setup, Benutzerverwaltung, Fehleranalyse) kurzzeitig \u00fcber Apache gestartet und anschlie\u00dfend wieder abgeschaltet. Der Zugriff erfolgt rein lokal \u00fcber die Shell oder remote \u00fcber das Webinterface \u2013 ein direkter Netzwerkzugriff via MySQL ist ausgeschlossen. So bleibt administrativer Zugriff bewusst punktuell, lokal und zeitlich limitiert, w\u00e4hrend der Datenbankserver im Normalbetrieb keinen remote Root Login bietet.<\/p>\n<p data-start=\"614\" data-end=\"646\">Zentrale Merkmale dieses Setups:<\/p>\n<ul data-start=\"648\" data-end=\"1479\">\n<li data-start=\"648\" data-end=\"855\">phpMyAdmin wird <strong data-start=\"666\" data-end=\"709\">ordnungsgem\u00e4\u00df \u00fcber den Debian-Installer<\/strong> installiert<br data-start=\"721\" data-end=\"724\" \/>(inklusive eines <strong data-start=\"743\" data-end=\"788\">tempor\u00e4r notwendigen MySQL-Root-Passworts<\/strong>, da der Installer keine Unix-Socket-Authentifizierung unterst\u00fctzt)<\/li>\n<li data-start=\"648\" data-end=\"855\">Der MySQL\/MariaDB-Root-Benutzer ist <strong data-start=\"894\" data-end=\"941\">dauerhaft auf Unix-Socket-Authentifizierung<\/strong> konfiguriert und besitzt <strong data-start=\"967\" data-end=\"984\">kein Passwort<\/strong><\/li>\n<li data-start=\"648\" data-end=\"855\">Der <strong data-start=\"991\" data-end=\"1039\">phpMyAdmin-Benutzer erh\u00e4lt volle Root-Rechte<\/strong>, wird <strong data-start=\"1046\" data-end=\"1092\">ausschlie\u00dflich lokal (<code data-start=\"1070\" data-end=\"1081\">localhost<\/code>) genutzt<\/strong> und ist <strong data-start=\"1101\" data-end=\"1149\">nicht per direktem Netzwerk-Login erreichbar<\/strong><\/li>\n<li data-start=\"856\" data-end=\"984\">Ein <strong data-start=\"1156\" data-end=\"1197\">Remote&#8211;Root-Login ist nur indirekt m\u00f6glich<\/strong>, und zwar <strong data-start=\"1207\" data-end=\"1243\">\u00fcber das phpMyAdmin-Webinterface<\/strong>, das bewusst <strong data-start=\"1257\" data-end=\"1275\">nur bei Bedarf<\/strong> mittels<br data-start=\"1283\" data-end=\"1286\" \/><code data-start=\"1288\" data-end=\"1298\">a2ensite<\/code> aktiviert und mit <code data-start=\"1317\" data-end=\"1328\">a2dissite<\/code> wieder deaktiviert wird<\/li>\n<li data-start=\"856\" data-end=\"984\">\n<p data-start=\"858\" data-end=\"984\">Nach Abschluss der administrativen Arbeiten wird phpMyAdmin abgeschaltet, ohne Benutzer oder Berechtigungen \u00e4ndern zu m\u00fcssen<\/p>\n<\/li>\n<\/ul>\n<hr \/>\n<h2>1. PHPMyAdmin Installation auf Debian (mit MariaDB)<\/h2>\n<p>F\u00fcr die Installation und automatische Konfiguration von PHPMyAdmin \u00fcber dbconfig muss MariaDB zuvor korrekt eingerichtet sein, da PHPMyAdmin Zugriff auf die Datenbank ben\u00f6tigt, um eigene Tabellen und Benutzer anzulegen. Aktuelle Debian-Versionen verwenden daf\u00fcr den MariaDB-<code data-start=\"340\" data-end=\"346\">root<\/code>-Account \u00fcber <code data-start=\"360\" data-end=\"373\">unix_socket<\/code> sowie die Datei <code data-start=\"390\" data-end=\"413\">\/etc\/mysql\/debian.cnf<\/code>, die automatische Wartungs- und Installationsskripte unterst\u00fctzt. Die MariaDB-Installation richtet dabei automatisch den Datenbankserver ein und stellt den Wartungszugriff bereit.<\/p>\n<h4><strong>1.1 MariaDB installieren und Wartungszugriff einrichten:<\/strong><\/h4>\n<p><\/p><!-- Urvanov Syntax Highlighter v2.9.1 -->\r\n\n\t\t<div id=\"urvanov-syntax-highlighter-6a6c6333f32a2512588926\" class=\"urvanov-syntax-highlighter-syntax crayon-theme-classic urvanov-syntax-highlighter-font-monaco urvanov-syntax-highlighter-os-pc print-yes notranslate\" data-settings=\" minimize scroll-mouseover\" style=\" margin-top: 12px; margin-bottom: 12px; font-size: 12px !important; line-height: 15px !important;\">\n\t\t\n\t\t\t<div class=\"crayon-toolbar\" data-settings=\" mouseover overlay hide delay\" style=\"font-size: 12px !important;height: 18px !important; line-height: 18px !important;\"><span class=\"crayon-title\"><\/span>\n\t\t\t<div class=\"crayon-tools\" style=\"font-size: 12px !important;height: 18px !important; line-height: 18px !important;\"><div class=\"crayon-button urvanov-syntax-highlighter-nums-button\" title=\"Zeilennummern\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-plain-button\" title=\"Unformatierte Code-Ansicht\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-wrap-button\" title=\"Zeilenumbruch umschalten\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-expand-button\" title=\"Code aufklappen\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-copy-button\" title=\"Copy\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-popup-button\" title=\"Code in einem neuen Fenster anzeigen\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><\/div><\/div>\n\t\t\t<div class=\"crayon-info\" style=\"min-height: 16.8px !important; line-height: 16.8px !important;\"><\/div>\n\t\t\t<div class=\"urvanov-syntax-highlighter-plain-wrap\"><textarea wrap=\"soft\" class=\"urvanov-syntax-highlighter-plain print-no\" data-settings=\"dblclick\" readonly style=\"-moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4; font-size: 12px !important; line-height: 15px !important;\">\nsudo apt update\r\nsudo apt install mariadb-server<\/textarea><\/div>\n\t\t\t<div class=\"urvanov-syntax-highlighter-main\" style=\"\">\n\t\t\t\t<table class=\"crayon-table\">\n\t\t\t\t\t<tr class=\"urvanov-syntax-highlighter-row\">\n\t\t\t\t<td class=\"crayon-nums \" data-settings=\"show\">\n\t\t\t\t\t<div class=\"urvanov-syntax-highlighter-nums-content\" style=\"font-size: 12px !important; line-height: 15px !important;\"><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f32a2512588926-1\">1<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f32a2512588926-2\">2<\/div><\/div>\n\t\t\t\t<\/td>\n\t\t\t\t\t\t<td class=\"urvanov-syntax-highlighter-code\"><div class=\"crayon-pre\" style=\"font-size: 12px !important; line-height: 15px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;\"><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f32a2512588926-1\"><span class=\"crayon-e\">sudo <\/span><span class=\"crayon-e\">apt <\/span><span class=\"crayon-e\">update<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f32a2512588926-2\"><span class=\"crayon-e\">sudo <\/span><span class=\"crayon-e\">apt <\/span><span class=\"crayon-e\">install <\/span><span class=\"crayon-v\">mariadb<\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-v\">server<\/span><\/div><\/div><\/td>\n\t\t\t\t\t<\/tr>\n\t\t\t\t<\/table>\n\t\t\t<\/div>\n\t\t<\/div>\r\n<!-- [Format Time: 0.0001 seconds] -->\r\n<p>Ohne diese Konfiguration <strong>schl\u00e4gt dbconfig bei der phpMyAdmin-Installation fehl<\/strong>, da <code>dbconfig-common<\/code> die Datenbank nicht korrekt initialisieren kann.<\/p>\n<hr \/>\n<h4><strong>1.2 PHPMyAdmin installieren:<\/strong><\/h4>\n<p><\/p><!-- Urvanov Syntax Highlighter v2.9.1 -->\r\n\n\t\t<div id=\"urvanov-syntax-highlighter-6a6c6333f32ac468679036\" class=\"urvanov-syntax-highlighter-syntax crayon-theme-classic urvanov-syntax-highlighter-font-monaco urvanov-syntax-highlighter-os-pc print-yes notranslate\" data-settings=\" minimize scroll-mouseover\" style=\" margin-top: 12px; margin-bottom: 12px; font-size: 12px !important; line-height: 15px !important;\">\n\t\t\n\t\t\t<div class=\"crayon-toolbar\" data-settings=\" mouseover overlay hide delay\" style=\"font-size: 12px !important;height: 18px !important; line-height: 18px !important;\"><span class=\"crayon-title\"><\/span>\n\t\t\t<div class=\"crayon-tools\" style=\"font-size: 12px !important;height: 18px !important; line-height: 18px !important;\"><div class=\"crayon-button urvanov-syntax-highlighter-nums-button\" title=\"Zeilennummern\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-plain-button\" title=\"Unformatierte Code-Ansicht\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-wrap-button\" title=\"Zeilenumbruch umschalten\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-expand-button\" title=\"Code aufklappen\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-copy-button\" title=\"Copy\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-popup-button\" title=\"Code in einem neuen Fenster anzeigen\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><\/div><\/div>\n\t\t\t<div class=\"crayon-info\" style=\"min-height: 16.8px !important; line-height: 16.8px !important;\"><\/div>\n\t\t\t<div class=\"urvanov-syntax-highlighter-plain-wrap\"><textarea wrap=\"soft\" class=\"urvanov-syntax-highlighter-plain print-no\" data-settings=\"dblclick\" readonly style=\"-moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4; font-size: 12px !important; line-height: 15px !important;\">\nsudo apt install phpmyadmin<\/textarea><\/div>\n\t\t\t<div class=\"urvanov-syntax-highlighter-main\" style=\"\">\n\t\t\t\t<table class=\"crayon-table\">\n\t\t\t\t\t<tr class=\"urvanov-syntax-highlighter-row\">\n\t\t\t\t<td class=\"crayon-nums \" data-settings=\"show\">\n\t\t\t\t\t<div class=\"urvanov-syntax-highlighter-nums-content\" style=\"font-size: 12px !important; line-height: 15px !important;\"><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f32ac468679036-1\">1<\/div><\/div>\n\t\t\t\t<\/td>\n\t\t\t\t\t\t<td class=\"urvanov-syntax-highlighter-code\"><div class=\"crayon-pre\" style=\"font-size: 12px !important; line-height: 15px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;\"><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f32ac468679036-1\"><span class=\"crayon-e\">sudo <\/span><span class=\"crayon-e\">apt <\/span><span class=\"crayon-e\">install <\/span><span class=\"crayon-v\">phpmyadmin<\/span><\/div><\/div><\/td>\n\t\t\t\t\t<\/tr>\n\t\t\t\t<\/table>\n\t\t\t<\/div>\n\t\t<\/div>\r\n<!-- [Format Time: 0.0001 seconds] -->\r\n<p>Dank der zuvor installierten MariaDB-Server-Pakete l\u00e4uft die Installation von PHPMyAdmin problemlos, ohne dass nach dem MySQL-Root-Passwort gefragt wird. dbconfig-common richtet die phpMyAdmin-Datenbank automatisch ein.<\/p>\n<hr \/>\n<h2>2. phpMyAdmin-User <strong>Root-Rechte<\/strong> gew\u00e4hren <strong data-start=\"0\" data-end=\"82\">und auf lokalen Zugriff beschr\u00e4nken<\/strong><\/h2>\n<p data-start=\"303\" data-end=\"670\">Standardm\u00e4\u00dfig wird der Benutzer <code data-start=\"335\" data-end=\"347\">phpmyadmin<\/code> mit eingeschr\u00e4nkten Rechten eingerichtet. Da der MariaDB-Root-Zugang per Vorgabe nur lokal \u00fcber <code data-start=\"444\" data-end=\"456\">sudo mysql<\/code> m\u00f6glich ist, kann ein Root-Login \u00fcber das phpMyAdmin-Webinterface nicht erfolgen. Durch die Vergabe von Root-Rechten an den Benutzer <code data-start=\"597\" data-end=\"609\">phpmyadmin<\/code> wird ein Root-Datenbank-Login \u00fcber das Webinterface erm\u00f6glicht. Der Zugriff erfolgt dabei technisch weiterhin lokal, da phpMyAdmin auf dem Server l\u00e4uft und \u00fcber <code data-start=\"769\" data-end=\"780\">localhost<\/code> auf den Datenbankserver zugreift. Wird das phpMyAdmin-Webinterface deaktiviert, ist ein externer Login \u00fcber phpMyAdmin nicht mehr m\u00f6glich.<\/p>\n<p>Der folgende Befehl gibt dem bereits vorhandenen Benutzer <code>phpmyadmin<\/code> volle Rechte auf alle Datenbanken und \u00fcbernimmt die \u00c4nderungen sofort. Der Zugriff ist dabei auf lokale Verbindungen (<code>localhost<\/code>) beschr\u00e4nkt.<\/p><!-- Urvanov Syntax Highlighter v2.9.1 -->\r\n\n\t\t<div id=\"urvanov-syntax-highlighter-6a6c6333f32af707135249\" class=\"urvanov-syntax-highlighter-syntax crayon-theme-classic urvanov-syntax-highlighter-font-monaco urvanov-syntax-highlighter-os-pc print-yes notranslate\" data-settings=\" minimize scroll-mouseover\" style=\" margin-top: 12px; margin-bottom: 12px; font-size: 12px !important; line-height: 15px !important;\">\n\t\t\n\t\t\t<div class=\"crayon-toolbar\" data-settings=\" mouseover overlay hide delay\" style=\"font-size: 12px !important;height: 18px !important; line-height: 18px !important;\"><span class=\"crayon-title\"><\/span>\n\t\t\t<div class=\"crayon-tools\" style=\"font-size: 12px !important;height: 18px !important; line-height: 18px !important;\"><div class=\"crayon-button urvanov-syntax-highlighter-nums-button\" title=\"Zeilennummern\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-plain-button\" title=\"Unformatierte Code-Ansicht\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-wrap-button\" title=\"Zeilenumbruch umschalten\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-expand-button\" title=\"Code aufklappen\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-copy-button\" title=\"Copy\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-popup-button\" title=\"Code in einem neuen Fenster anzeigen\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><\/div><\/div>\n\t\t\t<div class=\"crayon-info\" style=\"min-height: 16.8px !important; line-height: 16.8px !important;\"><\/div>\n\t\t\t<div class=\"urvanov-syntax-highlighter-plain-wrap\"><textarea wrap=\"soft\" class=\"urvanov-syntax-highlighter-plain print-no\" data-settings=\"dblclick\" readonly style=\"-moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4; font-size: 12px !important; line-height: 15px !important;\">\nsudo mysql -e \"GRANT ALL PRIVILEGES ON *.* TO 'phpmyadmin'@'localhost' WITH GRANT OPTION; FLUSH PRIVILEGES;\"<\/textarea><\/div>\n\t\t\t<div class=\"urvanov-syntax-highlighter-main\" style=\"\">\n\t\t\t\t<table class=\"crayon-table\">\n\t\t\t\t\t<tr class=\"urvanov-syntax-highlighter-row\">\n\t\t\t\t<td class=\"crayon-nums \" data-settings=\"show\">\n\t\t\t\t\t<div class=\"urvanov-syntax-highlighter-nums-content\" style=\"font-size: 12px !important; line-height: 15px !important;\"><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f32af707135249-1\">1<\/div><\/div>\n\t\t\t\t<\/td>\n\t\t\t\t\t\t<td class=\"urvanov-syntax-highlighter-code\"><div class=\"crayon-pre\" style=\"font-size: 12px !important; line-height: 15px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;\"><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f32af707135249-1\"><span class=\"crayon-e\">sudo <\/span><span class=\"crayon-v\">mysql<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-i\">e<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"GRANT ALL PRIVILEGES ON *.* TO 'phpmyadmin'@'localhost' WITH GRANT OPTION; FLUSH PRIVILEGES;\"<\/span><\/div><\/div><\/td>\n\t\t\t\t\t<\/tr>\n\t\t\t\t<\/table>\n\t\t\t<\/div>\n\t\t<\/div>\r\n<!-- [Format Time: 0.0001 seconds] -->\r\n<p><\/p>\n<hr \/>\n<h2>3. phpMyAdmin Webinterface aktivieren \/ deaktivieren<\/h2>\n<p>Das phpMyAdmin-Webinterface kann per SSH wie folgt aktiviert oder deaktiviert werden:<\/p>\n<h4>Deaktivieren (Standardzustand, <strong>Kein Webzugriff m\u00f6glich<\/strong>)<\/h4>\n<p><\/p><!-- Urvanov Syntax Highlighter v2.9.1 -->\r\n\n\t\t<div id=\"urvanov-syntax-highlighter-6a6c6333f32b1088127852\" class=\"urvanov-syntax-highlighter-syntax crayon-theme-classic urvanov-syntax-highlighter-font-monaco urvanov-syntax-highlighter-os-pc print-yes notranslate\" data-settings=\" minimize scroll-mouseover\" style=\" margin-top: 12px; margin-bottom: 12px; font-size: 12px !important; line-height: 15px !important;\">\n\t\t\n\t\t\t<div class=\"crayon-toolbar\" data-settings=\" mouseover overlay hide delay\" style=\"font-size: 12px !important;height: 18px !important; line-height: 18px !important;\"><span class=\"crayon-title\"><\/span>\n\t\t\t<div class=\"crayon-tools\" style=\"font-size: 12px !important;height: 18px !important; line-height: 18px !important;\"><div class=\"crayon-button urvanov-syntax-highlighter-nums-button\" title=\"Zeilennummern\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-plain-button\" title=\"Unformatierte Code-Ansicht\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-wrap-button\" title=\"Zeilenumbruch umschalten\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-expand-button\" title=\"Code aufklappen\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-copy-button\" title=\"Copy\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-popup-button\" title=\"Code in einem neuen Fenster anzeigen\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><\/div><\/div>\n\t\t\t<div class=\"crayon-info\" style=\"min-height: 16.8px !important; line-height: 16.8px !important;\"><\/div>\n\t\t\t<div class=\"urvanov-syntax-highlighter-plain-wrap\"><textarea wrap=\"soft\" class=\"urvanov-syntax-highlighter-plain print-no\" data-settings=\"dblclick\" readonly style=\"-moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4; font-size: 12px !important; line-height: 15px !important;\">\nsudo a2disconf phpmyadmin\r\nsudo systemctl reload apache2<\/textarea><\/div>\n\t\t\t<div class=\"urvanov-syntax-highlighter-main\" style=\"\">\n\t\t\t\t<table class=\"crayon-table\">\n\t\t\t\t\t<tr class=\"urvanov-syntax-highlighter-row\">\n\t\t\t\t<td class=\"crayon-nums \" data-settings=\"show\">\n\t\t\t\t\t<div class=\"urvanov-syntax-highlighter-nums-content\" style=\"font-size: 12px !important; line-height: 15px !important;\"><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f32b1088127852-1\">1<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f32b1088127852-2\">2<\/div><\/div>\n\t\t\t\t<\/td>\n\t\t\t\t\t\t<td class=\"urvanov-syntax-highlighter-code\"><div class=\"crayon-pre\" style=\"font-size: 12px !important; line-height: 15px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;\"><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f32b1088127852-1\"><span class=\"crayon-e\">sudo <\/span><span class=\"crayon-e\">a2disconf <\/span><span class=\"crayon-e\">phpmyadmin<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f32b1088127852-2\"><span class=\"crayon-e\">sudo <\/span><span class=\"crayon-e\">systemctl <\/span><span class=\"crayon-e\">reload <\/span><span class=\"crayon-v\">apache2<\/span><\/div><\/div><\/td>\n\t\t\t\t\t<\/tr>\n\t\t\t\t<\/table>\n\t\t\t<\/div>\n\t\t<\/div>\r\n<!-- [Format Time: 0.0001 seconds] -->\r\n<p><\/p>\n<h4>Aktivieren (f\u00fcr Einrichtung \/ Analyse)<\/h4>\n<p><\/p><!-- Urvanov Syntax Highlighter v2.9.1 -->\r\n\n\t\t<div id=\"urvanov-syntax-highlighter-6a6c6333f32b4815136908\" class=\"urvanov-syntax-highlighter-syntax crayon-theme-classic urvanov-syntax-highlighter-font-monaco urvanov-syntax-highlighter-os-pc print-yes notranslate\" data-settings=\" minimize scroll-mouseover\" style=\" margin-top: 12px; margin-bottom: 12px; font-size: 12px !important; line-height: 15px !important;\">\n\t\t\n\t\t\t<div class=\"crayon-toolbar\" data-settings=\" mouseover overlay hide delay\" style=\"font-size: 12px !important;height: 18px !important; line-height: 18px !important;\"><span class=\"crayon-title\"><\/span>\n\t\t\t<div class=\"crayon-tools\" style=\"font-size: 12px !important;height: 18px !important; line-height: 18px !important;\"><div class=\"crayon-button urvanov-syntax-highlighter-nums-button\" title=\"Zeilennummern\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-plain-button\" title=\"Unformatierte Code-Ansicht\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-wrap-button\" title=\"Zeilenumbruch umschalten\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-expand-button\" title=\"Code aufklappen\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-copy-button\" title=\"Copy\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-popup-button\" title=\"Code in einem neuen Fenster anzeigen\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><\/div><\/div>\n\t\t\t<div class=\"crayon-info\" style=\"min-height: 16.8px !important; line-height: 16.8px !important;\"><\/div>\n\t\t\t<div class=\"urvanov-syntax-highlighter-plain-wrap\"><textarea wrap=\"soft\" class=\"urvanov-syntax-highlighter-plain print-no\" data-settings=\"dblclick\" readonly style=\"-moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4; font-size: 12px !important; line-height: 15px !important;\">\nsudo a2enconf phpmyadmin\r\nsudo systemctl reload apache2<\/textarea><\/div>\n\t\t\t<div class=\"urvanov-syntax-highlighter-main\" style=\"\">\n\t\t\t\t<table class=\"crayon-table\">\n\t\t\t\t\t<tr class=\"urvanov-syntax-highlighter-row\">\n\t\t\t\t<td class=\"crayon-nums \" data-settings=\"show\">\n\t\t\t\t\t<div class=\"urvanov-syntax-highlighter-nums-content\" style=\"font-size: 12px !important; line-height: 15px !important;\"><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f32b4815136908-1\">1<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f32b4815136908-2\">2<\/div><\/div>\n\t\t\t\t<\/td>\n\t\t\t\t\t\t<td class=\"urvanov-syntax-highlighter-code\"><div class=\"crayon-pre\" style=\"font-size: 12px !important; line-height: 15px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;\"><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f32b4815136908-1\"><span class=\"crayon-e\">sudo <\/span><span class=\"crayon-e\">a2enconf <\/span><span class=\"crayon-e\">phpmyadmin<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f32b4815136908-2\"><span class=\"crayon-e\">sudo <\/span><span class=\"crayon-e\">systemctl <\/span><span class=\"crayon-e\">reload <\/span><span class=\"crayon-v\">apache2<\/span><\/div><\/div><\/td>\n\t\t\t\t\t<\/tr>\n\t\t\t\t<\/table>\n\t\t\t<\/div>\n\t\t<\/div>\r\n<!-- [Format Time: 0.0001 seconds] -->\r\n<p><\/p>\n<hr \/>\n<p><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-2821 alignleft\" src=\"https:\/\/speefak.spdns.de\/oss_lifestyle\/wp-content\/uploads\/2014\/08\/CC_BY_NC_SA.png\" alt=\"CC_BY_NC_SA\" width=\"65\" height=\"23\" \/>by Speefak<\/p>\n","protected":false},"excerpt":{"rendered":"<p>phpMyAdmin l\u00e4uft nicht permanent, sondern wird nur bei Bedarf (Datenbank-Setup, Benutzerverwaltung, Fehleranalyse) kurzzeitig \u00fcber Apache gestartet und anschlie\u00dfend wieder abgeschaltet. Der Zugriff erfolgt rein lokal \u00fcber die Shell oder remote \u00fcber das Webinterface \u2013 ein direkter Netzwerkzugriff via MySQL ist ausgeschlossen. So bleibt administrativer Zugriff bewusst punktuell, lokal und zeitlich limitiert, w\u00e4hrend der Datenbankserver im [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[8,26,52,40],"tags":[],"class_list":["post-8606","post","type-post","status-publish","format-standard","hentry","category-anleitungen","category-linux","category-php-scripte","category-server"],"rttpg_featured_image_url":null,"rttpg_author":{"display_name":"speefak","author_link":"https:\/\/speefak.spdns.de\/oss_lifestyle\/author\/speefak_oss\/"},"rttpg_comment":0,"rttpg_category":"<a href=\"https:\/\/speefak.spdns.de\/oss_lifestyle\/category\/anleitungen\/\" rel=\"category tag\">Anleitungen<\/a> <a href=\"https:\/\/speefak.spdns.de\/oss_lifestyle\/category\/linux\/\" rel=\"category tag\">Linux<\/a> <a href=\"https:\/\/speefak.spdns.de\/oss_lifestyle\/category\/php-scripte\/\" rel=\"category tag\">PHP<\/a> <a href=\"https:\/\/speefak.spdns.de\/oss_lifestyle\/category\/server\/\" rel=\"category tag\">Server<\/a>","rttpg_excerpt":"phpMyAdmin l\u00e4uft nicht permanent, sondern wird nur bei Bedarf (Datenbank-Setup, Benutzerverwaltung, Fehleranalyse) kurzzeitig \u00fcber Apache gestartet und anschlie\u00dfend wieder abgeschaltet. Der Zugriff erfolgt rein lokal \u00fcber die Shell oder remote \u00fcber das Webinterface \u2013 ein direkter Netzwerkzugriff via MySQL ist ausgeschlossen. So bleibt administrativer Zugriff bewusst punktuell, lokal und zeitlich limitiert, w\u00e4hrend der Datenbankserver im&hellip;","_links":{"self":[{"href":"https:\/\/speefak.spdns.de\/oss_lifestyle\/wp-json\/wp\/v2\/posts\/8606","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/speefak.spdns.de\/oss_lifestyle\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/speefak.spdns.de\/oss_lifestyle\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/speefak.spdns.de\/oss_lifestyle\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/speefak.spdns.de\/oss_lifestyle\/wp-json\/wp\/v2\/comments?post=8606"}],"version-history":[{"count":0,"href":"https:\/\/speefak.spdns.de\/oss_lifestyle\/wp-json\/wp\/v2\/posts\/8606\/revisions"}],"wp:attachment":[{"href":"https:\/\/speefak.spdns.de\/oss_lifestyle\/wp-json\/wp\/v2\/media?parent=8606"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/speefak.spdns.de\/oss_lifestyle\/wp-json\/wp\/v2\/categories?post=8606"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/speefak.spdns.de\/oss_lifestyle\/wp-json\/wp\/v2\/tags?post=8606"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}},{"id":8594,"date":"2026-01-28T19:42:20","date_gmt":"2026-01-28T18:42:20","guid":{"rendered":"https:\/\/speefak.spdns.de\/oss_lifestyle\/?p=8594"},"modified":"2026-03-02T00:13:20","modified_gmt":"2026-03-01T23:13:20","slug":"proxmox-host-verzeichnisse-mit-virtiofs-in-vms-einbinden","status":"publish","type":"post","link":"https:\/\/speefak.spdns.de\/oss_lifestyle\/proxmox-host-verzeichnisse-mit-virtiofs-in-vms-einbinden\/","title":{"rendered":"Proxmox: Host-Verzeichnisse mit Virtiofs in VMs einbinden"},"content":{"rendered":"<p>Virtiofs ist eine moderne und performante Methode, um Verzeichnisse direkt vom Proxmox-Host in virtuelle Maschinen einzubinden. Im Gegensatz zu klassischen Netzwerkdateisystemen wie NFS oder SSHFS erfolgt der Zugriff lokal \u00fcber den Hypervisor, ohne Netzwerk-Stack und ohne zus\u00e4tzliche Dienste. Dadurch eignet sich virtiofs besonders f\u00fcr High-Performance-Dateifreigaben zwischen Host und VM,\u00a0in denen hoher Datendurchsatz, geringe Latenz und eine klare Rechteverwaltung erforderlich sind, etwa bei Videoaufzeichnungen, Datenbanken oder Medienarchiven.<\/p>\n<hr \/>\n<h2>1. Grundprinzip von virtiofs<\/h2>\n<p>Virtiofs arbeitet strikt POSIX-konform:<\/p>\n<ul>\n<li>Benutzer- und Gruppen-IDs (UID\/GID) werden <strong>numerisch 1:1<\/strong> vom Host in die VM durchgereicht<\/li>\n<li>Es findet <strong>kein User- oder ID-Mapping<\/strong> statt<\/li>\n<li>Dateirechte und Benutzer werden <strong>ausschlie\u00dflich auf dem Host<\/strong> definiert und von der VM \u00fcbernommen<\/li>\n<li>Mount-Optionen wie <code>uid=<\/code>, <code>gid=<\/code> oder <code>allow_other<\/code> werden ignoriert<\/li>\n<\/ul>\n<p>Das bedeutet: Stimmen UID\/GID zwischen Host und VM nicht exakt \u00fcberein, ist Schreiben im Gast nicht m\u00f6glich.<\/p>\n<hr \/>\n<h2>2. Host vorbereiten<\/h2>\n<h3>2.1 Host-Verzeichnis<\/h3>\n<p>F\u00fcr die Nutzung von Virtio-FS ist eine eindeutige Trennung zwischen dem Verzeichnis auf dem Proxmox-Host und dem Mountpunkt innerhalb der virtuellen Maschine erforderlich. Das Verzeichnis befindet sich physisch auf dem Host, entweder auf einem lokalen Datentr\u00e4ger oder auf einem eingebundenen Storage, und dient als Quelle der Virtio-FS-Freigabe. S\u00e4mtliche Zugriffsrechte, Eigent\u00fcmer und Gruppen werden ausschlie\u00dflich an diesem Ort definiert und unver\u00e4ndert an die virtuelle Maschine weitergereicht.<\/p><!-- Urvanov Syntax Highlighter v2.9.1 -->\r\n\n\t\t<div id=\"urvanov-syntax-highlighter-6a6c6333f35c8087687063\" class=\"urvanov-syntax-highlighter-syntax crayon-theme-classic urvanov-syntax-highlighter-font-monaco urvanov-syntax-highlighter-os-pc print-yes notranslate\" data-settings=\" minimize scroll-mouseover\" style=\" margin-top: 12px; margin-bottom: 12px; font-size: 12px !important; line-height: 15px !important;\">\n\t\t\n\t\t\t<div class=\"crayon-toolbar\" data-settings=\" mouseover overlay hide delay\" style=\"font-size: 12px !important;height: 18px !important; line-height: 18px !important;\"><span class=\"crayon-title\"><\/span>\n\t\t\t<div class=\"crayon-tools\" style=\"font-size: 12px !important;height: 18px !important; line-height: 18px !important;\"><div class=\"crayon-button urvanov-syntax-highlighter-nums-button\" title=\"Zeilennummern\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-plain-button\" title=\"Unformatierte Code-Ansicht\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-wrap-button\" title=\"Zeilenumbruch umschalten\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-expand-button\" title=\"Code aufklappen\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-copy-button\" title=\"Copy\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-popup-button\" title=\"Code in einem neuen Fenster anzeigen\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><\/div><\/div>\n\t\t\t<div class=\"crayon-info\" style=\"min-height: 16.8px !important; line-height: 16.8px !important;\"><\/div>\n\t\t\t<div class=\"urvanov-syntax-highlighter-plain-wrap\"><textarea wrap=\"soft\" class=\"urvanov-syntax-highlighter-plain print-no\" data-settings=\"dblclick\" readonly style=\"-moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4; font-size: 12px !important; line-height: 15px !important;\">\n\/mnt\/proxmox-host-dir<\/textarea><\/div>\n\t\t\t<div class=\"urvanov-syntax-highlighter-main\" style=\"\">\n\t\t\t\t<table class=\"crayon-table\">\n\t\t\t\t\t<tr class=\"urvanov-syntax-highlighter-row\">\n\t\t\t\t<td class=\"crayon-nums \" data-settings=\"show\">\n\t\t\t\t\t<div class=\"urvanov-syntax-highlighter-nums-content\" style=\"font-size: 12px !important; line-height: 15px !important;\"><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35c8087687063-1\">1<\/div><\/div>\n\t\t\t\t<\/td>\n\t\t\t\t\t\t<td class=\"urvanov-syntax-highlighter-code\"><div class=\"crayon-pre\" style=\"font-size: 12px !important; line-height: 15px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;\"><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35c8087687063-1\"><span class=\"crayon-o\">\/<\/span><span class=\"crayon-v\">mnt<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-v\">proxmox<\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-v\">host<\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-v\">dir<\/span><\/div><\/div><\/td>\n\t\t\t\t\t<\/tr>\n\t\t\t\t<\/table>\n\t\t\t<\/div>\n\t\t<\/div>\r\n<!-- [Format Time: 0.0001 seconds] -->\r\n<p><\/p>\n<hr \/>\n<h3>2.2 Benutzer und Gruppen<\/h3>\n<p data-start=\"40\" data-end=\"672\">Der Benutzer, der innerhalb der virtuellen Maschine Schreibzugriff auf das \u00fcber virtiofs eingebundene Verzeichnis erhalten soll, muss auf dem Proxmox-Host mit identischer Benutzerkennung (UID) und Gruppenzugeh\u00f6rigkeit (GID) vorhanden sein. virtiofs f\u00fchrt keine \u00dcbersetzung oder Abbildung von Benutzer- und Gruppenkennungen durch, sondern reicht diese unver\u00e4ndert vom Gast an den Host weiter. Abweichende UIDs oder GIDs f\u00fchren dazu, dass Zugriffe aus der VM auf Host-Ebene als fremder oder nicht existenter Benutzer interpretiert werden, was in der Praxis zu fehlenden Schreibrechten oder unerwarteten Zugriffsverweigerungen f\u00fchrt.<\/p>\n<p data-start=\"679\" data-end=\"950\" data-is-last-node=\"\">Aus diesem Grund ist sicherzustellen, dass die relevanten Benutzer und Gruppen auf Host und virtueller Maschine identische numerische IDs besitzen und dass das freigegebene Host-Verzeichnis die entsprechenden Zugriffsrechte entsprechend dieser IDs aufweist.<\/p>\n<ul>\n<li>Vorhandene Benutzer und Gruppen k\u00f6nnen \u00fcberpr\u00fcft werden:<\/li>\n<\/ul>\n<p><\/p><!-- Urvanov Syntax Highlighter v2.9.1 -->\r\n\n\t\t<div id=\"urvanov-syntax-highlighter-6a6c6333f35d1877796083\" class=\"urvanov-syntax-highlighter-syntax crayon-theme-classic urvanov-syntax-highlighter-font-monaco urvanov-syntax-highlighter-os-pc print-yes notranslate\" data-settings=\" minimize scroll-mouseover\" style=\" margin-top: 12px; margin-bottom: 12px; font-size: 12px !important; line-height: 15px !important;\">\n\t\t\n\t\t\t<div class=\"crayon-toolbar\" data-settings=\" mouseover overlay hide delay\" style=\"font-size: 12px !important;height: 18px !important; line-height: 18px !important;\"><span class=\"crayon-title\"><\/span>\n\t\t\t<div class=\"crayon-tools\" style=\"font-size: 12px !important;height: 18px !important; line-height: 18px !important;\"><div class=\"crayon-button urvanov-syntax-highlighter-nums-button\" title=\"Zeilennummern\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-plain-button\" title=\"Unformatierte Code-Ansicht\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-wrap-button\" title=\"Zeilenumbruch umschalten\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-expand-button\" title=\"Code aufklappen\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-copy-button\" title=\"Copy\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-popup-button\" title=\"Code in einem neuen Fenster anzeigen\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><\/div><\/div>\n\t\t\t<div class=\"crayon-info\" style=\"min-height: 16.8px !important; line-height: 16.8px !important;\"><\/div>\n\t\t\t<div class=\"urvanov-syntax-highlighter-plain-wrap\"><textarea wrap=\"soft\" class=\"urvanov-syntax-highlighter-plain print-no\" data-settings=\"dblclick\" readonly style=\"-moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4; font-size: 12px !important; line-height: 15px !important;\">\ngetent passwd vuser\r\ngetent group vuser<\/textarea><\/div>\n\t\t\t<div class=\"urvanov-syntax-highlighter-main\" style=\"\">\n\t\t\t\t<table class=\"crayon-table\">\n\t\t\t\t\t<tr class=\"urvanov-syntax-highlighter-row\">\n\t\t\t\t<td class=\"crayon-nums \" data-settings=\"show\">\n\t\t\t\t\t<div class=\"urvanov-syntax-highlighter-nums-content\" style=\"font-size: 12px !important; line-height: 15px !important;\"><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d1877796083-1\">1<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d1877796083-2\">2<\/div><\/div>\n\t\t\t\t<\/td>\n\t\t\t\t\t\t<td class=\"urvanov-syntax-highlighter-code\"><div class=\"crayon-pre\" style=\"font-size: 12px !important; line-height: 15px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;\"><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d1877796083-1\"><span class=\"crayon-e\">getent <\/span><span class=\"crayon-e\">passwd <\/span><span class=\"crayon-e\">vuser<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d1877796083-2\"><span class=\"crayon-e\">getent <\/span><span class=\"crayon-e\">group <\/span><span class=\"crayon-v\">vuser<\/span><\/div><\/div><\/td>\n\t\t\t\t\t<\/tr>\n\t\t\t\t<\/table>\n\t\t\t<\/div>\n\t\t<\/div>\r\n<!-- [Format Time: 0.0001 seconds] -->\r\n<p><\/p>\n<ul>\n<li>Falls der Benutzer noch nicht existiert, kann er mit den entsprechenden IDs angelegt werden (ohne Login Shell und Home Verzeichnis):<\/li>\n<\/ul>\n<p><\/p><!-- Urvanov Syntax Highlighter v2.9.1 -->\r\n\n\t\t<div id=\"urvanov-syntax-highlighter-6a6c6333f35d4229878879\" class=\"urvanov-syntax-highlighter-syntax crayon-theme-classic urvanov-syntax-highlighter-font-monaco urvanov-syntax-highlighter-os-pc print-yes notranslate\" data-settings=\" minimize scroll-mouseover\" style=\" margin-top: 12px; margin-bottom: 12px; font-size: 12px !important; line-height: 15px !important;\">\n\t\t\n\t\t\t<div class=\"crayon-toolbar\" data-settings=\" mouseover overlay hide delay\" style=\"font-size: 12px !important;height: 18px !important; line-height: 18px !important;\"><span class=\"crayon-title\"><\/span>\n\t\t\t<div class=\"crayon-tools\" style=\"font-size: 12px !important;height: 18px !important; line-height: 18px !important;\"><div class=\"crayon-button urvanov-syntax-highlighter-nums-button\" title=\"Zeilennummern\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-plain-button\" title=\"Unformatierte Code-Ansicht\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-wrap-button\" title=\"Zeilenumbruch umschalten\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-expand-button\" title=\"Code aufklappen\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-copy-button\" title=\"Copy\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-popup-button\" title=\"Code in einem neuen Fenster anzeigen\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><\/div><\/div>\n\t\t\t<div class=\"crayon-info\" style=\"min-height: 16.8px !important; line-height: 16.8px !important;\"><\/div>\n\t\t\t<div class=\"urvanov-syntax-highlighter-plain-wrap\"><textarea wrap=\"soft\" class=\"urvanov-syntax-highlighter-plain print-no\" data-settings=\"dblclick\" readonly style=\"-moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4; font-size: 12px !important; line-height: 15px !important;\">\nuseradd -u 200 -g 200 -s \/usr\/sbin\/nologin -M vuser\r\ngroupadd -g 200 vuser<\/textarea><\/div>\n\t\t\t<div class=\"urvanov-syntax-highlighter-main\" style=\"\">\n\t\t\t\t<table class=\"crayon-table\">\n\t\t\t\t\t<tr class=\"urvanov-syntax-highlighter-row\">\n\t\t\t\t<td class=\"crayon-nums \" data-settings=\"show\">\n\t\t\t\t\t<div class=\"urvanov-syntax-highlighter-nums-content\" style=\"font-size: 12px !important; line-height: 15px !important;\"><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d4229878879-1\">1<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d4229878879-2\">2<\/div><\/div>\n\t\t\t\t<\/td>\n\t\t\t\t\t\t<td class=\"urvanov-syntax-highlighter-code\"><div class=\"crayon-pre\" style=\"font-size: 12px !important; line-height: 15px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;\"><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d4229878879-1\"><span class=\"crayon-v\">useradd<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-i\">u<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">200<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-i\">g<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">200<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-v\">s<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-v\">usr<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-v\">sbin<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-v\">nologin<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-i\">M<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-e\">vuser<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d4229878879-2\"><span class=\"crayon-v\">groupadd<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-i\">g<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">200<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">vuser<\/span><\/div><\/div><\/td>\n\t\t\t\t\t<\/tr>\n\t\t\t\t<\/table>\n\t\t\t<\/div>\n\t\t<\/div>\r\n<!-- [Format Time: 0.0002 seconds] -->\r\n<p><\/p>\n<ul>\n<li>Falls der Benutzer bereits existiert, k\u00f6nnen UID und GID bei Bedarf angepasst werden:<\/li>\n<\/ul>\n<p><\/p><!-- Urvanov Syntax Highlighter v2.9.1 -->\r\n\n\t\t<div id=\"urvanov-syntax-highlighter-6a6c6333f35d6383946274\" class=\"urvanov-syntax-highlighter-syntax crayon-theme-classic urvanov-syntax-highlighter-font-monaco urvanov-syntax-highlighter-os-pc print-yes notranslate\" data-settings=\" minimize scroll-mouseover\" style=\" margin-top: 12px; margin-bottom: 12px; font-size: 12px !important; line-height: 15px !important;\">\n\t\t\n\t\t\t<div class=\"crayon-toolbar\" data-settings=\" mouseover overlay hide delay\" style=\"font-size: 12px !important;height: 18px !important; line-height: 18px !important;\"><span class=\"crayon-title\"><\/span>\n\t\t\t<div class=\"crayon-tools\" style=\"font-size: 12px !important;height: 18px !important; line-height: 18px !important;\"><span class=\"urvanov-syntax-highlighter-mixed-highlight\" title=\"Enth\u00e4lt verschiedene Sprachen\"><\/span><div class=\"crayon-button urvanov-syntax-highlighter-nums-button\" title=\"Zeilennummern\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-plain-button\" title=\"Unformatierte Code-Ansicht\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-wrap-button\" title=\"Zeilenumbruch umschalten\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-expand-button\" title=\"Code aufklappen\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-copy-button\" title=\"Copy\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-popup-button\" title=\"Code in einem neuen Fenster anzeigen\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><\/div><\/div>\n\t\t\t<div class=\"crayon-info\" style=\"min-height: 16.8px !important; line-height: 16.8px !important;\"><\/div>\n\t\t\t<div class=\"urvanov-syntax-highlighter-plain-wrap\"><textarea wrap=\"soft\" class=\"urvanov-syntax-highlighter-plain print-no\" data-settings=\"dblclick\" readonly style=\"-moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4; font-size: 12px !important; line-height: 15px !important;\">\nusermod -u 200 vuser # UID \u00e4ndern\r\ngroupmod -g 200 vuser # GID \u00e4ndern\r\nchown -R vuser:vuser \/home\/vuser # Besitzrechte aktualisieren\r\n\r\n# Berechtigungen korrigieren. Alte UID und GID (33) an neue IDs (301) systemweit anpassen.\r\nsudo find \/ \\( -user 33 -o -group 33 \\) -not -path \"\/proc\/*\" -not -path \"\/sys\/*\" -not -path \"\/dev\/*\" -exec chown -h 301:301 {} + 2&gt;\/dev\/null<\/textarea><\/div>\n\t\t\t<div class=\"urvanov-syntax-highlighter-main\" style=\"\">\n\t\t\t\t<table class=\"crayon-table\">\n\t\t\t\t\t<tr class=\"urvanov-syntax-highlighter-row\">\n\t\t\t\t<td class=\"crayon-nums \" data-settings=\"show\">\n\t\t\t\t\t<div class=\"urvanov-syntax-highlighter-nums-content\" style=\"font-size: 12px !important; line-height: 15px !important;\"><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d6383946274-1\">1<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d6383946274-2\">2<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d6383946274-3\">3<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d6383946274-4\">4<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d6383946274-5\">5<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d6383946274-6\">6<\/div><\/div>\n\t\t\t\t<\/td>\n\t\t\t\t\t\t<td class=\"urvanov-syntax-highlighter-code\"><div class=\"crayon-pre\" style=\"font-size: 12px !important; line-height: 15px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;\"><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d6383946274-1\"><span class=\"crayon-v\">usermod<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-i\">u<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">200<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-i\">vuser<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-p\"># UID \u00e4ndern<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d6383946274-2\"><span class=\"crayon-v\">groupmod<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-i\">g<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">200<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-i\">vuser<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-p\"># GID \u00e4ndern<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d6383946274-3\"><span class=\"crayon-v\">chown<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-i\">R<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">vuser<\/span><span class=\"crayon-o\">:<\/span><span class=\"crayon-v\">vuser<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-v\">home<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-i\">vuser<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-p\"># Besitzrechte aktualisieren<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d6383946274-4\">&nbsp;<\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d6383946274-5\"><span class=\"crayon-p\"># Berechtigungen korrigieren. Alte UID und GID (33) an neue IDs (301) systemweit anpassen.<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d6383946274-6\"><span class=\"crayon-e\">sudo<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-e\">find<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-sy\">\\<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-i\">user<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">33<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-v\">o<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-i\">group<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">33<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-sy\">\\<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-st\">not<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-i\">path<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"\/proc\/*\"<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-st\">not<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-i\">path<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"\/sys\/*\"<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-st\">not<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-i\">path<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"\/dev\/*\"<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-e\">exec <\/span><span class=\"crayon-v\">chown<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-i\">h<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">301<\/span><span class=\"crayon-o\">:<\/span><span class=\"crayon-cn\">301<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-sy\">{<\/span><span class=\"crayon-sy\">}<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">+<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">2<\/span><span class=\"crayon-o\">&gt;<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-v\">dev<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-t\">null<\/span><\/div><\/div><\/td>\n\t\t\t\t\t<\/tr>\n\t\t\t\t<\/table>\n\t\t\t<\/div>\n\t\t<\/div>\r\n<!-- [Format Time: 0.0038 seconds] -->\r\n<p><\/p>\n<ul>\n<li>Die UID\/GID m\u00fcssen mit dem Host \u00fcbereinstimmen, damit Virtio-FS die Zugriffsrechte korrekt durchreicht.<\/li>\n<li>Das Home-Verzeichnis und die Shell k\u00f6nnen nach Bedarf angepasst werden; f\u00fcr reine Virtio-FS-Nutzung ist ein Login oder Home Verzeichnis nicht erforderlich.<\/li>\n<\/ul>\n<p style=\"text-align: center;\"><span style=\"text-decoration: underline;\"><strong>Script zum Anlegen eines Systemusers:<\/strong><\/span><\/p>\n<p><\/p><!-- Urvanov Syntax Highlighter v2.9.1 -->\r\n\n\t\t<div id=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898\" class=\"urvanov-syntax-highlighter-syntax crayon-theme-classic urvanov-syntax-highlighter-font-monaco urvanov-syntax-highlighter-os-pc print-yes notranslate\" data-settings=\" minimize scroll-mouseover\" style=\" margin-top: 12px; margin-bottom: 12px; font-size: 12px !important; line-height: 15px !important;\">\n\t\t\n\t\t\t<div class=\"crayon-toolbar\" data-settings=\" mouseover overlay hide delay\" style=\"font-size: 12px !important;height: 18px !important; line-height: 18px !important;\"><span class=\"crayon-title\"><\/span>\n\t\t\t<div class=\"crayon-tools\" style=\"font-size: 12px !important;height: 18px !important; line-height: 18px !important;\"><div class=\"crayon-button urvanov-syntax-highlighter-nums-button\" title=\"Zeilennummern\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-plain-button\" title=\"Unformatierte Code-Ansicht\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-wrap-button\" title=\"Zeilenumbruch umschalten\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-expand-button\" title=\"Code aufklappen\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-copy-button\" title=\"Copy\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-popup-button\" title=\"Code in einem neuen Fenster anzeigen\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><\/div><\/div>\n\t\t\t<div class=\"crayon-info\" style=\"min-height: 16.8px !important; line-height: 16.8px !important;\"><\/div>\n\t\t\t<div class=\"urvanov-syntax-highlighter-plain-wrap\"><textarea wrap=\"soft\" class=\"urvanov-syntax-highlighter-plain print-no\" data-settings=\"dblclick\" readonly style=\"-moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4; font-size: 12px !important; line-height: 15px !important;\">\n#!\/usr\/bin\/env bash\r\n#\r\n# Creates a lightweight system user + matching group\r\n# - No home directory (-M)\r\n# - Shell: \/usr\/sbin\/nologin (no login possible)\r\n# - UID and GID are identical\r\n# - Username: vuser + Unix timestamp (seconds)\r\n# - UID range: 300\u2013999 (typical system user range)\r\n# - Scriptname: add-system-user.sh\r\n# - Suppresses useradd warning about UID_MIN\/MAX\r\n#\r\n\r\nset -euo pipefail\r\n\r\n# ==================== CONFIGURATION ====================\r\nMIN_ID=300\r\nMAX_ID=999\r\nDEFAULT_SHELL=\"\/usr\/sbin\/nologin\"\r\nUSER_PREFIX=\"vuser\"\r\nCOMMENT=\"System service user\"\r\n# =========================================================\r\n\r\n# \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\r\n# Check if running as root\r\n# \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\r\n\r\nif [ \"$EUID\" -ne 0 ]; then\r\n    echo \"ERROR: This script must be run as root!\"\r\n    echo \"\"\r\n    echo \"Please run the script with sudo:\"\r\n    echo \"  sudo bash $0\"\r\n    echo \"\"\r\n    exit 1\r\nfi\r\n\r\n# \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\r\n# Functions\r\n# \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\r\n\r\nfind_next_free_id() {\r\n    local start_id=$1\r\n    local id=$start_id\r\n\r\n    while [ $id -le $MAX_ID ]; do\r\n        if ! getent passwd \"$id\" &gt;\/dev\/null 2&gt;&amp;1 &amp;&amp; \\\r\n           ! getent group  \"$id\" &gt;\/dev\/null 2&gt;&amp;1; then\r\n            echo \"$id\"\r\n            return 0\r\n        fi\r\n        ((id++))\r\n    done\r\n\r\n    echo \"Error: No free UID\/GID found between $MIN_ID and $MAX_ID!\" &gt;&amp;2\r\n    exit 1\r\n}\r\n\r\ngenerate_timestamp_suffix() {\r\n    date +%s\r\n}\r\n\r\n# \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\r\n# Main program\r\n# \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\r\n\r\necho \"\u2192 Searching for next free UID\/GID starting from ${MIN_ID} ...\"\r\n\r\nFREE_ID=$(find_next_free_id \"$MIN_ID\")\r\nTIMESTAMP_SUFFIX=$(generate_timestamp_suffix)\r\nUSERNAME=\"${USER_PREFIX}${TIMESTAMP_SUFFIX}\"\r\n\r\n# \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\r\n# Confirmation &amp; edit loop\r\n# \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\r\n\r\nwhile true; do\r\n    echo \"\"\r\n    echo \"Suggested values:\"\r\n    echo \"  Username     : ${USERNAME}\"\r\n    echo \"  UID \/ GID    : ${FREE_ID}\"\r\n    echo \"  Group        : ${USERNAME}\"\r\n    echo \"  Shell        : ${DEFAULT_SHELL}\"\r\n    echo \"  Comment      : ${COMMENT}\"\r\n    echo \"\"\r\n\r\n    read -p \"Proceed with these values?  [y\/n\/c]  \" -n 1 -r choice\r\n    echo\r\n\r\n    case \"$choice\" in\r\n        [Yy])\r\n            echo \"\u2192 Creating user and group ...\"\r\n            break\r\n            ;;\r\n        [Nn])\r\n            echo \"\"\r\n            echo \"Edit values (press Enter to keep current value):\"\r\n            echo \"\"\r\n\r\n            read -e -i \"${USERNAME}\" -p \"Username     [${USERNAME}]: \" input\r\n            [ -n \"$input\" ] &amp;&amp; USERNAME=\"$input\"\r\n\r\n            read -e -i \"${FREE_ID}\" -p \"UID \/ GID    [${FREE_ID}]: \" input\r\n            [ -n \"$input\" ] &amp;&amp; FREE_ID=\"$input\"\r\n\r\n            read -e -i \"${DEFAULT_SHELL}\" -p \"Shell        [${DEFAULT_SHELL}]: \" input\r\n            [ -n \"$input\" ] &amp;&amp; DEFAULT_SHELL=\"$input\"\r\n\r\n            read -e -i \"${COMMENT}\" -p \"Comment      [${COMMENT}]: \" input\r\n            [ -n \"$input\" ] &amp;&amp; COMMENT=\"$input\"\r\n\r\n            continue\r\n            ;;\r\n        [Cc])\r\n            echo \"\u2192 Aborted.\"\r\n            exit 0\r\n            ;;\r\n        *)\r\n            echo \"Invalid input. Please enter y, n or c.\"\r\n            continue\r\n            ;;\r\n    esac\r\ndone\r\n\r\n# \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\r\n# Creation\r\n# \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\r\n\r\necho \"\"\r\necho \"Creating group ${USERNAME} (GID ${FREE_ID}) ...\"\r\n\r\nif ! groupadd -g \"${FREE_ID}\" \"${USERNAME}\"; then\r\n    echo \"Error creating group ${USERNAME} (GID ${FREE_ID})\" &gt;&amp;2\r\n    exit 1\r\nfi\r\n\r\necho \"Creating user ${USERNAME} (UID ${FREE_ID}) ...\"\r\n\r\n# Suppress useradd warning about UID range, but detect real errors\r\nif ! useradd \\\r\n    -u \"${FREE_ID}\" \\\r\n    -g \"${FREE_ID}\" \\\r\n    -s \"${DEFAULT_SHELL}\" \\\r\n    -M \\\r\n    -c \"${COMMENT}\" \\\r\n    \"${USERNAME}\" 2&gt;\/dev\/null; then\r\n\r\n    echo \"\"\r\n    echo \"\u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\"\r\n    echo \"\u2502               ERROR CREATING THE USER                        \u2502\"\r\n    echo \"\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\"\r\n    echo \"Username:   ${USERNAME}\"\r\n    echo \"UID\/GID:    ${FREE_ID}\"\r\n    echo \"\"\r\n    echo \"Possible causes:\"\r\n    echo \"  \u2022 Username already exists\"\r\n    echo \"  \u2022 UID or GID already in use\"\r\n    echo \"  \u2022 Invalid characters in username\"\r\n    echo \"\"\r\n    echo \"Try running the command manually for more details:\"\r\n    echo \"  useradd -u ${FREE_ID} -g ${FREE_ID} -s ${DEFAULT_SHELL} -M -c \\\"${COMMENT}\\\" ${USERNAME}\"\r\n    echo \"\"\r\n\r\n    # Cleanup\r\n    groupdel \"${USERNAME}\" 2&gt;\/dev\/null || true\r\n    exit 1\r\nfi\r\n\r\necho \"\"\r\necho \"========================================\"\r\necho \"         Successfully created!          \"\r\necho \"========================================\"\r\necho \"Username     : ${USERNAME}\"\r\necho \"Group        : ${USERNAME}\"\r\necho \"UID \/ GID    : ${FREE_ID}\"\r\necho \"Shell        : ${DEFAULT_SHELL}\"\r\necho \"Comment      : ${COMMENT}\"\r\necho \"========================================\"\r\necho \"\"\r\n\r\nexit 0<\/textarea><\/div>\n\t\t\t<div class=\"urvanov-syntax-highlighter-main\" style=\" max-height: 165px;\">\n\t\t\t\t<table class=\"crayon-table\">\n\t\t\t\t\t<tr class=\"urvanov-syntax-highlighter-row\">\n\t\t\t\t<td class=\"crayon-nums \" data-settings=\"show\">\n\t\t\t\t\t<div class=\"urvanov-syntax-highlighter-nums-content\" style=\"font-size: 12px !important; line-height: 15px !important;\"><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-1\">1<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-2\">2<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-3\">3<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-4\">4<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-5\">5<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-6\">6<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-7\">7<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-8\">8<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-9\">9<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-10\">10<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-11\">11<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-12\">12<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-13\">13<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-14\">14<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-15\">15<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-16\">16<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-17\">17<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-18\">18<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-19\">19<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-20\">20<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-21\">21<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-22\">22<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-23\">23<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-24\">24<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-25\">25<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-26\">26<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-27\">27<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-28\">28<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-29\">29<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-30\">30<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-31\">31<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-32\">32<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-33\">33<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-34\">34<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-35\">35<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-36\">36<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-37\">37<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-38\">38<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-39\">39<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-40\">40<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-41\">41<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-42\">42<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-43\">43<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-44\">44<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-45\">45<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-46\">46<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-47\">47<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-48\">48<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-49\">49<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-50\">50<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-51\">51<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-52\">52<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-53\">53<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-54\">54<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-55\">55<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-56\">56<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-57\">57<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-58\">58<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-59\">59<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-60\">60<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-61\">61<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-62\">62<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-63\">63<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-64\">64<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-65\">65<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-66\">66<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-67\">67<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-68\">68<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-69\">69<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-70\">70<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-71\">71<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-72\">72<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-73\">73<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-74\">74<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-75\">75<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-76\">76<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-77\">77<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-78\">78<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-79\">79<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-80\">80<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-81\">81<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-82\">82<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-83\">83<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-84\">84<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-85\">85<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-86\">86<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-87\">87<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-88\">88<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-89\">89<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-90\">90<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-91\">91<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-92\">92<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-93\">93<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-94\">94<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-95\">95<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-96\">96<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-97\">97<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-98\">98<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-99\">99<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-100\">100<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-101\">101<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-102\">102<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-103\">103<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-104\">104<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-105\">105<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-106\">106<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-107\">107<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-108\">108<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-109\">109<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-110\">110<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-111\">111<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-112\">112<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-113\">113<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-114\">114<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-115\">115<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-116\">116<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-117\">117<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-118\">118<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-119\">119<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-120\">120<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-121\">121<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-122\">122<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-123\">123<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-124\">124<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-125\">125<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-126\">126<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-127\">127<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-128\">128<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-129\">129<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-130\">130<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-131\">131<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-132\">132<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-133\">133<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-134\">134<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-135\">135<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-136\">136<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-137\">137<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-138\">138<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-139\">139<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-140\">140<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-141\">141<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-142\">142<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-143\">143<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-144\">144<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-145\">145<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-146\">146<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-147\">147<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-148\">148<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-149\">149<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-150\">150<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-151\">151<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-152\">152<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-153\">153<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-154\">154<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-155\">155<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-156\">156<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-157\">157<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-158\">158<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-159\">159<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-160\">160<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-161\">161<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-162\">162<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-163\">163<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-164\">164<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-165\">165<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-166\">166<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-167\">167<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-168\">168<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-169\">169<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-170\">170<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-171\">171<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-172\">172<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-173\">173<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-174\">174<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-175\">175<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-176\">176<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-177\">177<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-178\">178<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-179\">179<\/div><\/div>\n\t\t\t\t<\/td>\n\t\t\t\t\t\t<td class=\"urvanov-syntax-highlighter-code\"><div class=\"crayon-pre\" style=\"font-size: 12px !important; line-height: 15px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;\"><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-1\"><span class=\"crayon-p\">#!\/usr\/bin\/env bash<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-2\"><span class=\"crayon-p\">#<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-3\"><span class=\"crayon-p\"># Creates a lightweight system user + matching group<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-4\"><span class=\"crayon-p\"># - No home directory (-M)<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-5\"><span class=\"crayon-p\"># - Shell: \/usr\/sbin\/nologin (no login possible)<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-6\"><span class=\"crayon-p\"># - UID and GID are identical<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-7\"><span class=\"crayon-p\"># - Username: vuser + Unix timestamp (seconds)<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-8\"><span class=\"crayon-p\"># - UID range: 300\u2013999 (typical system user range)<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-9\"><span class=\"crayon-p\"># - Scriptname: add-system-user.sh<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-10\"><span class=\"crayon-p\"># - Suppresses useradd warning about UID_MIN\/MAX<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-11\"><span class=\"crayon-p\">#<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-12\">&nbsp;<\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-13\"><span class=\"crayon-v\">set<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-e\">euo <\/span><span class=\"crayon-i\">pipefail<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-14\">&nbsp;<\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-15\"><span class=\"crayon-p\"># ==================== CONFIGURATION ====================<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-16\"><span class=\"crayon-v\">MIN_ID<\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-cn\">300<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-17\"><span class=\"crayon-v\">MAX_ID<\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-cn\">999<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-18\"><span class=\"crayon-v\">DEFAULT_SHELL<\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-s\">\"\/usr\/sbin\/nologin\"<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-19\"><span class=\"crayon-v\">USER_PREFIX<\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-s\">\"vuser\"<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-20\"><span class=\"crayon-v\">COMMENT<\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-s\">\"System service user\"<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-21\"><span class=\"crayon-p\"># =========================================================<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-22\">&nbsp;<\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-23\"><span class=\"crayon-p\"># \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-24\"><span class=\"crayon-p\"># Check if running as root<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-25\"><span class=\"crayon-p\"># \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-26\">&nbsp;<\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-27\"><span class=\"crayon-st\">if<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-sy\">[<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"$EUID\"<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-i\">ne<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">0<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-sy\">]<\/span><span class=\"crayon-sy\">;<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-st\">then<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-28\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-i\">echo<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"ERROR: This script must be run as root!\"<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-29\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-i\">echo<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"\"<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-30\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-i\">echo<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"Please run the script with sudo:\"<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-31\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-i\">echo<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"&nbsp;&nbsp;sudo bash $0\"<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-32\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-i\">echo<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"\"<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-33\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-i\">exit<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">1<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-34\"><span class=\"crayon-i\">fi<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-35\">&nbsp;<\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-36\"><span class=\"crayon-p\"># \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-37\"><span class=\"crayon-p\"># Functions<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-38\"><span class=\"crayon-p\"># \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-39\">&nbsp;<\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-40\"><span class=\"crayon-e\">find_next_free_id<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-sy\">{<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-41\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-e\">local <\/span><span class=\"crayon-v\">start_id<\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-sy\">$<\/span><span class=\"crayon-cn\">1<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-42\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-e\">local <\/span><span class=\"crayon-v\">id<\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-sy\">$<\/span><span class=\"crayon-e\">start_id<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-43\">&nbsp;<\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-44\"><span class=\"crayon-e\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-st\">while<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-sy\">[<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-sy\">$<\/span><span class=\"crayon-v\">id<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-i\">le<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-sy\">$<\/span><span class=\"crayon-v\">MAX<\/span><span class=\"crayon-sy\">_<\/span>ID<span class=\"crayon-h\"> <\/span><span class=\"crayon-sy\">]<\/span><span class=\"crayon-sy\">;<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-st\">do<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-45\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-st\">if<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">!<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-e\">getent <\/span><span class=\"crayon-i\">passwd<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"$id\"<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">&gt;<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-v\">dev<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-t\">null<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">2<\/span><span class=\"crayon-o\">&gt;<\/span><span class=\"crayon-o\">&amp;<\/span><span class=\"crayon-cn\">1<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">&amp;&amp;<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-sy\">\\<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-46\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span><span class=\"crayon-o\">!<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-e\">getent <\/span><span class=\"crayon-i\">group<\/span><span class=\"crayon-h\">&nbsp;&nbsp;<\/span><span class=\"crayon-s\">\"$id\"<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">&gt;<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-v\">dev<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-t\">null<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">2<\/span><span class=\"crayon-o\">&gt;<\/span><span class=\"crayon-o\">&amp;<\/span><span class=\"crayon-cn\">1<\/span><span class=\"crayon-sy\">;<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-st\">then<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-47\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-i\">echo<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"$id\"<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-48\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-st\">return<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">0<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-49\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-e\">fi<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-50\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">id<\/span><span class=\"crayon-o\">++<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">)<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-51\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-e\">done<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-52\">&nbsp;<\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-53\"><span class=\"crayon-e\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-i\">echo<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"Error: No free UID\/GID found between $MIN_ID and $MAX_ID!\"<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">&gt;<\/span><span class=\"crayon-o\">&amp;<\/span><span class=\"crayon-cn\">2<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-54\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-i\">exit<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">1<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-55\"><span class=\"crayon-sy\">}<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-56\">&nbsp;<\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-57\"><span class=\"crayon-e\">generate_timestamp_suffix<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-sy\">{<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-58\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-v\">date<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">+<\/span><span class=\"crayon-o\">%<\/span><span class=\"crayon-i\">s<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-59\"><span class=\"crayon-sy\">}<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-60\">&nbsp;<\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-61\"><span class=\"crayon-p\"># \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-62\"><span class=\"crayon-p\"># Main program<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-63\"><span class=\"crayon-p\"># \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-64\">&nbsp;<\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-65\"><span class=\"crayon-i\">echo<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"\u2192 Searching for next free UID\/GID starting from ${MIN_ID} ...\"<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-66\">&nbsp;<\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-67\"><span class=\"crayon-v\">FREE_ID<\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-sy\">$<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">find_next_free<\/span><span class=\"crayon-sy\">_<\/span>id<span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"$MIN_ID\"<\/span><span class=\"crayon-sy\">)<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-68\"><span class=\"crayon-v\">TIMESTAMP_SUFFIX<\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-sy\">$<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">generate_timestamp_suffix<\/span><span class=\"crayon-sy\">)<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-69\"><span class=\"crayon-v\">USERNAME<\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-s\">\"${USER_PREFIX}${TIMESTAMP_SUFFIX}\"<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-70\">&nbsp;<\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-71\"><span class=\"crayon-p\"># \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-72\"><span class=\"crayon-p\"># Confirmation &amp; edit loop<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-73\"><span class=\"crayon-p\"># \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-74\">&nbsp;<\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-75\"><span class=\"crayon-st\">while<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-t\">true<\/span><span class=\"crayon-sy\">;<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-st\">do<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-76\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-i\">echo<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"\"<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-77\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-i\">echo<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"Suggested values:\"<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-78\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-i\">echo<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"&nbsp;&nbsp;Username&nbsp;&nbsp;&nbsp;&nbsp; : ${USERNAME}\"<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-79\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-i\">echo<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"&nbsp;&nbsp;UID \/ GID&nbsp;&nbsp;&nbsp;&nbsp;: ${FREE_ID}\"<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-80\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-i\">echo<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"&nbsp;&nbsp;Group&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;: ${USERNAME}\"<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-81\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-i\">echo<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"&nbsp;&nbsp;Shell&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;: ${DEFAULT_SHELL}\"<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-82\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-i\">echo<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"&nbsp;&nbsp;Comment&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;: ${COMMENT}\"<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-83\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-i\">echo<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"\"<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-84\">&nbsp;<\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-85\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-v\">read<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-i\">p<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"Proceed with these values?&nbsp;&nbsp;[y\/n\/c]&nbsp;&nbsp;\"<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-i\">n<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">1<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-i\">r<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-e\">choice<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-86\"><span class=\"crayon-e\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-e\">echo<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-87\">&nbsp;<\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-88\"><span class=\"crayon-e\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-st\">case<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"$choice\"<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-st\">in<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-89\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-sy\">[<\/span><span class=\"crayon-v\">Yy<\/span><span class=\"crayon-sy\">]<\/span><span class=\"crayon-sy\">)<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-90\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-i\">echo<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"\u2192 Creating user and group ...\"<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-91\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-st\">break<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-92\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-sy\">;<\/span><span class=\"crayon-sy\">;<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-93\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-sy\">[<\/span><span class=\"crayon-v\">Nn<\/span><span class=\"crayon-sy\">]<\/span><span class=\"crayon-sy\">)<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-94\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-i\">echo<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"\"<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-95\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-i\">echo<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"Edit values (press Enter to keep current value):\"<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-96\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-i\">echo<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"\"<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-97\">&nbsp;<\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-98\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-v\">read<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-v\">e<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-i\">i<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"${USERNAME}\"<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-i\">p<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"Username&nbsp;&nbsp;&nbsp;&nbsp; [${USERNAME}]: \"<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-i\">input<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-99\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-sy\">[<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-i\">n<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"$input\"<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-sy\">]<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">&amp;&amp;<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">USERNAME<\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-s\">\"$input\"<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-100\">&nbsp;<\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-101\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-v\">read<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-v\">e<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-i\">i<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"${FREE_ID}\"<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-i\">p<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"UID \/ GID&nbsp;&nbsp;&nbsp;&nbsp;[${FREE_ID}]: \"<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-i\">input<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-102\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-sy\">[<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-i\">n<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"$input\"<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-sy\">]<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">&amp;&amp;<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">FREE_ID<\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-s\">\"$input\"<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-103\">&nbsp;<\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-104\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-v\">read<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-v\">e<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-i\">i<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"${DEFAULT_SHELL}\"<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-i\">p<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"Shell&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[${DEFAULT_SHELL}]: \"<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-i\">input<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-105\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-sy\">[<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-i\">n<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"$input\"<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-sy\">]<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">&amp;&amp;<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">DEFAULT_SHELL<\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-s\">\"$input\"<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-106\">&nbsp;<\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-107\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-v\">read<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-v\">e<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-i\">i<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"${COMMENT}\"<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-i\">p<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"Comment&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[${COMMENT}]: \"<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-i\">input<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-108\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-sy\">[<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-i\">n<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"$input\"<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-sy\">]<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">&amp;&amp;<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">COMMENT<\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-s\">\"$input\"<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-109\">&nbsp;<\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-110\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-st\">continue<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-111\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-sy\">;<\/span><span class=\"crayon-sy\">;<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-112\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-sy\">[<\/span><span class=\"crayon-v\">Cc<\/span><span class=\"crayon-sy\">]<\/span><span class=\"crayon-sy\">)<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-113\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-i\">echo<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"\u2192 Aborted.\"<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-114\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-i\">exit<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">0<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-115\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-sy\">;<\/span><span class=\"crayon-sy\">;<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-116\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-o\">*<\/span><span class=\"crayon-sy\">)<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-117\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-i\">echo<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"Invalid input. Please enter y, n or c.\"<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-118\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-st\">continue<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-119\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-sy\">;<\/span><span class=\"crayon-sy\">;<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-120\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-e\">esac<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-121\"><span class=\"crayon-i\">done<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-122\">&nbsp;<\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-123\"><span class=\"crayon-p\"># \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-124\"><span class=\"crayon-p\"># Creation<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-125\"><span class=\"crayon-p\"># \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-126\">&nbsp;<\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-127\"><span class=\"crayon-i\">echo<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"\"<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-128\"><span class=\"crayon-i\">echo<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"Creating group ${USERNAME} (GID ${FREE_ID}) ...\"<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-129\">&nbsp;<\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-130\"><span class=\"crayon-st\">if<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">!<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">groupadd<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-i\">g<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"${FREE_ID}\"<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"${USERNAME}\"<\/span><span class=\"crayon-sy\">;<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-st\">then<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-131\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-i\">echo<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"Error creating group ${USERNAME} (GID ${FREE_ID})\"<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">&gt;<\/span><span class=\"crayon-o\">&amp;<\/span><span class=\"crayon-cn\">2<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-132\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-i\">exit<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">1<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-133\"><span class=\"crayon-e\">fi<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-134\">&nbsp;<\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-135\"><span class=\"crayon-i\">echo<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"Creating user ${USERNAME} (UID ${FREE_ID}) ...\"<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-136\">&nbsp;<\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-137\"><span class=\"crayon-p\"># Suppress useradd warning about UID range, but detect real errors<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-138\"><span class=\"crayon-st\">if<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">!<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-i\">useradd<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-sy\">\\<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-139\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-i\">u<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"${FREE_ID}\"<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-sy\">\\<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-140\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-i\">g<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"${FREE_ID}\"<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-sy\">\\<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-141\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-i\">s<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"${DEFAULT_SHELL}\"<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-sy\">\\<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-142\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-i\">M<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-sy\">\\<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-143\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-i\">c<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"${COMMENT}\"<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-sy\">\\<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-144\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-s\">\"${USERNAME}\"<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">2<\/span><span class=\"crayon-o\">&gt;<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-v\">dev<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-t\">null<\/span><span class=\"crayon-sy\">;<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-st\">then<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-145\">&nbsp;<\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-146\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-i\">echo<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"\"<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-147\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-i\">echo<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"\u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\"<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-148\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-i\">echo<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"\u2502&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ERROR CREATING THE USER&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\u2502\"<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-149\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-i\">echo<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\"<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-150\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-i\">echo<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"Username:&nbsp;&nbsp; ${USERNAME}\"<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-151\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-i\">echo<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"UID\/GID:&nbsp;&nbsp;&nbsp;&nbsp;${FREE_ID}\"<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-152\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-i\">echo<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"\"<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-153\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-i\">echo<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"Possible causes:\"<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-154\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-i\">echo<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"&nbsp;&nbsp;\u2022 Username already exists\"<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-155\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-i\">echo<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"&nbsp;&nbsp;\u2022 UID or GID already in use\"<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-156\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-i\">echo<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"&nbsp;&nbsp;\u2022 Invalid characters in username\"<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-157\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-i\">echo<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"\"<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-158\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-i\">echo<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"Try running the command manually for more details:\"<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-159\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-i\">echo<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"&nbsp;&nbsp;useradd -u ${FREE_ID} -g ${FREE_ID} -s ${DEFAULT_SHELL} -M -c \\\"${COMMENT}\\\" ${USERNAME}\"<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-160\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-i\">echo<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"\"<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-161\">&nbsp;<\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-162\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-p\"># Cleanup<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-163\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-i\">groupdel<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"${USERNAME}\"<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">2<\/span><span class=\"crayon-o\">&gt;<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-v\">dev<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-t\">null<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">||<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-t\">true<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-164\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-i\">exit<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">1<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-165\"><span class=\"crayon-e\">fi<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-166\">&nbsp;<\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-167\"><span class=\"crayon-i\">echo<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"\"<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-168\"><span class=\"crayon-i\">echo<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"========================================\"<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-169\"><span class=\"crayon-i\">echo<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Successfully created!&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\"<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-170\"><span class=\"crayon-i\">echo<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"========================================\"<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-171\"><span class=\"crayon-i\">echo<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"Username&nbsp;&nbsp;&nbsp;&nbsp; : ${USERNAME}\"<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-172\"><span class=\"crayon-i\">echo<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"Group&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;: ${USERNAME}\"<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-173\"><span class=\"crayon-i\">echo<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"UID \/ GID&nbsp;&nbsp;&nbsp;&nbsp;: ${FREE_ID}\"<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-174\"><span class=\"crayon-i\">echo<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"Shell&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;: ${DEFAULT_SHELL}\"<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-175\"><span class=\"crayon-i\">echo<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"Comment&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;: ${COMMENT}\"<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-176\"><span class=\"crayon-i\">echo<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"========================================\"<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-177\"><span class=\"crayon-i\">echo<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"\"<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-178\">&nbsp;<\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35d9811937898-179\"><span class=\"crayon-i\">exit<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">0<\/span><\/div><\/div><\/td>\n\t\t\t\t\t<\/tr>\n\t\t\t\t<\/table>\n\t\t\t<\/div>\n\t\t<\/div>\r\n<!-- [Format Time: 0.0025 seconds] -->\r\n<p><\/p>\n<p style=\"text-align: center;\"><strong>Script zum \u00e4ndern von User und Gruppen IDs und systemweite korrektor der Dateirechte:<\/strong><\/p>\n<p><\/p><!-- Urvanov Syntax Highlighter v2.9.1 -->\r\n\n\t\t<div id=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899\" class=\"urvanov-syntax-highlighter-syntax crayon-theme-classic urvanov-syntax-highlighter-font-monaco urvanov-syntax-highlighter-os-pc print-yes notranslate\" data-settings=\" minimize scroll-mouseover\" style=\" margin-top: 12px; margin-bottom: 12px; font-size: 12px !important; line-height: 15px !important;\">\n\t\t\n\t\t\t<div class=\"crayon-toolbar\" data-settings=\" mouseover overlay hide delay\" style=\"font-size: 12px !important;height: 18px !important; line-height: 18px !important;\"><span class=\"crayon-title\"><\/span>\n\t\t\t<div class=\"crayon-tools\" style=\"font-size: 12px !important;height: 18px !important; line-height: 18px !important;\"><span class=\"urvanov-syntax-highlighter-mixed-highlight\" title=\"Enth\u00e4lt verschiedene Sprachen\"><\/span><div class=\"crayon-button urvanov-syntax-highlighter-nums-button\" title=\"Zeilennummern\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-plain-button\" title=\"Unformatierte Code-Ansicht\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-wrap-button\" title=\"Zeilenumbruch umschalten\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-expand-button\" title=\"Code aufklappen\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-copy-button\" title=\"Copy\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-popup-button\" title=\"Code in einem neuen Fenster anzeigen\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><\/div><\/div>\n\t\t\t<div class=\"crayon-info\" style=\"min-height: 16.8px !important; line-height: 16.8px !important;\"><\/div>\n\t\t\t<div class=\"urvanov-syntax-highlighter-plain-wrap\"><textarea wrap=\"soft\" class=\"urvanov-syntax-highlighter-plain print-no\" data-settings=\"dblclick\" readonly style=\"-moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4; font-size: 12px !important; line-height: 15px !important;\">\n#!\/usr\/bin\/env bash\r\n#\r\n# - Interactive user selection (UID &lt; 1000)\r\n# - UID and GID are set to the same value\r\n# - Automatically updates all matching files\r\n#\r\n# WARNING:\r\n# Can break services \u2013 backup \/etc\/passwd and \/etc\/group first!\r\n# Restart affected services after execution.\r\n# \r\n# Script name: change-uid-gid.sh\r\n#\r\n\r\nset -euo pipefail\r\n\r\n# -------------------------------------------------------\r\n# 1. Root check\r\n# -------------------------------------------------------\r\nif [ \"$EUID\" -ne 0 ]; then\r\n    echo \"ERROR: This script must be run as root!\"\r\n    echo \"       sudo bash $0\"\r\n    exit 1\r\nfi\r\n\r\necho \"\"\r\necho \"=== UID \/ GID Change Script ===\"\r\necho \"WARNING: This operation can break services and applications!\"\r\necho \"         Backup recommended (e.g. cp \/etc\/passwd \/etc\/passwd.bak)\"\r\necho \"\"\r\n\r\n# -------------------------------------------------------\r\n# 2. Select user \u2013 all with UID &lt; 1000\r\n# -------------------------------------------------------\r\necho \"Available users (UID &lt; 1000):\"\r\necho \"------------------------------------------------\"\r\n\r\nPS3=\"Select a user (enter number): \"\r\n\r\n# List all users with UID &lt; 1000 (excluding some special pseudo-accounts)\r\nmapfile -t users &lt; &lt;(awk -F: '$3 &lt; 1000 &amp;&amp; $3 &gt;= 0 &amp;&amp; $7 !~ \/(sync|halt|shutdown)$\/ {print $1}' \/etc\/passwd | sort -u)\r\n\r\nif [ ${#users[@]} -eq 0 ]; then\r\n    echo \"No users with UID &lt; 1000 found.\"\r\n    exit 1\r\nfi\r\n\r\nselect username in \"${users[@]}\"; do\r\n    if [[ -n \"$username\" ]]; then\r\n        break\r\n    fi\r\n    echo \"Invalid selection, please try again.\"\r\ndone\r\n\r\n# Get current UID \/ GID\r\nold_uid=$(id -u \"$username\" 2&gt;\/dev\/null || echo \"not found\")\r\nold_gid=$(id -g \"$username\" 2&gt;\/dev\/null || echo \"not found\")\r\n\r\necho \"\"\r\necho \"Selected user:   $username\"\r\necho \"Current UID:     $old_uid\"\r\necho \"Current GID:     $old_gid\"\r\necho \"\"\r\n\r\n# -------------------------------------------------------\r\n# 3. Ask for new UID\r\n# -------------------------------------------------------\r\nwhile true; do\r\n    read -p \"Enter new UID (GID will be set to the same value): \" new_uid\r\n\r\n    # Check if it's a number\r\n    if ! [[ \"$new_uid\" =~ ^[0-9]+$ ]]; then\r\n        echo \"\u2192 Only numbers allowed!\"\r\n        continue\r\n    fi\r\n\r\n    # Check if already in use (except for the current user itself)\r\n    if getent passwd \"$new_uid\" &gt;\/dev\/null 2&gt;&amp;1 &amp;&amp; [ \"$new_uid\" != \"$old_uid\" ]; then\r\n        echo \"\u2192 UID $new_uid is already in use!\"\r\n        continue\r\n    fi\r\n    if getent group \"$new_uid\" &gt;\/dev\/null 2&gt;&amp;1 &amp;&amp; [ \"$new_uid\" != \"$old_gid\" ]; then\r\n        echo \"\u2192 GID $new_uid is already in use!\"\r\n        continue\r\n    fi\r\n\r\n    # Confirmation\r\n    read -p \"Really change UID and GID of $username to $new_uid? (y\/N): \" -n 1 confirm\r\n    echo\r\n    if [[ \"$confirm\" =~ ^[Yy]$ ]]; then\r\n        break\r\n    else\r\n        echo \"Aborted.\"\r\n        exit 0\r\n    fi\r\ndone\r\n\r\nnew_gid=\"$new_uid\"\r\n\r\n# -------------------------------------------------------\r\n# 4. Perform changes\r\n# -------------------------------------------------------\r\necho \"\"\r\necho \"Performing changes:\"\r\necho \"  User:        $username\"\r\necho \"  Old UID:     $old_uid  \u2192  New UID: $new_uid\"\r\necho \"  Old GID:     $old_gid  \u2192  New GID: $new_gid\"\r\necho \"\"\r\n\r\n# Change UID\r\necho \"\u2192 usermod -u $new_uid $username\"\r\nusermod -u \"$new_uid\" \"$username\" || { echo \"usermod failed\"; exit 1; }\r\n\r\n# Change GID\r\necho \"\u2192 groupmod -g $new_gid $username\"\r\ngroupmod -g \"$new_gid\" \"$username\" || { echo \"groupmod failed\"; exit 1; }\r\n\r\n# Update user's primary group (if needed)\r\nusermod -g \"$new_gid\" \"$username\" 2&gt;\/dev\/null || true\r\n\r\n# -------------------------------------------------------\r\n# 5. Correct file ownership system-wide\r\n# -------------------------------------------------------\r\necho \"\"\r\necho \"\u2192 Searching and correcting files owned by old UID\/GID ($old_uid \/ $old_gid) ...\"\r\necho \"  (this may take a few minutes depending on your system)\"\r\n\r\nfind \/ \\\r\n    \\( -user \"$old_uid\" -o -group \"$old_gid\" \\) \\\r\n    -not -path \"\/proc\/*\" \\\r\n    -not -path \"\/sys\/*\" \\\r\n    -not -path \"\/dev\/*\" \\\r\n    -exec chown -h \"$new_uid:$new_gid\" {} + 2&gt;\/dev\/null\r\n\r\necho \"\"\r\necho \"Done!\"\r\necho \"\"\r\necho \"Verification:\"\r\necho \"  id $username\"\r\necho \"\"\r\necho \"IMPORTANT:\"\r\necho \"  \u2022 Restart any services that use this user (apache2, nginx, php-fpm, docker, etc.)\"\r\necho \"  \u2022 Example:  systemctl restart apache2\"\r\necho \"  \u2022 Check logs if services fail to start\"\r\necho \"\"\r\n\r\nexit 0<\/textarea><\/div>\n\t\t\t<div class=\"urvanov-syntax-highlighter-main\" style=\" max-height: 180px;\">\n\t\t\t\t<table class=\"crayon-table\">\n\t\t\t\t\t<tr class=\"urvanov-syntax-highlighter-row\">\n\t\t\t\t<td class=\"crayon-nums \" data-settings=\"show\">\n\t\t\t\t\t<div class=\"urvanov-syntax-highlighter-nums-content\" style=\"font-size: 12px !important; line-height: 15px !important;\"><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-1\">1<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-2\">2<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-3\">3<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-4\">4<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-5\">5<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-6\">6<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-7\">7<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-8\">8<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-9\">9<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-10\">10<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-11\">11<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-12\">12<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-13\">13<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-14\">14<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-15\">15<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-16\">16<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-17\">17<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-18\">18<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-19\">19<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-20\">20<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-21\">21<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-22\">22<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-23\">23<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-24\">24<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-25\">25<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-26\">26<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-27\">27<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-28\">28<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-29\">29<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-30\">30<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-31\">31<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-32\">32<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-33\">33<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-34\">34<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-35\">35<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-36\">36<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-37\">37<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-38\">38<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-39\">39<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-40\">40<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-41\">41<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-42\">42<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-43\">43<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-44\">44<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-45\">45<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-46\">46<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-47\">47<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-48\">48<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-49\">49<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-50\">50<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-51\">51<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-52\">52<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-53\">53<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-54\">54<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-55\">55<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-56\">56<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-57\">57<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-58\">58<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-59\">59<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-60\">60<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-61\">61<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-62\">62<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-63\">63<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-64\">64<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-65\">65<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-66\">66<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-67\">67<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-68\">68<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-69\">69<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-70\">70<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-71\">71<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-72\">72<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-73\">73<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-74\">74<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-75\">75<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-76\">76<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-77\">77<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-78\">78<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-79\">79<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-80\">80<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-81\">81<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-82\">82<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-83\">83<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-84\">84<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-85\">85<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-86\">86<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-87\">87<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-88\">88<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-89\">89<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-90\">90<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-91\">91<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-92\">92<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-93\">93<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-94\">94<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-95\">95<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-96\">96<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-97\">97<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-98\">98<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-99\">99<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-100\">100<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-101\">101<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-102\">102<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-103\">103<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-104\">104<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-105\">105<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-106\">106<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-107\">107<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-108\">108<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-109\">109<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-110\">110<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-111\">111<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-112\">112<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-113\">113<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-114\">114<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-115\">115<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-116\">116<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-117\">117<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-118\">118<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-119\">119<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-120\">120<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-121\">121<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-122\">122<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-123\">123<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-124\">124<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-125\">125<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-126\">126<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-127\">127<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-128\">128<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-129\">129<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-130\">130<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-131\">131<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-132\">132<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-133\">133<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-134\">134<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-135\">135<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-136\">136<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-137\">137<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-138\">138<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-139\">139<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-140\">140<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-141\">141<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-142\">142<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-143\">143<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-144\">144<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-145\">145<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-146\">146<\/div><\/div>\n\t\t\t\t<\/td>\n\t\t\t\t\t\t<td class=\"urvanov-syntax-highlighter-code\"><div class=\"crayon-pre\" style=\"font-size: 12px !important; line-height: 15px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;\"><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-1\"><span class=\"crayon-p\">#!\/usr\/bin\/env bash<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-2\"><span class=\"crayon-p\">#<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-3\"><span class=\"crayon-p\"># - Interactive user selection (UID &lt; 1000)<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-4\"><span class=\"crayon-p\"># - UID and GID are set to the same value<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-5\"><span class=\"crayon-p\"># - Automatically updates all matching files<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-6\"><span class=\"crayon-p\">#<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-7\"><span class=\"crayon-p\"># WARNING:<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-8\"><span class=\"crayon-p\"># Can break services \u2013 backup \/etc\/passwd and \/etc\/group first!<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-9\"><span class=\"crayon-p\"># Restart affected services after execution.<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-10\"><span class=\"crayon-p\"># <\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-11\"><span class=\"crayon-p\"># Script name: change-uid-gid.sh<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-12\"><span class=\"crayon-p\">#<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-13\">&nbsp;<\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-14\"><span class=\"crayon-v\">set<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-e\">euo <\/span><span class=\"crayon-i\">pipefail<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-15\">&nbsp;<\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-16\"><span class=\"crayon-p\"># -------------------------------------------------------<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-17\"><span class=\"crayon-p\"># 1. Root check<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-18\"><span class=\"crayon-p\"># -------------------------------------------------------<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-19\"><span class=\"crayon-st\">if<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-sy\">[<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"$EUID\"<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-i\">ne<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">0<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-sy\">]<\/span><span class=\"crayon-sy\">;<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-st\">then<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-20\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-i\">echo<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"ERROR: This script must be run as root!\"<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-21\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-i\">echo<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sudo bash $0\"<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-22\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-i\">exit<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">1<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-23\"><span class=\"crayon-e\">fi<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-24\">&nbsp;<\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-25\"><span class=\"crayon-i\">echo<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"\"<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-26\"><span class=\"crayon-i\">echo<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"=== UID \/ GID Change Script ===\"<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-27\"><span class=\"crayon-i\">echo<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"WARNING: This operation can break services and applications!\"<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-28\"><span class=\"crayon-i\">echo<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Backup recommended (e.g. cp \/etc\/passwd \/etc\/passwd.bak)\"<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-29\"><span class=\"crayon-i\">echo<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"\"<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-30\">&nbsp;<\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-31\"><span class=\"crayon-p\"># -------------------------------------------------------<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-32\"><span class=\"crayon-p\"># 2. Select user \u2013 all with UID &lt; 1000<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-33\"><span class=\"crayon-p\"># -------------------------------------------------------<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-34\"><span class=\"crayon-i\">echo<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"Available users (UID &lt; 1000):\"<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-35\"><span class=\"crayon-i\">echo<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"------------------------------------------------\"<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-36\">&nbsp;<\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-37\"><span class=\"crayon-v\">PS3<\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-s\">\"Select a user (enter number): \"<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-38\">&nbsp;<\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-39\"><span class=\"crayon-p\"># List all users with UID &lt; 1000 (excluding some special pseudo-accounts)<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-40\"><span class=\"crayon-v\">mapfile<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-i\">t<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">users<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">&lt;<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">&lt;<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">awk<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-v\">F<\/span><span class=\"crayon-o\">:<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">'$3 &lt; 1000 &amp;&amp; $3 &gt;= 0 &amp;&amp; $7 !~ \/(sync|halt|shutdown)$\/ {print $1}'<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-v\">etc<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-v\">passwd<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">|<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">sort<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-v\">u<\/span><span class=\"crayon-sy\">)<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-41\">&nbsp;<\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-42\"><span class=\"crayon-st\">if<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-sy\">[<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-sy\">$<\/span><span class=\"crayon-sy\">{<\/span><span class=\"crayon-p\">#users[@]} -eq 0 ]; then<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-43\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-i\">echo<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"No users with UID &lt; 1000 found.\"<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-44\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-i\">exit<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">1<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-45\"><span class=\"crayon-e\">fi<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-46\">&nbsp;<\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-47\"><span class=\"crayon-e\">select <\/span><span class=\"crayon-e\">username <\/span><span class=\"crayon-st\">in<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"${users[@]}\"<\/span><span class=\"crayon-sy\">;<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-st\">do<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-48\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-st\">if<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-sy\">[<\/span><span class=\"crayon-sy\">[<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-i\">n<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"$username\"<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-sy\">]<\/span><span class=\"crayon-sy\">]<\/span><span class=\"crayon-sy\">;<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-st\">then<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-49\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-st\">break<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-50\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-e\">fi<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-51\"><span class=\"crayon-e\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-i\">echo<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"Invalid selection, please try again.\"<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-52\"><span class=\"crayon-i\">done<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-53\">&nbsp;<\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-54\"><span class=\"crayon-p\"># Get current UID \/ GID<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-55\"><span class=\"crayon-v\">old_uid<\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-sy\">$<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">id<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-i\">u<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"$username\"<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">2<\/span><span class=\"crayon-o\">&gt;<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-v\">dev<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-t\">null<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">||<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-i\">echo<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"not found\"<\/span><span class=\"crayon-sy\">)<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-56\"><span class=\"crayon-v\">old_gid<\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-sy\">$<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">id<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-i\">g<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"$username\"<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">2<\/span><span class=\"crayon-o\">&gt;<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-v\">dev<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-t\">null<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">||<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-i\">echo<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"not found\"<\/span><span class=\"crayon-sy\">)<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-57\">&nbsp;<\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-58\"><span class=\"crayon-i\">echo<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"\"<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-59\"><span class=\"crayon-i\">echo<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"Selected user:&nbsp;&nbsp; $username\"<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-60\"><span class=\"crayon-i\">echo<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"Current UID:&nbsp;&nbsp;&nbsp;&nbsp; $old_uid\"<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-61\"><span class=\"crayon-i\">echo<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"Current GID:&nbsp;&nbsp;&nbsp;&nbsp; $old_gid\"<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-62\"><span class=\"crayon-i\">echo<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"\"<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-63\">&nbsp;<\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-64\"><span class=\"crayon-p\"># -------------------------------------------------------<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-65\"><span class=\"crayon-p\"># 3. Ask for new UID<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-66\"><span class=\"crayon-p\"># -------------------------------------------------------<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-67\"><span class=\"crayon-st\">while<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-t\">true<\/span><span class=\"crayon-sy\">;<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-st\">do<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-68\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-v\">read<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-i\">p<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"Enter new UID (GID will be set to the same value): \"<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">new<\/span><span class=\"crayon-sy\">_<\/span>uid<\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-69\">&nbsp;<\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-70\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-p\"># Check if it's a number<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-71\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-st\">if<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">!<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-sy\">[<\/span><span class=\"crayon-sy\">[<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"$new_uid\"<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-o\">~<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">^<\/span><span class=\"crayon-sy\">[<\/span><span class=\"crayon-cn\">0<\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-cn\">9<\/span><span class=\"crayon-sy\">]<\/span><span class=\"crayon-o\">+<\/span><span class=\"crayon-sy\">$<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-sy\">]<\/span><span class=\"crayon-sy\">]<\/span><span class=\"crayon-sy\">;<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-st\">then<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-72\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-i\">echo<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"\u2192 Only numbers allowed!\"<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-73\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-st\">continue<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-74\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-i\">fi<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-75\">&nbsp;<\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-76\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-p\"># Check if already in use (except for the current user itself)<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-77\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-st\">if<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-e\">getent <\/span><span class=\"crayon-i\">passwd<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"$new_uid\"<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">&gt;<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-v\">dev<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-t\">null<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">2<\/span><span class=\"crayon-o\">&gt;<\/span><span class=\"crayon-o\">&amp;<\/span><span class=\"crayon-cn\">1<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">&amp;&amp;<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-sy\">[<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"$new_uid\"<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">!=<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"$old_uid\"<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-sy\">]<\/span><span class=\"crayon-sy\">;<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-st\">then<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-78\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-i\">echo<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"\u2192 UID $new_uid is already in use!\"<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-79\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-st\">continue<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-80\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-e\">fi<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-81\"><span class=\"crayon-e\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-st\">if<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-e\">getent <\/span><span class=\"crayon-i\">group<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"$new_uid\"<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">&gt;<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-v\">dev<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-t\">null<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">2<\/span><span class=\"crayon-o\">&gt;<\/span><span class=\"crayon-o\">&amp;<\/span><span class=\"crayon-cn\">1<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">&amp;&amp;<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-sy\">[<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"$new_uid\"<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">!=<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"$old_gid\"<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-sy\">]<\/span><span class=\"crayon-sy\">;<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-st\">then<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-82\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-i\">echo<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"\u2192 GID $new_uid is already in use!\"<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-83\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-st\">continue<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-84\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-i\">fi<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-85\">&nbsp;<\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-86\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-p\"># Confirmation<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-87\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-v\">read<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-i\">p<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"Really change UID and GID of $username to $new_uid? (y\/N): \"<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-i\">n<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">1<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-e\">confirm<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-88\"><span class=\"crayon-e\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-e\">echo<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-89\"><span class=\"crayon-e\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-st\">if<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-sy\">[<\/span><span class=\"crayon-sy\">[<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"$confirm\"<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-o\">~<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">^<\/span><span class=\"crayon-sy\">[<\/span><span class=\"crayon-v\">Yy<\/span><span class=\"crayon-sy\">]<\/span><span class=\"crayon-sy\">$<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-sy\">]<\/span><span class=\"crayon-sy\">]<\/span><span class=\"crayon-sy\">;<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-st\">then<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-90\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-st\">break<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-91\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-st\">else<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-92\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-i\">echo<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"Aborted.\"<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-93\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-i\">exit<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">0<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-94\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-e\">fi<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-95\"><span class=\"crayon-e\">done<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-96\">&nbsp;<\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-97\"><span class=\"crayon-v\">new_gid<\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-s\">\"$new_uid\"<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-98\">&nbsp;<\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-99\"><span class=\"crayon-p\"># -------------------------------------------------------<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-100\"><span class=\"crayon-p\"># 4. Perform changes<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-101\"><span class=\"crayon-p\"># -------------------------------------------------------<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-102\"><span class=\"crayon-i\">echo<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"\"<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-103\"><span class=\"crayon-i\">echo<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"Performing changes:\"<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-104\"><span class=\"crayon-i\">echo<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"&nbsp;&nbsp;User:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$username\"<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-105\"><span class=\"crayon-i\">echo<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"&nbsp;&nbsp;Old UID:&nbsp;&nbsp;&nbsp;&nbsp; $old_uid&nbsp;&nbsp;\u2192&nbsp;&nbsp;New UID: $new_uid\"<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-106\"><span class=\"crayon-i\">echo<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"&nbsp;&nbsp;Old GID:&nbsp;&nbsp;&nbsp;&nbsp; $old_gid&nbsp;&nbsp;\u2192&nbsp;&nbsp;New GID: $new_gid\"<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-107\"><span class=\"crayon-i\">echo<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"\"<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-108\">&nbsp;<\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-109\"><span class=\"crayon-p\"># Change UID<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-110\"><span class=\"crayon-i\">echo<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"\u2192 usermod -u $new_uid $username\"<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-111\"><span class=\"crayon-v\">usermod<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-i\">u<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"$new_uid\"<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"$username\"<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">||<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-sy\">{<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-i\">echo<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"usermod failed\"<\/span><span class=\"crayon-sy\">;<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-i\">exit<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">1<\/span><span class=\"crayon-sy\">;<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-sy\">}<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-112\">&nbsp;<\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-113\"><span class=\"crayon-p\"># Change GID<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-114\"><span class=\"crayon-i\">echo<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"\u2192 groupmod -g $new_gid $username\"<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-115\"><span class=\"crayon-v\">groupmod<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-i\">g<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"$new_gid\"<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"$username\"<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">||<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-sy\">{<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-i\">echo<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"groupmod failed\"<\/span><span class=\"crayon-sy\">;<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-i\">exit<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">1<\/span><span class=\"crayon-sy\">;<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-sy\">}<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-116\">&nbsp;<\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-117\"><span class=\"crayon-p\"># Update user's primary group (if needed)<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-118\"><span class=\"crayon-v\">usermod<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-i\">g<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"$new_gid\"<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"$username\"<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">2<\/span><span class=\"crayon-o\">&gt;<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-v\">dev<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-t\">null<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">||<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-t\">true<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-119\">&nbsp;<\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-120\"><span class=\"crayon-p\"># -------------------------------------------------------<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-121\"><span class=\"crayon-p\"># 5. Correct file ownership system-wide<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-122\"><span class=\"crayon-p\"># -------------------------------------------------------<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-123\"><span class=\"crayon-i\">echo<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"\"<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-124\"><span class=\"crayon-i\">echo<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"\u2192 Searching and correcting files owned by old UID\/GID ($old_uid \/ $old_gid) ...\"<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-125\"><span class=\"crayon-i\">echo<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"&nbsp;&nbsp;(this may take a few minutes depending on your system)\"<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-126\">&nbsp;<\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-127\"><span class=\"crayon-e\">find<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-sy\">\\<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-128\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-sy\">\\<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-i\">user<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"$old_uid\"<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-v\">o<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-i\">group<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"$old_gid\"<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-sy\">\\<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-sy\">\\<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-129\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-st\">not<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-i\">path<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"\/proc\/*\"<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-sy\">\\<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-130\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-st\">not<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-i\">path<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"\/sys\/*\"<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-sy\">\\<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-131\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-st\">not<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-i\">path<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"\/dev\/*\"<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-sy\">\\<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-132\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-e\">exec <\/span><span class=\"crayon-v\">chown<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-i\">h<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"$new_uid:$new_gid\"<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-sy\">{<\/span><span class=\"crayon-sy\">}<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">+<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">2<\/span><span class=\"crayon-o\">&gt;<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-v\">dev<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-t\">null<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-133\">&nbsp;<\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-134\"><span class=\"crayon-i\">echo<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"\"<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-135\"><span class=\"crayon-i\">echo<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"Done!\"<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-136\"><span class=\"crayon-i\">echo<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"\"<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-137\"><span class=\"crayon-i\">echo<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"Verification:\"<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-138\"><span class=\"crayon-i\">echo<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"&nbsp;&nbsp;id $username\"<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-139\"><span class=\"crayon-i\">echo<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"\"<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-140\"><span class=\"crayon-i\">echo<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"IMPORTANT:\"<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-141\"><span class=\"crayon-i\">echo<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"&nbsp;&nbsp;\u2022 Restart any services that use this user (apache2, nginx, php-fpm, docker, etc.)\"<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-142\"><span class=\"crayon-i\">echo<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"&nbsp;&nbsp;\u2022 Example:&nbsp;&nbsp;systemctl restart apache2\"<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-143\"><span class=\"crayon-i\">echo<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"&nbsp;&nbsp;\u2022 Check logs if services fail to start\"<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-144\"><span class=\"crayon-i\">echo<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"\"<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-145\">&nbsp;<\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35dd008179899-146\"><span class=\"crayon-i\">exit<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">0<\/span><\/div><\/div><\/td>\n\t\t\t\t\t<\/tr>\n\t\t\t\t<\/table>\n\t\t\t<\/div>\n\t\t<\/div>\r\n<!-- [Format Time: 0.0021 seconds] -->\r\n<p><\/p>\n<hr \/>\n<h3>2.3 Benutzer und Rechte setzen<\/h3>\n<p><\/p><!-- Urvanov Syntax Highlighter v2.9.1 -->\r\n\n\t\t<div id=\"urvanov-syntax-highlighter-6a6c6333f35e1462062236\" class=\"urvanov-syntax-highlighter-syntax crayon-theme-classic urvanov-syntax-highlighter-font-monaco urvanov-syntax-highlighter-os-pc print-yes notranslate\" data-settings=\" minimize scroll-mouseover\" style=\" margin-top: 12px; margin-bottom: 12px; font-size: 12px !important; line-height: 15px !important;\">\n\t\t\n\t\t\t<div class=\"crayon-toolbar\" data-settings=\" mouseover overlay hide delay\" style=\"font-size: 12px !important;height: 18px !important; line-height: 18px !important;\"><span class=\"crayon-title\"><\/span>\n\t\t\t<div class=\"crayon-tools\" style=\"font-size: 12px !important;height: 18px !important; line-height: 18px !important;\"><div class=\"crayon-button urvanov-syntax-highlighter-nums-button\" title=\"Zeilennummern\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-plain-button\" title=\"Unformatierte Code-Ansicht\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-wrap-button\" title=\"Zeilenumbruch umschalten\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-expand-button\" title=\"Code aufklappen\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-copy-button\" title=\"Copy\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-popup-button\" title=\"Code in einem neuen Fenster anzeigen\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><\/div><\/div>\n\t\t\t<div class=\"crayon-info\" style=\"min-height: 16.8px !important; line-height: 16.8px !important;\"><\/div>\n\t\t\t<div class=\"urvanov-syntax-highlighter-plain-wrap\"><textarea wrap=\"soft\" class=\"urvanov-syntax-highlighter-plain print-no\" data-settings=\"dblclick\" readonly style=\"-moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4; font-size: 12px !important; line-height: 15px !important;\">\nchown -R vuser:vuser \/mnt\/proxmox-host-dir\r\nchmod -R 775 \/mnt\/proxmox-host-dir\r\nchmod g+s \/mnt\/proxmox-host-dir<\/textarea><\/div>\n\t\t\t<div class=\"urvanov-syntax-highlighter-main\" style=\"\">\n\t\t\t\t<table class=\"crayon-table\">\n\t\t\t\t\t<tr class=\"urvanov-syntax-highlighter-row\">\n\t\t\t\t<td class=\"crayon-nums \" data-settings=\"show\">\n\t\t\t\t\t<div class=\"urvanov-syntax-highlighter-nums-content\" style=\"font-size: 12px !important; line-height: 15px !important;\"><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35e1462062236-1\">1<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35e1462062236-2\">2<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35e1462062236-3\">3<\/div><\/div>\n\t\t\t\t<\/td>\n\t\t\t\t\t\t<td class=\"urvanov-syntax-highlighter-code\"><div class=\"crayon-pre\" style=\"font-size: 12px !important; line-height: 15px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;\"><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35e1462062236-1\"><span class=\"crayon-v\">chown<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-i\">R<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">vuser<\/span><span class=\"crayon-o\">:<\/span><span class=\"crayon-v\">vuser<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-v\">mnt<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-v\">proxmox<\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-v\">host<\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-e\">dir<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35e1462062236-2\"><span class=\"crayon-v\">chmod<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-i\">R<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">775<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-v\">mnt<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-v\">proxmox<\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-v\">host<\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-e\">dir<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35e1462062236-3\"><span class=\"crayon-i\">chmod<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">g<\/span><span class=\"crayon-o\">+<\/span><span class=\"crayon-v\">s<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-v\">mnt<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-v\">proxmox<\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-v\">host<\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-v\">dir<\/span><\/div><\/div><\/td>\n\t\t\t\t\t<\/tr>\n\t\t\t\t<\/table>\n\t\t\t<\/div>\n\t\t<\/div>\r\n<!-- [Format Time: 0.0002 seconds] -->\r\n<p><\/p>\n<ul>\n<li>775 erlaubt Schreiben f\u00fcr User und Gruppe<\/li>\n<li>g+s stellt sicher, dass neu angelegte Dateien automatisch die Gruppe behalten<\/li>\n<\/ul>\n<p>Alle \u00fcbergeordneten Verzeichnisse m\u00fcssen mindestens das Execute-Bit (<code>x<\/code>) f\u00fcr die jeweilige Gruppe besitzen.<\/p>\n<hr \/>\n<h2>3 Einrichtung eines Virtio-FS-Ger\u00e4ts in Proxmox (Verzeichnis-Mapping)<\/h2>\n<p data-start=\"175\" data-end=\"526\">Bevor in der VM ein virtiofs-Verzeichnis gemountet werden kann, muss in Proxmox zun\u00e4chst das entsprechende Host-Verzeichnis als virtiofs-Ger\u00e4t erstellt werden. Dazu in der Weboberfl\u00e4che zu <strong data-start=\"273\" data-end=\"312\">Rechenzentrum \u2192 Verzeichnis-Mapping<\/strong> navigieren, dort auf <strong data-start=\"334\" data-end=\"360\">Erstellen \/ Hinzuf\u00fcgen<\/strong> klicken und folgende Felder ausf\u00fcllen und anschlie\u00dfend mit\u00a0<strong data-start=\"752\" data-end=\"765\">Erstellen<\/strong> best\u00e4tigen.<\/p>\n<ul data-start=\"402\" data-end=\"746\">\n<li data-start=\"402\" data-end=\"514\"><strong data-start=\"404\" data-end=\"419\">Name \/ Tag:<\/strong> Eindeutiger Bezeichner, z.\u202fB. <code data-start=\"450\" data-end=\"463\">proxmox-host-dir-name<\/code> (wird sp\u00e4ter in der VM als Mount-Name verwendet)<\/li>\n<li data-start=\"515\" data-end=\"609\"><strong data-start=\"517\" data-end=\"526\">Pfad:<\/strong> Host-Verzeichnis, z.\u202fB. <code data-start=\"551\" data-end=\"607\">\/mnt\/proxmox-host-dir<\/code><\/li>\n<li data-start=\"515\" data-end=\"609\"><strong data-start=\"612\" data-end=\"623\">Knoten:<\/strong> Zielknoten ausw\u00e4hlen<\/li>\n<li data-start=\"515\" data-end=\"609\"><strong data-start=\"649\" data-end=\"663\">Kommentar:<\/strong> optional, z.\u202fB. \u201eFreigabe f\u00fcr Ubuntu-VM\u201c<\/li>\n<li data-start=\"515\" data-end=\"609\">\u00a0<strong data-start=\"709\" data-end=\"737\">ACL \/ Sicherheitsmodell:<\/strong> <code data-start=\"738\" data-end=\"744\">none<\/code><\/li>\n<\/ul>\n<ul>\n<li style=\"list-style-type: none;\"><\/li>\n<\/ul>\n<h4>3.1 Zuweisung des Verzeichnis-Mappings an die VM<\/h4>\n<ul>\n<li>Die gew\u00fcnschte VM ausw\u00e4hlen \u2192 <strong>Hardware \u2192 Hinzuf\u00fcgen \u2192 VirtIO-FS-Ger\u00e4t<\/strong>.<\/li>\n<li>Im Feld <strong>Tag<\/strong> den zuvor definierten Namen des Verzeichnis-Mappings eintragen (<code>proxmox-host-dir-name<\/code>).<\/li>\n<li>Optional: <strong>Nur Lesen<\/strong> aktivieren, falls Schreibzugriff nicht erforderlich ist.<\/li>\n<li>\u00c4nderungen speichern.<\/li>\n<\/ul>\n<p>Dadurch wird das Verzeichnis des Proxmox-Hosts (<code data-start=\"103\" data-end=\"126\">\/mnt\/proxmox-host-dir<\/code>) der virtuellen Maschine unter dem Bezeichner <code data-start=\"173\" data-end=\"196\">proxmox-host-dir-name<\/code> als Mountquelle bereitgestellt.<\/p>\n<hr \/>\n<h2>4. VM vorbereiten<\/h2>\n<h4>4.1 Benutzer anlegen \/ anpassen<\/h4>\n<p>In der virtuellen Maschine muss derselbe Benutzer mit identischer UID und GID wie auf dem Proxmox-Host existieren.<\/p>\n<ul>\n<li>Vorhandene Benutzer und Gruppen k\u00f6nnen \u00fcberpr\u00fcft werden:<\/li>\n<\/ul>\n<p><\/p><!-- Urvanov Syntax Highlighter v2.9.1 -->\r\n\n\t\t<div id=\"urvanov-syntax-highlighter-6a6c6333f35e3678540901\" class=\"urvanov-syntax-highlighter-syntax crayon-theme-classic urvanov-syntax-highlighter-font-monaco urvanov-syntax-highlighter-os-pc print-yes notranslate\" data-settings=\" minimize scroll-mouseover\" style=\" margin-top: 12px; margin-bottom: 12px; font-size: 12px !important; line-height: 15px !important;\">\n\t\t\n\t\t\t<div class=\"crayon-toolbar\" data-settings=\" mouseover overlay hide delay\" style=\"font-size: 12px !important;height: 18px !important; line-height: 18px !important;\"><span class=\"crayon-title\"><\/span>\n\t\t\t<div class=\"crayon-tools\" style=\"font-size: 12px !important;height: 18px !important; line-height: 18px !important;\"><div class=\"crayon-button urvanov-syntax-highlighter-nums-button\" title=\"Zeilennummern\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-plain-button\" title=\"Unformatierte Code-Ansicht\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-wrap-button\" title=\"Zeilenumbruch umschalten\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-expand-button\" title=\"Code aufklappen\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-copy-button\" title=\"Copy\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-popup-button\" title=\"Code in einem neuen Fenster anzeigen\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><\/div><\/div>\n\t\t\t<div class=\"crayon-info\" style=\"min-height: 16.8px !important; line-height: 16.8px !important;\"><\/div>\n\t\t\t<div class=\"urvanov-syntax-highlighter-plain-wrap\"><textarea wrap=\"soft\" class=\"urvanov-syntax-highlighter-plain print-no\" data-settings=\"dblclick\" readonly style=\"-moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4; font-size: 12px !important; line-height: 15px !important;\">\ngetent passwd vuser\r\ngetent group vuser<\/textarea><\/div>\n\t\t\t<div class=\"urvanov-syntax-highlighter-main\" style=\"\">\n\t\t\t\t<table class=\"crayon-table\">\n\t\t\t\t\t<tr class=\"urvanov-syntax-highlighter-row\">\n\t\t\t\t<td class=\"crayon-nums \" data-settings=\"show\">\n\t\t\t\t\t<div class=\"urvanov-syntax-highlighter-nums-content\" style=\"font-size: 12px !important; line-height: 15px !important;\"><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35e3678540901-1\">1<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35e3678540901-2\">2<\/div><\/div>\n\t\t\t\t<\/td>\n\t\t\t\t\t\t<td class=\"urvanov-syntax-highlighter-code\"><div class=\"crayon-pre\" style=\"font-size: 12px !important; line-height: 15px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;\"><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35e3678540901-1\"><span class=\"crayon-e\">getent <\/span><span class=\"crayon-e\">passwd <\/span><span class=\"crayon-e\">vuser<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35e3678540901-2\"><span class=\"crayon-e\">getent <\/span><span class=\"crayon-e\">group <\/span><span class=\"crayon-v\">vuser<\/span><\/div><\/div><\/td>\n\t\t\t\t\t<\/tr>\n\t\t\t\t<\/table>\n\t\t\t<\/div>\n\t\t<\/div>\r\n<!-- [Format Time: 0.0001 seconds] -->\r\n<p><\/p>\n<ul>\n<li>Falls der Benutzer noch nicht existiert, kann er mit den entsprechenden IDs angelegt werden:<\/li>\n<\/ul>\n<p><\/p><!-- Urvanov Syntax Highlighter v2.9.1 -->\r\n\n\t\t<div id=\"urvanov-syntax-highlighter-6a6c6333f35e6950005230\" class=\"urvanov-syntax-highlighter-syntax crayon-theme-classic urvanov-syntax-highlighter-font-monaco urvanov-syntax-highlighter-os-pc print-yes notranslate\" data-settings=\" minimize scroll-mouseover\" style=\" margin-top: 12px; margin-bottom: 12px; font-size: 12px !important; line-height: 15px !important;\">\n\t\t\n\t\t\t<div class=\"crayon-toolbar\" data-settings=\" mouseover overlay hide delay\" style=\"font-size: 12px !important;height: 18px !important; line-height: 18px !important;\"><span class=\"crayon-title\"><\/span>\n\t\t\t<div class=\"crayon-tools\" style=\"font-size: 12px !important;height: 18px !important; line-height: 18px !important;\"><div class=\"crayon-button urvanov-syntax-highlighter-nums-button\" title=\"Zeilennummern\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-plain-button\" title=\"Unformatierte Code-Ansicht\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-wrap-button\" title=\"Zeilenumbruch umschalten\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-expand-button\" title=\"Code aufklappen\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-copy-button\" title=\"Copy\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-popup-button\" title=\"Code in einem neuen Fenster anzeigen\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><\/div><\/div>\n\t\t\t<div class=\"crayon-info\" style=\"min-height: 16.8px !important; line-height: 16.8px !important;\"><\/div>\n\t\t\t<div class=\"urvanov-syntax-highlighter-plain-wrap\"><textarea wrap=\"soft\" class=\"urvanov-syntax-highlighter-plain print-no\" data-settings=\"dblclick\" readonly style=\"-moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4; font-size: 12px !important; line-height: 15px !important;\">\ngroupadd -g 200 vuser\r\nuseradd -u 200 -g 200 -d \/home\/vuser -s \/bin\/bash vuser<\/textarea><\/div>\n\t\t\t<div class=\"urvanov-syntax-highlighter-main\" style=\"\">\n\t\t\t\t<table class=\"crayon-table\">\n\t\t\t\t\t<tr class=\"urvanov-syntax-highlighter-row\">\n\t\t\t\t<td class=\"crayon-nums \" data-settings=\"show\">\n\t\t\t\t\t<div class=\"urvanov-syntax-highlighter-nums-content\" style=\"font-size: 12px !important; line-height: 15px !important;\"><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35e6950005230-1\">1<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35e6950005230-2\">2<\/div><\/div>\n\t\t\t\t<\/td>\n\t\t\t\t\t\t<td class=\"urvanov-syntax-highlighter-code\"><div class=\"crayon-pre\" style=\"font-size: 12px !important; line-height: 15px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;\"><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35e6950005230-1\"><span class=\"crayon-v\">groupadd<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-i\">g<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">200<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-e\">vuser<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35e6950005230-2\"><span class=\"crayon-v\">useradd<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-i\">u<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">200<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-i\">g<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">200<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-v\">d<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-v\">home<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-v\">vuser<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-v\">s<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-v\">bin<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-e\">bash <\/span><span class=\"crayon-v\">vuser<\/span><\/div><\/div><\/td>\n\t\t\t\t\t<\/tr>\n\t\t\t\t<\/table>\n\t\t\t<\/div>\n\t\t<\/div>\r\n<!-- [Format Time: 0.0002 seconds] -->\r\n<p><\/p>\n<ul>\n<li>Falls der Benutzer bereits existiert, k\u00f6nnen UID und GID bei Bedarf angepasst werden:<\/li>\n<\/ul>\n<p><\/p><!-- Urvanov Syntax Highlighter v2.9.1 -->\r\n\n\t\t<div id=\"urvanov-syntax-highlighter-6a6c6333f35e8427552588\" class=\"urvanov-syntax-highlighter-syntax crayon-theme-classic urvanov-syntax-highlighter-font-monaco urvanov-syntax-highlighter-os-pc print-yes notranslate\" data-settings=\" minimize scroll-mouseover\" style=\" margin-top: 12px; margin-bottom: 12px; font-size: 12px !important; line-height: 15px !important;\">\n\t\t\n\t\t\t<div class=\"crayon-toolbar\" data-settings=\" mouseover overlay hide delay\" style=\"font-size: 12px !important;height: 18px !important; line-height: 18px !important;\"><span class=\"crayon-title\"><\/span>\n\t\t\t<div class=\"crayon-tools\" style=\"font-size: 12px !important;height: 18px !important; line-height: 18px !important;\"><div class=\"crayon-button urvanov-syntax-highlighter-nums-button\" title=\"Zeilennummern\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-plain-button\" title=\"Unformatierte Code-Ansicht\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-wrap-button\" title=\"Zeilenumbruch umschalten\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-expand-button\" title=\"Code aufklappen\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-copy-button\" title=\"Copy\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-popup-button\" title=\"Code in einem neuen Fenster anzeigen\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><\/div><\/div>\n\t\t\t<div class=\"crayon-info\" style=\"min-height: 16.8px !important; line-height: 16.8px !important;\"><\/div>\n\t\t\t<div class=\"urvanov-syntax-highlighter-plain-wrap\"><textarea wrap=\"soft\" class=\"urvanov-syntax-highlighter-plain print-no\" data-settings=\"dblclick\" readonly style=\"-moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4; font-size: 12px !important; line-height: 15px !important;\">\nusermod -u 200 vuser       # UID \u00e4ndern\r\ngroupmod -g 200 vuser      # GID \u00e4ndern\r\nchown -R vuser:vuser \/home\/vuser  # Besitzrechte aktualisieren<\/textarea><\/div>\n\t\t\t<div class=\"urvanov-syntax-highlighter-main\" style=\"\">\n\t\t\t\t<table class=\"crayon-table\">\n\t\t\t\t\t<tr class=\"urvanov-syntax-highlighter-row\">\n\t\t\t\t<td class=\"crayon-nums \" data-settings=\"show\">\n\t\t\t\t\t<div class=\"urvanov-syntax-highlighter-nums-content\" style=\"font-size: 12px !important; line-height: 15px !important;\"><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35e8427552588-1\">1<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35e8427552588-2\">2<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35e8427552588-3\">3<\/div><\/div>\n\t\t\t\t<\/td>\n\t\t\t\t\t\t<td class=\"urvanov-syntax-highlighter-code\"><div class=\"crayon-pre\" style=\"font-size: 12px !important; line-height: 15px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;\"><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35e8427552588-1\"><span class=\"crayon-v\">usermod<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-i\">u<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">200<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-i\">vuser<\/span><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span><span class=\"crayon-p\"># UID \u00e4ndern<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35e8427552588-2\"><span class=\"crayon-v\">groupmod<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-i\">g<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">200<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-i\">vuser<\/span><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-p\"># GID \u00e4ndern<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35e8427552588-3\"><span class=\"crayon-v\">chown<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-i\">R<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">vuser<\/span><span class=\"crayon-o\">:<\/span><span class=\"crayon-v\">vuser<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-v\">home<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-i\">vuser<\/span><span class=\"crayon-h\">&nbsp;&nbsp;<\/span><span class=\"crayon-p\"># Besitzrechte aktualisieren<\/span><\/div><\/div><\/td>\n\t\t\t\t\t<\/tr>\n\t\t\t\t<\/table>\n\t\t\t<\/div>\n\t\t<\/div>\r\n<!-- [Format Time: 0.0002 seconds] -->\r\n<p><strong>Hinweise:<\/strong><\/p>\n<ul>\n<li>Die UID\/GID m\u00fcssen mit dem Host \u00fcbereinstimmen, damit Virtio-FS die Zugriffsrechte korrekt durchreicht.<\/li>\n<li>Das Home-Verzeichnis und die Shell k\u00f6nnen nach Bedarf angepasst werden; f\u00fcr reine Virtio-FS-Nutzung ist ein Login nicht zwingend erforderlich.<\/li>\n<\/ul>\n<hr \/>\n<h4>4.2 Mountpunkt in der VM erstellen und \u00fcber fstab beim starten einbinden<\/h4>\n<p>Nachdem der Benutzer mit den entsprechenden UID\/GID in der VM eingerichtet wurde, wird ein Verzeichnis angelegt, das als Ziel f\u00fcr die Virtio-FS-Freigabe vom Host dient. Mit <code data-start=\"285\" data-end=\"295\">mkdir -p<\/code> wird der Mountpunkt einschlie\u00dflich aller \u00fcbergeordneten Verzeichnisse erstellt, falls diese noch nicht existieren<\/p><!-- Urvanov Syntax Highlighter v2.9.1 -->\r\n\n\t\t<div id=\"urvanov-syntax-highlighter-6a6c6333f35eb177462976\" class=\"urvanov-syntax-highlighter-syntax crayon-theme-classic urvanov-syntax-highlighter-font-monaco urvanov-syntax-highlighter-os-pc print-yes notranslate\" data-settings=\" minimize scroll-mouseover\" style=\" margin-top: 12px; margin-bottom: 12px; font-size: 12px !important; line-height: 15px !important;\">\n\t\t\n\t\t\t<div class=\"crayon-toolbar\" data-settings=\" mouseover overlay hide delay\" style=\"font-size: 12px !important;height: 18px !important; line-height: 18px !important;\"><span class=\"crayon-title\"><\/span>\n\t\t\t<div class=\"crayon-tools\" style=\"font-size: 12px !important;height: 18px !important; line-height: 18px !important;\"><div class=\"crayon-button urvanov-syntax-highlighter-nums-button\" title=\"Zeilennummern\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-plain-button\" title=\"Unformatierte Code-Ansicht\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-wrap-button\" title=\"Zeilenumbruch umschalten\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-expand-button\" title=\"Code aufklappen\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-copy-button\" title=\"Copy\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-popup-button\" title=\"Code in einem neuen Fenster anzeigen\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><\/div><\/div>\n\t\t\t<div class=\"crayon-info\" style=\"min-height: 16.8px !important; line-height: 16.8px !important;\"><\/div>\n\t\t\t<div class=\"urvanov-syntax-highlighter-plain-wrap\"><textarea wrap=\"soft\" class=\"urvanov-syntax-highlighter-plain print-no\" data-settings=\"dblclick\" readonly style=\"-moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4; font-size: 12px !important; line-height: 15px !important;\">\nmkdir -p \/mnt\/host-dir<\/textarea><\/div>\n\t\t\t<div class=\"urvanov-syntax-highlighter-main\" style=\"\">\n\t\t\t\t<table class=\"crayon-table\">\n\t\t\t\t\t<tr class=\"urvanov-syntax-highlighter-row\">\n\t\t\t\t<td class=\"crayon-nums \" data-settings=\"show\">\n\t\t\t\t\t<div class=\"urvanov-syntax-highlighter-nums-content\" style=\"font-size: 12px !important; line-height: 15px !important;\"><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35eb177462976-1\">1<\/div><\/div>\n\t\t\t\t<\/td>\n\t\t\t\t\t\t<td class=\"urvanov-syntax-highlighter-code\"><div class=\"crayon-pre\" style=\"font-size: 12px !important; line-height: 15px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;\"><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35eb177462976-1\"><span class=\"crayon-v\">mkdir<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-v\">p<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-v\">mnt<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-v\">host<\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-v\">dir<\/span><\/div><\/div><\/td>\n\t\t\t\t\t<\/tr>\n\t\t\t\t<\/table>\n\t\t\t<\/div>\n\t\t<\/div>\r\n<!-- [Format Time: 0.0001 seconds] -->\r\n<p>Vor dem dauerhaften Eintrag kann der Mount manuell getestet werden, um sicherzustellen, dass die Freigabe funktioniert.<\/p><!-- Urvanov Syntax Highlighter v2.9.1 -->\r\n\n\t\t<div id=\"urvanov-syntax-highlighter-6a6c6333f35ed676611458\" class=\"urvanov-syntax-highlighter-syntax crayon-theme-classic urvanov-syntax-highlighter-font-monaco urvanov-syntax-highlighter-os-pc print-yes notranslate\" data-settings=\" minimize scroll-mouseover\" style=\" margin-top: 12px; margin-bottom: 12px; font-size: 12px !important; line-height: 15px !important;\">\n\t\t\n\t\t\t<div class=\"crayon-toolbar\" data-settings=\" mouseover overlay hide delay\" style=\"font-size: 12px !important;height: 18px !important; line-height: 18px !important;\"><span class=\"crayon-title\"><\/span>\n\t\t\t<div class=\"crayon-tools\" style=\"font-size: 12px !important;height: 18px !important; line-height: 18px !important;\"><div class=\"crayon-button urvanov-syntax-highlighter-nums-button\" title=\"Zeilennummern\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-plain-button\" title=\"Unformatierte Code-Ansicht\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-wrap-button\" title=\"Zeilenumbruch umschalten\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-expand-button\" title=\"Code aufklappen\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-copy-button\" title=\"Copy\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-popup-button\" title=\"Code in einem neuen Fenster anzeigen\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><\/div><\/div>\n\t\t\t<div class=\"crayon-info\" style=\"min-height: 16.8px !important; line-height: 16.8px !important;\"><\/div>\n\t\t\t<div class=\"urvanov-syntax-highlighter-plain-wrap\"><textarea wrap=\"soft\" class=\"urvanov-syntax-highlighter-plain print-no\" data-settings=\"dblclick\" readonly style=\"-moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4; font-size: 12px !important; line-height: 15px !important;\">\nmount -t virtiofs proxmox-host-dir-name \/mnt\/host-dir<\/textarea><\/div>\n\t\t\t<div class=\"urvanov-syntax-highlighter-main\" style=\"\">\n\t\t\t\t<table class=\"crayon-table\">\n\t\t\t\t\t<tr class=\"urvanov-syntax-highlighter-row\">\n\t\t\t\t<td class=\"crayon-nums \" data-settings=\"show\">\n\t\t\t\t\t<div class=\"urvanov-syntax-highlighter-nums-content\" style=\"font-size: 12px !important; line-height: 15px !important;\"><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35ed676611458-1\">1<\/div><\/div>\n\t\t\t\t<\/td>\n\t\t\t\t\t\t<td class=\"urvanov-syntax-highlighter-code\"><div class=\"crayon-pre\" style=\"font-size: 12px !important; line-height: 15px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;\"><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35ed676611458-1\"><span class=\"crayon-v\">mount<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-i\">t<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-e\">virtiofs <\/span><span class=\"crayon-v\">proxmox<\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-v\">host<\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-v\">dir<\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-v\">name<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-v\">mnt<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-v\">host<\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-v\">dir<\/span><\/div><\/div><\/td>\n\t\t\t\t\t<\/tr>\n\t\t\t\t<\/table>\n\t\t\t<\/div>\n\t\t<\/div>\r\n<!-- [Format Time: 0.0001 seconds] -->\r\n<p>mount -t virtiofs verbindet das Host-Verzeichnis (\u00fcber den Tag <code>proxmox-host-dir-name<\/code>) mit dem Mountpunkt in der VM. F\u00fcr einen automatischen Mount bei jedem Bootvorgang wird ein Eintrag in <code>\/etc\/fstab<\/code> erstellt.<\/p><!-- Urvanov Syntax Highlighter v2.9.1 -->\r\n\n\t\t<div id=\"urvanov-syntax-highlighter-6a6c6333f35ef043060361\" class=\"urvanov-syntax-highlighter-syntax crayon-theme-classic urvanov-syntax-highlighter-font-monaco urvanov-syntax-highlighter-os-pc print-yes notranslate\" data-settings=\" minimize scroll-mouseover\" style=\" margin-top: 12px; margin-bottom: 12px; font-size: 12px !important; line-height: 15px !important;\">\n\t\t\n\t\t\t<div class=\"crayon-toolbar\" data-settings=\" mouseover overlay hide delay\" style=\"font-size: 12px !important;height: 18px !important; line-height: 18px !important;\"><span class=\"crayon-title\"><\/span>\n\t\t\t<div class=\"crayon-tools\" style=\"font-size: 12px !important;height: 18px !important; line-height: 18px !important;\"><div class=\"crayon-button urvanov-syntax-highlighter-nums-button\" title=\"Zeilennummern\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-plain-button\" title=\"Unformatierte Code-Ansicht\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-wrap-button\" title=\"Zeilenumbruch umschalten\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-expand-button\" title=\"Code aufklappen\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-copy-button\" title=\"Copy\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-popup-button\" title=\"Code in einem neuen Fenster anzeigen\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><\/div><\/div>\n\t\t\t<div class=\"crayon-info\" style=\"min-height: 16.8px !important; line-height: 16.8px !important;\"><\/div>\n\t\t\t<div class=\"urvanov-syntax-highlighter-plain-wrap\"><textarea wrap=\"soft\" class=\"urvanov-syntax-highlighter-plain print-no\" data-settings=\"dblclick\" readonly style=\"-moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4; font-size: 12px !important; line-height: 15px !important;\">\nproxmox-host-dir-name \/mnt\/host-dir virtiofs rw,nofail,x-systemd.automount 0 0<\/textarea><\/div>\n\t\t\t<div class=\"urvanov-syntax-highlighter-main\" style=\"\">\n\t\t\t\t<table class=\"crayon-table\">\n\t\t\t\t\t<tr class=\"urvanov-syntax-highlighter-row\">\n\t\t\t\t<td class=\"crayon-nums \" data-settings=\"show\">\n\t\t\t\t\t<div class=\"urvanov-syntax-highlighter-nums-content\" style=\"font-size: 12px !important; line-height: 15px !important;\"><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35ef043060361-1\">1<\/div><\/div>\n\t\t\t\t<\/td>\n\t\t\t\t\t\t<td class=\"urvanov-syntax-highlighter-code\"><div class=\"crayon-pre\" style=\"font-size: 12px !important; line-height: 15px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;\"><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35ef043060361-1\"><span class=\"crayon-v\">proxmox<\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-v\">host<\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-v\">dir<\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-v\">name<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-v\">mnt<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-v\">host<\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-e\">dir <\/span><span class=\"crayon-e\">virtiofs <\/span><span class=\"crayon-v\">rw<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-v\">nofail<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-v\">x<\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-v\">systemd<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-i\">automount<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">0<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">0<\/span><\/div><\/div><\/td>\n\t\t\t\t\t<\/tr>\n\t\t\t\t<\/table>\n\t\t\t<\/div>\n\t\t<\/div>\r\n<!-- [Format Time: 0.0002 seconds] -->\r\n<p><\/p>\n<ul>\n<li><code>rw<\/code> \u2013 Verzeichnis kann gelesen und beschrieben werden<\/li>\n<li><code>nofail<\/code> \u2013 System startet weiter, auch wenn das Mounten fehlschl\u00e4gt<\/li>\n<li><code>x-systemd.automount<\/code> \u2013 Mount erfolgt erst beim ersten Zugriff, beschleunigt den Bootvorgang<\/li>\n<\/ul>\n<hr \/>\n<h2>5. Funktionstest<\/h2>\n<p><\/p><!-- Urvanov Syntax Highlighter v2.9.1 -->\r\n\n\t\t<div id=\"urvanov-syntax-highlighter-6a6c6333f35f2292142429\" class=\"urvanov-syntax-highlighter-syntax crayon-theme-classic urvanov-syntax-highlighter-font-monaco urvanov-syntax-highlighter-os-pc print-yes notranslate\" data-settings=\" minimize scroll-mouseover\" style=\" margin-top: 12px; margin-bottom: 12px; font-size: 12px !important; line-height: 15px !important;\">\n\t\t\n\t\t\t<div class=\"crayon-toolbar\" data-settings=\" mouseover overlay hide delay\" style=\"font-size: 12px !important;height: 18px !important; line-height: 18px !important;\"><span class=\"crayon-title\"><\/span>\n\t\t\t<div class=\"crayon-tools\" style=\"font-size: 12px !important;height: 18px !important; line-height: 18px !important;\"><div class=\"crayon-button urvanov-syntax-highlighter-nums-button\" title=\"Zeilennummern\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-plain-button\" title=\"Unformatierte Code-Ansicht\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-wrap-button\" title=\"Zeilenumbruch umschalten\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-expand-button\" title=\"Code aufklappen\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-copy-button\" title=\"Copy\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-popup-button\" title=\"Code in einem neuen Fenster anzeigen\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><\/div><\/div>\n\t\t\t<div class=\"crayon-info\" style=\"min-height: 16.8px !important; line-height: 16.8px !important;\"><\/div>\n\t\t\t<div class=\"urvanov-syntax-highlighter-plain-wrap\"><textarea wrap=\"soft\" class=\"urvanov-syntax-highlighter-plain print-no\" data-settings=\"dblclick\" readonly style=\"-moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4; font-size: 12px !important; line-height: 15px !important;\">\nmount -a\r\nsudo -u vuser touch \/mnt\/host-dir\/testfile\r\nls -l \/mnt\/host-dir<\/textarea><\/div>\n\t\t\t<div class=\"urvanov-syntax-highlighter-main\" style=\"\">\n\t\t\t\t<table class=\"crayon-table\">\n\t\t\t\t\t<tr class=\"urvanov-syntax-highlighter-row\">\n\t\t\t\t<td class=\"crayon-nums \" data-settings=\"show\">\n\t\t\t\t\t<div class=\"urvanov-syntax-highlighter-nums-content\" style=\"font-size: 12px !important; line-height: 15px !important;\"><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35f2292142429-1\">1<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35f2292142429-2\">2<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35f2292142429-3\">3<\/div><\/div>\n\t\t\t\t<\/td>\n\t\t\t\t\t\t<td class=\"urvanov-syntax-highlighter-code\"><div class=\"crayon-pre\" style=\"font-size: 12px !important; line-height: 15px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;\"><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35f2292142429-1\"><span class=\"crayon-v\">mount<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-i\">a<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35f2292142429-2\"><span class=\"crayon-v\">sudo<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-i\">u<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-e\">vuser <\/span><span class=\"crayon-v\">touch<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-v\">mnt<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-v\">host<\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-v\">dir<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-e\">testfile<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35f2292142429-3\"><span class=\"crayon-v\">ls<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-v\">l<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-v\">mnt<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-v\">host<\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-v\">dir<\/span><\/div><\/div><\/td>\n\t\t\t\t\t<\/tr>\n\t\t\t\t<\/table>\n\t\t\t<\/div>\n\t\t<\/div>\r\n<!-- [Format Time: 0.0002 seconds] -->\r\n<p>Erwartetes Ergebnis:<\/p><!-- Urvanov Syntax Highlighter v2.9.1 -->\r\n\n\t\t<div id=\"urvanov-syntax-highlighter-6a6c6333f35f4416614073\" class=\"urvanov-syntax-highlighter-syntax crayon-theme-classic urvanov-syntax-highlighter-font-monaco urvanov-syntax-highlighter-os-pc print-yes notranslate\" data-settings=\" minimize scroll-mouseover\" style=\" margin-top: 12px; margin-bottom: 12px; font-size: 12px !important; line-height: 15px !important;\">\n\t\t\n\t\t\t<div class=\"crayon-toolbar\" data-settings=\" mouseover overlay hide delay\" style=\"font-size: 12px !important;height: 18px !important; line-height: 18px !important;\"><span class=\"crayon-title\"><\/span>\n\t\t\t<div class=\"crayon-tools\" style=\"font-size: 12px !important;height: 18px !important; line-height: 18px !important;\"><div class=\"crayon-button urvanov-syntax-highlighter-nums-button\" title=\"Zeilennummern\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-plain-button\" title=\"Unformatierte Code-Ansicht\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-wrap-button\" title=\"Zeilenumbruch umschalten\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-expand-button\" title=\"Code aufklappen\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-copy-button\" title=\"Copy\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-popup-button\" title=\"Code in einem neuen Fenster anzeigen\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><\/div><\/div>\n\t\t\t<div class=\"crayon-info\" style=\"min-height: 16.8px !important; line-height: 16.8px !important;\"><\/div>\n\t\t\t<div class=\"urvanov-syntax-highlighter-plain-wrap\"><textarea wrap=\"soft\" class=\"urvanov-syntax-highlighter-plain print-no\" data-settings=\"dblclick\" readonly style=\"-moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4; font-size: 12px !important; line-height: 15px !important;\">\n-rw-r--r-- 1 vuser vuser testfile<\/textarea><\/div>\n\t\t\t<div class=\"urvanov-syntax-highlighter-main\" style=\"\">\n\t\t\t\t<table class=\"crayon-table\">\n\t\t\t\t\t<tr class=\"urvanov-syntax-highlighter-row\">\n\t\t\t\t<td class=\"crayon-nums \" data-settings=\"show\">\n\t\t\t\t\t<div class=\"urvanov-syntax-highlighter-nums-content\" style=\"font-size: 12px !important; line-height: 15px !important;\"><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35f4416614073-1\">1<\/div><\/div>\n\t\t\t\t<\/td>\n\t\t\t\t\t\t<td class=\"urvanov-syntax-highlighter-code\"><div class=\"crayon-pre\" style=\"font-size: 12px !important; line-height: 15px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;\"><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35f4416614073-1\"><span class=\"crayon-o\">-<\/span><span class=\"crayon-v\">rw<\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-v\">r<\/span><span class=\"crayon-o\">--<\/span><span class=\"crayon-v\">r<\/span><span class=\"crayon-o\">--<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">1<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-e\">vuser <\/span><span class=\"crayon-e\">vuser <\/span><span class=\"crayon-v\">testfile<\/span><\/div><\/div><\/td>\n\t\t\t\t\t<\/tr>\n\t\t\t\t<\/table>\n\t\t\t<\/div>\n\t\t<\/div>\r\n<!-- [Format Time: 0.0001 seconds] -->\r\n<p><\/p>\n<hr \/>\n<h2>6. Typische Fehlerquellen<\/h2>\n<ul>\n<li>UID\/GID zwischen Host und VM stimmen nicht \u00fcberein<\/li>\n<li>Ownership wurde nur im Gast, nicht auf dem Host gesetzt<\/li>\n<li>\u00dcbergeordnete Verzeichnisse blockieren den Zugriff (<code>x<\/code> fehlt)<\/li>\n<li>Mount-Optionen wie <code>uid=<\/code> oder <code>gid=<\/code> werden verwendet (wirkungslos)<\/li>\n<\/ul>\n<p>Debug-Hilfe:<\/p><!-- Urvanov Syntax Highlighter v2.9.1 -->\r\n\n\t\t<div id=\"urvanov-syntax-highlighter-6a6c6333f35f6732009896\" class=\"urvanov-syntax-highlighter-syntax crayon-theme-classic urvanov-syntax-highlighter-font-monaco urvanov-syntax-highlighter-os-pc print-yes notranslate\" data-settings=\" minimize scroll-mouseover\" style=\" margin-top: 12px; margin-bottom: 12px; font-size: 12px !important; line-height: 15px !important;\">\n\t\t\n\t\t\t<div class=\"crayon-toolbar\" data-settings=\" mouseover overlay hide delay\" style=\"font-size: 12px !important;height: 18px !important; line-height: 18px !important;\"><span class=\"crayon-title\"><\/span>\n\t\t\t<div class=\"crayon-tools\" style=\"font-size: 12px !important;height: 18px !important; line-height: 18px !important;\"><div class=\"crayon-button urvanov-syntax-highlighter-nums-button\" title=\"Zeilennummern\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-plain-button\" title=\"Unformatierte Code-Ansicht\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-wrap-button\" title=\"Zeilenumbruch umschalten\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-expand-button\" title=\"Code aufklappen\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-copy-button\" title=\"Copy\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-popup-button\" title=\"Code in einem neuen Fenster anzeigen\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><\/div><\/div>\n\t\t\t<div class=\"crayon-info\" style=\"min-height: 16.8px !important; line-height: 16.8px !important;\"><\/div>\n\t\t\t<div class=\"urvanov-syntax-highlighter-plain-wrap\"><textarea wrap=\"soft\" class=\"urvanov-syntax-highlighter-plain print-no\" data-settings=\"dblclick\" readonly style=\"-moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4; font-size: 12px !important; line-height: 15px !important;\">\nsudo namei -l \/mnt\/host-dir\r\nsudo journalctl -b | grep virtiofs<\/textarea><\/div>\n\t\t\t<div class=\"urvanov-syntax-highlighter-main\" style=\"\">\n\t\t\t\t<table class=\"crayon-table\">\n\t\t\t\t\t<tr class=\"urvanov-syntax-highlighter-row\">\n\t\t\t\t<td class=\"crayon-nums \" data-settings=\"show\">\n\t\t\t\t\t<div class=\"urvanov-syntax-highlighter-nums-content\" style=\"font-size: 12px !important; line-height: 15px !important;\"><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35f6732009896-1\">1<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f35f6732009896-2\">2<\/div><\/div>\n\t\t\t\t<\/td>\n\t\t\t\t\t\t<td class=\"urvanov-syntax-highlighter-code\"><div class=\"crayon-pre\" style=\"font-size: 12px !important; line-height: 15px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;\"><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35f6732009896-1\"><span class=\"crayon-e\">sudo <\/span><span class=\"crayon-v\">namei<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-v\">l<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-v\">mnt<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-v\">host<\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-e\">dir<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f35f6732009896-2\"><span class=\"crayon-e\">sudo <\/span><span class=\"crayon-v\">journalctl<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-v\">b<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">|<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-e\">grep <\/span><span class=\"crayon-v\">virtiofs<\/span><\/div><\/div><\/td>\n\t\t\t\t\t<\/tr>\n\t\t\t\t<\/table>\n\t\t\t<\/div>\n\t\t<\/div>\r\n<!-- [Format Time: 0.0002 seconds] -->\r\n<p><\/p>\n<hr \/>\n<h2>7. Zusammenfassung<\/h2>\n<p>Virtiofs ist eine performante und saubere L\u00f6sung, um Host-Verzeichnisse direkt in Proxmox-VMs zu nutzen. Entscheidend ist ein konsistentes Benutzer- und Rechtekonzept:<\/p>\n<ul>\n<li>UID\/GID m\u00fcssen identisch sein<\/li>\n<li>Rechte werden ausschlie\u00dflich auf dem Host gepflegt<\/li>\n<li>Der fstab-Eintrag entscheidet \u00fcber Boot-Verhalten und Stabilit\u00e4t<\/li>\n<\/ul>\n<p>Bei korrekter Einrichtung verh\u00e4lt sich virtiofs wie ein lokales Dateisystem \u2013 schnell, zuverl\u00e4ssig und ohne Netzwerkabh\u00e4ngigkeiten.<\/p>\n<hr \/>\n<p><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-2821 alignleft\" src=\"https:\/\/speefak.spdns.de\/oss_lifestyle\/wp-content\/uploads\/2014\/08\/CC_BY_NC_SA.png\" alt=\"CC_BY_NC_SA\" width=\"65\" height=\"23\" \/>by Speefak<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Virtiofs ist eine moderne und performante Methode, um Verzeichnisse direkt vom Proxmox-Host in virtuelle Maschinen einzubinden. Im Gegensatz zu klassischen Netzwerkdateisystemen wie NFS oder SSHFS erfolgt der Zugriff lokal \u00fcber den Hypervisor, ohne Netzwerk-Stack und ohne zus\u00e4tzliche Dienste. Dadurch eignet sich virtiofs besonders f\u00fcr High-Performance-Dateifreigaben zwischen Host und VM,\u00a0in denen hoher Datendurchsatz, geringe Latenz und [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1,99,46],"tags":[],"class_list":["post-8594","post","type-post","status-publish","format-standard","hentry","category-allgemein","category-proxmox-ve","category-virtualisierung"],"rttpg_featured_image_url":null,"rttpg_author":{"display_name":"speefak","author_link":"https:\/\/speefak.spdns.de\/oss_lifestyle\/author\/speefak_oss\/"},"rttpg_comment":0,"rttpg_category":"<a href=\"https:\/\/speefak.spdns.de\/oss_lifestyle\/category\/allgemein\/\" rel=\"category tag\">Allgemein<\/a> <a href=\"https:\/\/speefak.spdns.de\/oss_lifestyle\/category\/proxmox-ve\/\" rel=\"category tag\">Proxmox VE<\/a> <a href=\"https:\/\/speefak.spdns.de\/oss_lifestyle\/category\/virtualisierung\/\" rel=\"category tag\">Virtualisierung<\/a>","rttpg_excerpt":"Virtiofs ist eine moderne und performante Methode, um Verzeichnisse direkt vom Proxmox-Host in virtuelle Maschinen einzubinden. Im Gegensatz zu klassischen Netzwerkdateisystemen wie NFS oder SSHFS erfolgt der Zugriff lokal \u00fcber den Hypervisor, ohne Netzwerk-Stack und ohne zus\u00e4tzliche Dienste. Dadurch eignet sich virtiofs besonders f\u00fcr High-Performance-Dateifreigaben zwischen Host und VM,\u00a0in denen hoher Datendurchsatz, geringe Latenz und&hellip;","_links":{"self":[{"href":"https:\/\/speefak.spdns.de\/oss_lifestyle\/wp-json\/wp\/v2\/posts\/8594","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/speefak.spdns.de\/oss_lifestyle\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/speefak.spdns.de\/oss_lifestyle\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/speefak.spdns.de\/oss_lifestyle\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/speefak.spdns.de\/oss_lifestyle\/wp-json\/wp\/v2\/comments?post=8594"}],"version-history":[{"count":0,"href":"https:\/\/speefak.spdns.de\/oss_lifestyle\/wp-json\/wp\/v2\/posts\/8594\/revisions"}],"wp:attachment":[{"href":"https:\/\/speefak.spdns.de\/oss_lifestyle\/wp-json\/wp\/v2\/media?parent=8594"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/speefak.spdns.de\/oss_lifestyle\/wp-json\/wp\/v2\/categories?post=8594"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/speefak.spdns.de\/oss_lifestyle\/wp-json\/wp\/v2\/tags?post=8594"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}},{"id":8576,"date":"2026-01-20T20:06:19","date_gmt":"2026-01-20T19:06:19","guid":{"rendered":"https:\/\/speefak.spdns.de\/oss_lifestyle\/?p=8576"},"modified":"2026-01-28T16:28:55","modified_gmt":"2026-01-28T15:28:55","slug":"vdr-aufnahmen-mit-autofs-sshfs-auf-entfernten-storage-auslagern","status":"publish","type":"post","link":"https:\/\/speefak.spdns.de\/oss_lifestyle\/vdr-aufnahmen-mit-autofs-sshfs-auf-entfernten-storage-auslagern\/","title":{"rendered":"VDR-Aufnahmen mit autofs\/sshfs auf entfernten Storage auslagern"},"content":{"rendered":"<p data-start=\"86\" data-end=\"965\">Der VDR-User auf einem Client-System kann seine Aufnahmen direkt auf einem entfernten Storage-Server ablegen, ohne dass eine Passworteingabe erforderlich ist. Auf dem Host-System werden hierf\u00fcr zun\u00e4chst die erforderlichen Benutzerkonten sowie die Verzeichnisse mit den korrekten Besitz- und Zugriffsrechten erstellt. Anschlie\u00dfend wird der SSH-Zugang f\u00fcr den VDR-User eingerichtet, inklusive einer Schl\u00fcssel-basierten Authentifizierung, um eine sichere, passwortlose Verbindung zu erm\u00f6glichen. Auf dem Client wird Autofs in Verbindung mit SSHFS konfiguriert, sodass das Videoverzeichnis des VDR automatisch auf den entfernten Speicher gemountet wird. Dadurch kann der VDR-Dienst seine Aufnahmen direkt auf dem Storage-Server ablegen. Die Schreibrechte sind dabei ausschlie\u00dflich dem VDR-User zugewiesen, w\u00e4hrend andere Benutzer nur lesenden Zugriff erhalten, sofern erforderlich.<\/p>\n<p data-start=\"967\" data-end=\"1343\" data-is-last-node=\"\" data-is-only-node=\"\">Ein wesentlicher Vorteil dieser L\u00f6sung gegen\u00fcber der Nutzung eines vom Host durchgereichten virtuellen Verzeichnisses (z.\u202fB. virtfs in Proxmox) besteht darin, dass Storage und VDR-Server nicht auf demselben Host liegen m\u00fcssen. Dies erm\u00f6glicht eine flexible Trennung von Speicher- und Verarbeitungsressourcen sowie eine bessere Skalierbarkeit und Ausfallsicherheit des Systems.<\/p>\n<hr \/>\n<h3>1. Vorbereitungen auf dem Host (Storage-Server)<\/h3>\n<ol>\n<li>Einen Benutzer <code>vdr-storage<\/code> anlegen, der die Aufnahmen verwalten darf:<\/li>\n<li>\n<!-- Urvanov Syntax Highlighter v2.9.1 -->\r\n\n\t\t<div id=\"urvanov-syntax-highlighter-6a6c6333f3a23412972107\" class=\"urvanov-syntax-highlighter-syntax crayon-theme-classic urvanov-syntax-highlighter-font-monaco urvanov-syntax-highlighter-os-pc print-yes notranslate\" data-settings=\" minimize scroll-mouseover\" style=\" margin-top: 12px; margin-bottom: 12px; font-size: 12px !important; line-height: 15px !important;\">\n\t\t\n\t\t\t<div class=\"crayon-toolbar\" data-settings=\" mouseover overlay hide delay\" style=\"font-size: 12px !important;height: 18px !important; line-height: 18px !important;\"><span class=\"crayon-title\"><\/span>\n\t\t\t<div class=\"crayon-tools\" style=\"font-size: 12px !important;height: 18px !important; line-height: 18px !important;\"><div class=\"crayon-button urvanov-syntax-highlighter-nums-button\" title=\"Zeilennummern\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-plain-button\" title=\"Unformatierte Code-Ansicht\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-wrap-button\" title=\"Zeilenumbruch umschalten\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-expand-button\" title=\"Code aufklappen\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-copy-button\" title=\"Copy\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-popup-button\" title=\"Code in einem neuen Fenster anzeigen\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><\/div><\/div>\n\t\t\t<div class=\"crayon-info\" style=\"min-height: 16.8px !important; line-height: 16.8px !important;\"><\/div>\n\t\t\t<div class=\"urvanov-syntax-highlighter-plain-wrap\"><textarea wrap=\"soft\" class=\"urvanov-syntax-highlighter-plain print-no\" data-settings=\"dblclick\" readonly style=\"-moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4; font-size: 12px !important; line-height: 15px !important;\">\nsudo adduser --system --group vdr-storage<\/textarea><\/div>\n\t\t\t<div class=\"urvanov-syntax-highlighter-main\" style=\"\">\n\t\t\t\t<table class=\"crayon-table\">\n\t\t\t\t\t<tr class=\"urvanov-syntax-highlighter-row\">\n\t\t\t\t<td class=\"crayon-nums \" data-settings=\"show\">\n\t\t\t\t\t<div class=\"urvanov-syntax-highlighter-nums-content\" style=\"font-size: 12px !important; line-height: 15px !important;\"><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f3a23412972107-1\">1<\/div><\/div>\n\t\t\t\t<\/td>\n\t\t\t\t\t\t<td class=\"urvanov-syntax-highlighter-code\"><div class=\"crayon-pre\" style=\"font-size: 12px !important; line-height: 15px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;\"><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f3a23412972107-1\"><span class=\"crayon-e\">sudo <\/span><span class=\"crayon-v\">adduser<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">--<\/span><span class=\"crayon-v\">system<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">--<\/span><span class=\"crayon-e\">group <\/span><span class=\"crayon-v\">vdr<\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-v\">storage<\/span><\/div><\/div><\/td>\n\t\t\t\t\t<\/tr>\n\t\t\t\t<\/table>\n\t\t\t<\/div>\n\t\t<\/div>\r\n<!-- [Format Time: 0.0001 seconds] -->\r\n\n<\/li>\n<li>Verzeichnis f\u00fcr VDR-Aufnahmen erstellen und Berechtigungen setzen:<\/li>\n<li>\n<!-- Urvanov Syntax Highlighter v2.9.1 -->\r\n\n\t\t<div id=\"urvanov-syntax-highlighter-6a6c6333f3a2d220962011\" class=\"urvanov-syntax-highlighter-syntax crayon-theme-classic urvanov-syntax-highlighter-font-monaco urvanov-syntax-highlighter-os-pc print-yes notranslate\" data-settings=\" minimize scroll-mouseover\" style=\" margin-top: 12px; margin-bottom: 12px; font-size: 12px !important; line-height: 15px !important;\">\n\t\t\n\t\t\t<div class=\"crayon-toolbar\" data-settings=\" mouseover overlay hide delay\" style=\"font-size: 12px !important;height: 18px !important; line-height: 18px !important;\"><span class=\"crayon-title\"><\/span>\n\t\t\t<div class=\"crayon-tools\" style=\"font-size: 12px !important;height: 18px !important; line-height: 18px !important;\"><div class=\"crayon-button urvanov-syntax-highlighter-nums-button\" title=\"Zeilennummern\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-plain-button\" title=\"Unformatierte Code-Ansicht\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-wrap-button\" title=\"Zeilenumbruch umschalten\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-expand-button\" title=\"Code aufklappen\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-copy-button\" title=\"Copy\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-popup-button\" title=\"Code in einem neuen Fenster anzeigen\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><\/div><\/div>\n\t\t\t<div class=\"crayon-info\" style=\"min-height: 16.8px !important; line-height: 16.8px !important;\"><\/div>\n\t\t\t<div class=\"urvanov-syntax-highlighter-plain-wrap\"><textarea wrap=\"soft\" class=\"urvanov-syntax-highlighter-plain print-no\" data-settings=\"dblclick\" readonly style=\"-moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4; font-size: 12px !important; line-height: 15px !important;\">\nsudo mkdir -p \/mnt\/fstab_UUID_System_storage\/vdr_recdir\r\nsudo chown -R vdr-storage:vdr-storage \/mnt\/fstab_UUID_System_storage\/vdr_recdir\r\nsudo chmod 775 \/mnt\/fstab_UUID_System_storage\/vdr_recdir<\/textarea><\/div>\n\t\t\t<div class=\"urvanov-syntax-highlighter-main\" style=\"\">\n\t\t\t\t<table class=\"crayon-table\">\n\t\t\t\t\t<tr class=\"urvanov-syntax-highlighter-row\">\n\t\t\t\t<td class=\"crayon-nums \" data-settings=\"show\">\n\t\t\t\t\t<div class=\"urvanov-syntax-highlighter-nums-content\" style=\"font-size: 12px !important; line-height: 15px !important;\"><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f3a2d220962011-1\">1<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f3a2d220962011-2\">2<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f3a2d220962011-3\">3<\/div><\/div>\n\t\t\t\t<\/td>\n\t\t\t\t\t\t<td class=\"urvanov-syntax-highlighter-code\"><div class=\"crayon-pre\" style=\"font-size: 12px !important; line-height: 15px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;\"><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f3a2d220962011-1\"><span class=\"crayon-e\">sudo <\/span><span class=\"crayon-v\">mkdir<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-v\">p<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-v\">mnt<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-v\">fstab_UUID_System_storage<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-e\">vdr_recdir<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f3a2d220962011-2\"><span class=\"crayon-e\">sudo <\/span><span class=\"crayon-v\">chown<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-i\">R<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">vdr<\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-v\">storage<\/span><span class=\"crayon-o\">:<\/span><span class=\"crayon-v\">vdr<\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-v\">storage<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-v\">mnt<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-v\">fstab_UUID_System_storage<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-e\">vdr_recdir<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f3a2d220962011-3\"><span class=\"crayon-e\">sudo <\/span><span class=\"crayon-i\">chmod<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">775<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-v\">mnt<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-v\">fstab_UUID_System_storage<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-v\">vdr_recdir<\/span><\/div><\/div><\/td>\n\t\t\t\t\t<\/tr>\n\t\t\t\t<\/table>\n\t\t\t<\/div>\n\t\t<\/div>\r\n<!-- [Format Time: 0.0002 seconds] -->\r\n<br \/>\nSSH-Zugang f\u00fcr den <code>vdr<\/code>-User des Clients einrichten:<\/p>\n<ul>\n<li>\u00d6ffentlichen Schl\u00fcssel des Clients unter <code>\/root\/.ssh\/authorized_keys<\/code> von <code>vdr<\/code>-User auf Client eintragen.<\/li>\n<li>Sicherstellen, dass SSH-Zugang ohne Passwort m\u00f6glich ist.<\/li>\n<\/ul>\n<\/li>\n<li>Optional: Pr\u00fcfen, ob Schreibrechte funktionieren:<\/li>\n<li>\n<!-- Urvanov Syntax Highlighter v2.9.1 -->\r\n\n\t\t<div id=\"urvanov-syntax-highlighter-6a6c6333f3a30183374521\" class=\"urvanov-syntax-highlighter-syntax crayon-theme-classic urvanov-syntax-highlighter-font-monaco urvanov-syntax-highlighter-os-pc print-yes notranslate\" data-settings=\" minimize scroll-mouseover\" style=\" margin-top: 12px; margin-bottom: 12px; font-size: 12px !important; line-height: 15px !important;\">\n\t\t\n\t\t\t<div class=\"crayon-toolbar\" data-settings=\" mouseover overlay hide delay\" style=\"font-size: 12px !important;height: 18px !important; line-height: 18px !important;\"><span class=\"crayon-title\"><\/span>\n\t\t\t<div class=\"crayon-tools\" style=\"font-size: 12px !important;height: 18px !important; line-height: 18px !important;\"><div class=\"crayon-button urvanov-syntax-highlighter-nums-button\" title=\"Zeilennummern\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-plain-button\" title=\"Unformatierte Code-Ansicht\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-wrap-button\" title=\"Zeilenumbruch umschalten\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-expand-button\" title=\"Code aufklappen\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-copy-button\" title=\"Copy\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-popup-button\" title=\"Code in einem neuen Fenster anzeigen\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><\/div><\/div>\n\t\t\t<div class=\"crayon-info\" style=\"min-height: 16.8px !important; line-height: 16.8px !important;\"><\/div>\n\t\t\t<div class=\"urvanov-syntax-highlighter-plain-wrap\"><textarea wrap=\"soft\" class=\"urvanov-syntax-highlighter-plain print-no\" data-settings=\"dblclick\" readonly style=\"-moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4; font-size: 12px !important; line-height: 15px !important;\">\nsudo -u vdr-storage touch \/mnt\/fstab_UUID_System_storage\/vdr_recdir\/testfile\r\nrm \/mnt\/fstab_UUID_System_storage\/vdr_recdir\/testfile<\/textarea><\/div>\n\t\t\t<div class=\"urvanov-syntax-highlighter-main\" style=\"\">\n\t\t\t\t<table class=\"crayon-table\">\n\t\t\t\t\t<tr class=\"urvanov-syntax-highlighter-row\">\n\t\t\t\t<td class=\"crayon-nums \" data-settings=\"show\">\n\t\t\t\t\t<div class=\"urvanov-syntax-highlighter-nums-content\" style=\"font-size: 12px !important; line-height: 15px !important;\"><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f3a30183374521-1\">1<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f3a30183374521-2\">2<\/div><\/div>\n\t\t\t\t<\/td>\n\t\t\t\t\t\t<td class=\"urvanov-syntax-highlighter-code\"><div class=\"crayon-pre\" style=\"font-size: 12px !important; line-height: 15px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;\"><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f3a30183374521-1\"><span class=\"crayon-v\">sudo<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-i\">u<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">vdr<\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-e\">storage <\/span><span class=\"crayon-v\">touch<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-v\">mnt<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-v\">fstab_UUID_System_storage<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-v\">vdr_recdir<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-e\">testfile<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f3a30183374521-2\"><span class=\"crayon-v\">rm<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-v\">mnt<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-v\">fstab_UUID_System_storage<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-v\">vdr_recdir<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-v\">testfile<\/span><\/div><\/div><\/td>\n\t\t\t\t\t<\/tr>\n\t\t\t\t<\/table>\n\t\t\t<\/div>\n\t\t<\/div>\r\n<!-- [Format Time: 0.0001 seconds] -->\r\n\n<\/li>\n<\/ol>\n<hr \/>\n<h3>2. Vorbereitungen auf dem Client<\/h3>\n<ol>\n<li>SSH-Key erzeugen oder vorhandenen Key nutzen, falls noch nicht vorhanden:<\/li>\n<li>\n<!-- Urvanov Syntax Highlighter v2.9.1 -->\r\n\n\t\t<div id=\"urvanov-syntax-highlighter-6a6c6333f3a32479804873\" class=\"urvanov-syntax-highlighter-syntax crayon-theme-classic urvanov-syntax-highlighter-font-monaco urvanov-syntax-highlighter-os-pc print-yes notranslate\" data-settings=\" minimize scroll-mouseover\" style=\" margin-top: 12px; margin-bottom: 12px; font-size: 12px !important; line-height: 15px !important;\">\n\t\t\n\t\t\t<div class=\"crayon-toolbar\" data-settings=\" mouseover overlay hide delay\" style=\"font-size: 12px !important;height: 18px !important; line-height: 18px !important;\"><span class=\"crayon-title\"><\/span>\n\t\t\t<div class=\"crayon-tools\" style=\"font-size: 12px !important;height: 18px !important; line-height: 18px !important;\"><div class=\"crayon-button urvanov-syntax-highlighter-nums-button\" title=\"Zeilennummern\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-plain-button\" title=\"Unformatierte Code-Ansicht\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-wrap-button\" title=\"Zeilenumbruch umschalten\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-expand-button\" title=\"Code aufklappen\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-copy-button\" title=\"Copy\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-popup-button\" title=\"Code in einem neuen Fenster anzeigen\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><\/div><\/div>\n\t\t\t<div class=\"crayon-info\" style=\"min-height: 16.8px !important; line-height: 16.8px !important;\"><\/div>\n\t\t\t<div class=\"urvanov-syntax-highlighter-plain-wrap\"><textarea wrap=\"soft\" class=\"urvanov-syntax-highlighter-plain print-no\" data-settings=\"dblclick\" readonly style=\"-moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4; font-size: 12px !important; line-height: 15px !important;\">\nsudo -u vdr ssh-keygen -f \/root\/.ssh\/id_ed25519 -N \"<\/textarea><\/div>\n\t\t\t<div class=\"urvanov-syntax-highlighter-main\" style=\"\">\n\t\t\t\t<table class=\"crayon-table\">\n\t\t\t\t\t<tr class=\"urvanov-syntax-highlighter-row\">\n\t\t\t\t<td class=\"crayon-nums \" data-settings=\"show\">\n\t\t\t\t\t<div class=\"urvanov-syntax-highlighter-nums-content\" style=\"font-size: 12px !important; line-height: 15px !important;\"><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f3a32479804873-1\">1<\/div><\/div>\n\t\t\t\t<\/td>\n\t\t\t\t\t\t<td class=\"urvanov-syntax-highlighter-code\"><div class=\"crayon-pre\" style=\"font-size: 12px !important; line-height: 15px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;\"><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f3a32479804873-1\"><span class=\"crayon-v\">sudo<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-i\">u<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-e\">vdr <\/span><span class=\"crayon-v\">ssh<\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-v\">keygen<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-v\">f<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-v\">root<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-v\">ssh<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-v\">id_ed25519<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-i\">N<\/span><span class=\"crayon-h\"> <\/span>\"<\/div><\/div><\/td>\n\t\t\t\t\t<\/tr>\n\t\t\t\t<\/table>\n\t\t\t<\/div>\n\t\t<\/div>\r\n<!-- [Format Time: 0.0001 seconds] -->\r\n\n<\/li>\n<li>Public Key (<code>id_ed25519.pub<\/code>) auf den Host in <code>\/root\/.ssh\/authorized_keys<\/code> eintragen.<\/li>\n<li>Autofs installieren und aktivieren:<\/li>\n<li>\n<!-- Urvanov Syntax Highlighter v2.9.1 -->\r\n\n\t\t<div id=\"urvanov-syntax-highlighter-6a6c6333f3a34674966917\" class=\"urvanov-syntax-highlighter-syntax crayon-theme-classic urvanov-syntax-highlighter-font-monaco urvanov-syntax-highlighter-os-pc print-yes notranslate\" data-settings=\" minimize scroll-mouseover\" style=\" margin-top: 12px; margin-bottom: 12px; font-size: 12px !important; line-height: 15px !important;\">\n\t\t\n\t\t\t<div class=\"crayon-toolbar\" data-settings=\" mouseover overlay hide delay\" style=\"font-size: 12px !important;height: 18px !important; line-height: 18px !important;\"><span class=\"crayon-title\"><\/span>\n\t\t\t<div class=\"crayon-tools\" style=\"font-size: 12px !important;height: 18px !important; line-height: 18px !important;\"><div class=\"crayon-button urvanov-syntax-highlighter-nums-button\" title=\"Zeilennummern\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-plain-button\" title=\"Unformatierte Code-Ansicht\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-wrap-button\" title=\"Zeilenumbruch umschalten\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-expand-button\" title=\"Code aufklappen\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-copy-button\" title=\"Copy\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-popup-button\" title=\"Code in einem neuen Fenster anzeigen\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><\/div><\/div>\n\t\t\t<div class=\"crayon-info\" style=\"min-height: 16.8px !important; line-height: 16.8px !important;\"><\/div>\n\t\t\t<div class=\"urvanov-syntax-highlighter-plain-wrap\"><textarea wrap=\"soft\" class=\"urvanov-syntax-highlighter-plain print-no\" data-settings=\"dblclick\" readonly style=\"-moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4; font-size: 12px !important; line-height: 15px !important;\">\napt update\r\napt install autofs\r\nsystemctl enable autofs\r\nsystemctl start autof<\/textarea><\/div>\n\t\t\t<div class=\"urvanov-syntax-highlighter-main\" style=\"\">\n\t\t\t\t<table class=\"crayon-table\">\n\t\t\t\t\t<tr class=\"urvanov-syntax-highlighter-row\">\n\t\t\t\t<td class=\"crayon-nums \" data-settings=\"show\">\n\t\t\t\t\t<div class=\"urvanov-syntax-highlighter-nums-content\" style=\"font-size: 12px !important; line-height: 15px !important;\"><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f3a34674966917-1\">1<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f3a34674966917-2\">2<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f3a34674966917-3\">3<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f3a34674966917-4\">4<\/div><\/div>\n\t\t\t\t<\/td>\n\t\t\t\t\t\t<td class=\"urvanov-syntax-highlighter-code\"><div class=\"crayon-pre\" style=\"font-size: 12px !important; line-height: 15px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;\"><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f3a34674966917-1\"><span class=\"crayon-e\">apt <\/span><span class=\"crayon-e\">update<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f3a34674966917-2\"><span class=\"crayon-e\">apt <\/span><span class=\"crayon-e\">install <\/span><span class=\"crayon-e\">autofs<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f3a34674966917-3\"><span class=\"crayon-e\">systemctl <\/span><span class=\"crayon-e\">enable <\/span><span class=\"crayon-e\">autofs<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f3a34674966917-4\"><span class=\"crayon-e\">systemctl <\/span><span class=\"crayon-e\">start <\/span><span class=\"crayon-v\">autof<\/span><\/div><\/div><\/td>\n\t\t\t\t\t<\/tr>\n\t\t\t\t<\/table>\n\t\t\t<\/div>\n\t\t<\/div>\r\n<!-- [Format Time: 0.0001 seconds] -->\r\n\n<\/li>\n<li>Autofs-Konfiguration anpassen:\n<ul>\n<li>Datei <code>\/etc\/auto.mount<\/code> erstellen oder bearbeiten:<br \/>\n<!-- Urvanov Syntax Highlighter v2.9.1 -->\r\n\n\t\t<div id=\"urvanov-syntax-highlighter-6a6c6333f3a37135542533\" class=\"urvanov-syntax-highlighter-syntax crayon-theme-classic urvanov-syntax-highlighter-font-monaco urvanov-syntax-highlighter-os-pc print-yes notranslate\" data-settings=\" minimize scroll-mouseover\" style=\" margin-top: 12px; margin-bottom: 12px; font-size: 12px !important; line-height: 15px !important;\">\n\t\t\n\t\t\t<div class=\"crayon-toolbar\" data-settings=\" mouseover overlay hide delay\" style=\"font-size: 12px !important;height: 18px !important; line-height: 18px !important;\"><span class=\"crayon-title\"><\/span>\n\t\t\t<div class=\"crayon-tools\" style=\"font-size: 12px !important;height: 18px !important; line-height: 18px !important;\"><div class=\"crayon-button urvanov-syntax-highlighter-nums-button\" title=\"Zeilennummern\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-plain-button\" title=\"Unformatierte Code-Ansicht\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-wrap-button\" title=\"Zeilenumbruch umschalten\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-expand-button\" title=\"Code aufklappen\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-copy-button\" title=\"Copy\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-popup-button\" title=\"Code in einem neuen Fenster anzeigen\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><\/div><\/div>\n\t\t\t<div class=\"crayon-info\" style=\"min-height: 16.8px !important; line-height: 16.8px !important;\"><\/div>\n\t\t\t<div class=\"urvanov-syntax-highlighter-plain-wrap\"><textarea wrap=\"soft\" class=\"urvanov-syntax-highlighter-plain print-no\" data-settings=\"dblclick\" readonly style=\"-moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4; font-size: 12px !important; line-height: 15px !important;\">\nvdr_recdir -fstype=fuse.sshfs,rw,nodev,allow_other,default_permissions,uid=106,gid=106,reconnect,ServerAliveInterval=15,ServerAliveCountMax=3,follow_symlinks,transform_symlinks,IdentityFile=\/root\/.ssh\/id_ed25519 :vdr-storage@&lt;HOST_IP&gt;:\/mnt\/fstab_UUID_System_storage\/vdr_recdir<\/textarea><\/div>\n\t\t\t<div class=\"urvanov-syntax-highlighter-main\" style=\"\">\n\t\t\t\t<table class=\"crayon-table\">\n\t\t\t\t\t<tr class=\"urvanov-syntax-highlighter-row\">\n\t\t\t\t<td class=\"crayon-nums \" data-settings=\"show\">\n\t\t\t\t\t<div class=\"urvanov-syntax-highlighter-nums-content\" style=\"font-size: 12px !important; line-height: 15px !important;\"><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f3a37135542533-1\">1<\/div><\/div>\n\t\t\t\t<\/td>\n\t\t\t\t\t\t<td class=\"urvanov-syntax-highlighter-code\"><div class=\"crayon-pre\" style=\"font-size: 12px !important; line-height: 15px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;\"><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f3a37135542533-1\"><span class=\"crayon-v\">vdr_recdir<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-v\">fstype<\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-v\">fuse<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-v\">sshfs<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-v\">rw<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-v\">nodev<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-v\">allow_other<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-v\">default_permissions<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-v\">uid<\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-cn\">106<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-v\">gid<\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-cn\">106<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-v\">reconnect<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-v\">ServerAliveInterval<\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-cn\">15<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-v\">ServerAliveCountMax<\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-cn\">3<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-v\">follow_symlinks<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-v\">transform_symlinks<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-v\">IdentityFile<\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-v\">root<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-v\">ssh<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-v\">id_ed25519<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">:<\/span><span class=\"crayon-v\">vdr<\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-v\">storage<\/span><span class=\"crayon-sy\">@<\/span><span class=\"crayon-o\">&lt;<\/span><span class=\"crayon-v\">HOST_IP<\/span><span class=\"crayon-o\">&gt;<\/span><span class=\"crayon-o\">:<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-v\">mnt<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-v\">fstab_UUID_System_storage<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-v\">vdr_recdir<\/span><\/div><\/div><\/td>\n\t\t\t\t\t<\/tr>\n\t\t\t\t<\/table>\n\t\t\t<\/div>\n\t\t<\/div>\r\n<!-- [Format Time: 0.0003 seconds] -->\r\n\n<\/li>\n<li><code>uid=106,gid=106<\/code> entspricht dem lokalen <code>vdr<\/code>-User.<\/li>\n<\/ul>\n<\/li>\n<li>Autofs neu laden:<br \/>\n<!-- Urvanov Syntax Highlighter v2.9.1 -->\r\n\n\t\t<div id=\"urvanov-syntax-highlighter-6a6c6333f3a39048635290\" class=\"urvanov-syntax-highlighter-syntax crayon-theme-classic urvanov-syntax-highlighter-font-monaco urvanov-syntax-highlighter-os-pc print-yes notranslate\" data-settings=\" minimize scroll-mouseover\" style=\" margin-top: 12px; margin-bottom: 12px; font-size: 12px !important; line-height: 15px !important;\">\n\t\t\n\t\t\t<div class=\"crayon-toolbar\" data-settings=\" mouseover overlay hide delay\" style=\"font-size: 12px !important;height: 18px !important; line-height: 18px !important;\"><span class=\"crayon-title\"><\/span>\n\t\t\t<div class=\"crayon-tools\" style=\"font-size: 12px !important;height: 18px !important; line-height: 18px !important;\"><div class=\"crayon-button urvanov-syntax-highlighter-nums-button\" title=\"Zeilennummern\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-plain-button\" title=\"Unformatierte Code-Ansicht\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-wrap-button\" title=\"Zeilenumbruch umschalten\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-expand-button\" title=\"Code aufklappen\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-copy-button\" title=\"Copy\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-popup-button\" title=\"Code in einem neuen Fenster anzeigen\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><\/div><\/div>\n\t\t\t<div class=\"crayon-info\" style=\"min-height: 16.8px !important; line-height: 16.8px !important;\"><\/div>\n\t\t\t<div class=\"urvanov-syntax-highlighter-plain-wrap\"><textarea wrap=\"soft\" class=\"urvanov-syntax-highlighter-plain print-no\" data-settings=\"dblclick\" readonly style=\"-moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4; font-size: 12px !important; line-height: 15px !important;\">\nsystemctl restart autofs<\/textarea><\/div>\n\t\t\t<div class=\"urvanov-syntax-highlighter-main\" style=\"\">\n\t\t\t\t<table class=\"crayon-table\">\n\t\t\t\t\t<tr class=\"urvanov-syntax-highlighter-row\">\n\t\t\t\t<td class=\"crayon-nums \" data-settings=\"show\">\n\t\t\t\t\t<div class=\"urvanov-syntax-highlighter-nums-content\" style=\"font-size: 12px !important; line-height: 15px !important;\"><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f3a39048635290-1\">1<\/div><\/div>\n\t\t\t\t<\/td>\n\t\t\t\t\t\t<td class=\"urvanov-syntax-highlighter-code\"><div class=\"crayon-pre\" style=\"font-size: 12px !important; line-height: 15px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;\"><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f3a39048635290-1\"><span class=\"crayon-e\">systemctl <\/span><span class=\"crayon-e\">restart <\/span><span class=\"crayon-v\">autofs<\/span><\/div><\/div><\/td>\n\t\t\t\t\t<\/tr>\n\t\t\t\t<\/table>\n\t\t\t<\/div>\n\t\t<\/div>\r\n<!-- [Format Time: 0.0001 seconds] -->\r\n\n<\/li>\n<li>Mount testen:<br \/>\n<!-- Urvanov Syntax Highlighter v2.9.1 -->\r\n\n\t\t<div id=\"urvanov-syntax-highlighter-6a6c6333f3a3c127003557\" class=\"urvanov-syntax-highlighter-syntax crayon-theme-classic urvanov-syntax-highlighter-font-monaco urvanov-syntax-highlighter-os-pc print-yes notranslate\" data-settings=\" minimize scroll-mouseover\" style=\" margin-top: 12px; margin-bottom: 12px; font-size: 12px !important; line-height: 15px !important;\">\n\t\t\n\t\t\t<div class=\"crayon-toolbar\" data-settings=\" mouseover overlay hide delay\" style=\"font-size: 12px !important;height: 18px !important; line-height: 18px !important;\"><span class=\"crayon-title\"><\/span>\n\t\t\t<div class=\"crayon-tools\" style=\"font-size: 12px !important;height: 18px !important; line-height: 18px !important;\"><div class=\"crayon-button urvanov-syntax-highlighter-nums-button\" title=\"Zeilennummern\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-plain-button\" title=\"Unformatierte Code-Ansicht\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-wrap-button\" title=\"Zeilenumbruch umschalten\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-expand-button\" title=\"Code aufklappen\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-copy-button\" title=\"Copy\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-popup-button\" title=\"Code in einem neuen Fenster anzeigen\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><\/div><\/div>\n\t\t\t<div class=\"crayon-info\" style=\"min-height: 16.8px !important; line-height: 16.8px !important;\"><\/div>\n\t\t\t<div class=\"urvanov-syntax-highlighter-plain-wrap\"><textarea wrap=\"soft\" class=\"urvanov-syntax-highlighter-plain print-no\" data-settings=\"dblclick\" readonly style=\"-moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4; font-size: 12px !important; line-height: 15px !important;\">\nls -ld \/mnt\/autofs\/vdr_recdir\r\nsudo -u vdr touch \/mnt\/autofs\/vdr_recdir\/testfile\r\nrm \/mnt\/autofs\/vdr_recdir\/testfile<\/textarea><\/div>\n\t\t\t<div class=\"urvanov-syntax-highlighter-main\" style=\"\">\n\t\t\t\t<table class=\"crayon-table\">\n\t\t\t\t\t<tr class=\"urvanov-syntax-highlighter-row\">\n\t\t\t\t<td class=\"crayon-nums \" data-settings=\"show\">\n\t\t\t\t\t<div class=\"urvanov-syntax-highlighter-nums-content\" style=\"font-size: 12px !important; line-height: 15px !important;\"><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f3a3c127003557-1\">1<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f3a3c127003557-2\">2<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f3a3c127003557-3\">3<\/div><\/div>\n\t\t\t\t<\/td>\n\t\t\t\t\t\t<td class=\"urvanov-syntax-highlighter-code\"><div class=\"crayon-pre\" style=\"font-size: 12px !important; line-height: 15px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;\"><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f3a3c127003557-1\"><span class=\"crayon-v\">ls<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-v\">ld<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-v\">mnt<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-v\">autofs<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-e\">vdr_recdir<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f3a3c127003557-2\"><span class=\"crayon-v\">sudo<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-i\">u<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-e\">vdr <\/span><span class=\"crayon-v\">touch<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-v\">mnt<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-v\">autofs<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-v\">vdr_recdir<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-e\">testfile<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f3a3c127003557-3\"><span class=\"crayon-v\">rm<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-v\">mnt<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-v\">autofs<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-v\">vdr_recdir<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-v\">testfile<\/span><\/div><\/div><\/td>\n\t\t\t\t\t<\/tr>\n\t\t\t\t<\/table>\n\t\t\t<\/div>\n\t\t<\/div>\r\n<!-- [Format Time: 0.0002 seconds] -->\r\n\n<\/li>\n<\/ol>\n<hr \/>\n<h3>3. VDR auf dem Client konfigurieren<\/h3>\n<ol>\n<li>Symbolischen Link f\u00fcr das Videoverzeichnis setzen:<\/li>\n<li>\n<!-- Urvanov Syntax Highlighter v2.9.1 -->\r\n\n\t\t<div id=\"urvanov-syntax-highlighter-6a6c6333f3a3e172394581\" class=\"urvanov-syntax-highlighter-syntax crayon-theme-classic urvanov-syntax-highlighter-font-monaco urvanov-syntax-highlighter-os-pc print-yes notranslate\" data-settings=\" minimize scroll-mouseover\" style=\" margin-top: 12px; margin-bottom: 12px; font-size: 12px !important; line-height: 15px !important;\">\n\t\t\n\t\t\t<div class=\"crayon-toolbar\" data-settings=\" mouseover overlay hide delay\" style=\"font-size: 12px !important;height: 18px !important; line-height: 18px !important;\"><span class=\"crayon-title\"><\/span>\n\t\t\t<div class=\"crayon-tools\" style=\"font-size: 12px !important;height: 18px !important; line-height: 18px !important;\"><div class=\"crayon-button urvanov-syntax-highlighter-nums-button\" title=\"Zeilennummern\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-plain-button\" title=\"Unformatierte Code-Ansicht\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-wrap-button\" title=\"Zeilenumbruch umschalten\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-expand-button\" title=\"Code aufklappen\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-copy-button\" title=\"Copy\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-popup-button\" title=\"Code in einem neuen Fenster anzeigen\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><\/div><\/div>\n\t\t\t<div class=\"crayon-info\" style=\"min-height: 16.8px !important; line-height: 16.8px !important;\"><\/div>\n\t\t\t<div class=\"urvanov-syntax-highlighter-plain-wrap\"><textarea wrap=\"soft\" class=\"urvanov-syntax-highlighter-plain print-no\" data-settings=\"dblclick\" readonly style=\"-moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4; font-size: 12px !important; line-height: 15px !important;\">\nln -s \/mnt\/autofs\/vdr_recdir \/var\/lib\/video\r\nchown -h vdr:vdr \/var\/lib\/vide<\/textarea><\/div>\n\t\t\t<div class=\"urvanov-syntax-highlighter-main\" style=\"\">\n\t\t\t\t<table class=\"crayon-table\">\n\t\t\t\t\t<tr class=\"urvanov-syntax-highlighter-row\">\n\t\t\t\t<td class=\"crayon-nums \" data-settings=\"show\">\n\t\t\t\t\t<div class=\"urvanov-syntax-highlighter-nums-content\" style=\"font-size: 12px !important; line-height: 15px !important;\"><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f3a3e172394581-1\">1<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f3a3e172394581-2\">2<\/div><\/div>\n\t\t\t\t<\/td>\n\t\t\t\t\t\t<td class=\"urvanov-syntax-highlighter-code\"><div class=\"crayon-pre\" style=\"font-size: 12px !important; line-height: 15px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;\"><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f3a3e172394581-1\"><span class=\"crayon-v\">ln<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-v\">s<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-v\">mnt<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-v\">autofs<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-v\">vdr_recdir<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-t\">var<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-v\">lib<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-e\">video<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f3a3e172394581-2\"><span class=\"crayon-v\">chown<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-i\">h<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">vdr<\/span><span class=\"crayon-o\">:<\/span><span class=\"crayon-v\">vdr<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-t\">var<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-v\">lib<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-v\">vide<\/span><\/div><\/div><\/td>\n\t\t\t\t\t<\/tr>\n\t\t\t\t<\/table>\n\t\t\t<\/div>\n\t\t<\/div>\r\n<!-- [Format Time: 0.0002 seconds] -->\r\n\n<\/li>\n<li>VDR-Dienst starten und pr\u00fcfen:<\/li>\n<li>\n<!-- Urvanov Syntax Highlighter v2.9.1 -->\r\n\n\t\t<div id=\"urvanov-syntax-highlighter-6a6c6333f3a40946046571\" class=\"urvanov-syntax-highlighter-syntax crayon-theme-classic urvanov-syntax-highlighter-font-monaco urvanov-syntax-highlighter-os-pc print-yes notranslate\" data-settings=\" minimize scroll-mouseover\" style=\" margin-top: 12px; margin-bottom: 12px; font-size: 12px !important; line-height: 15px !important;\">\n\t\t\n\t\t\t<div class=\"crayon-toolbar\" data-settings=\" mouseover overlay hide delay\" style=\"font-size: 12px !important;height: 18px !important; line-height: 18px !important;\"><span class=\"crayon-title\"><\/span>\n\t\t\t<div class=\"crayon-tools\" style=\"font-size: 12px !important;height: 18px !important; line-height: 18px !important;\"><div class=\"crayon-button urvanov-syntax-highlighter-nums-button\" title=\"Zeilennummern\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-plain-button\" title=\"Unformatierte Code-Ansicht\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-wrap-button\" title=\"Zeilenumbruch umschalten\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-expand-button\" title=\"Code aufklappen\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-copy-button\" title=\"Copy\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-popup-button\" title=\"Code in einem neuen Fenster anzeigen\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><\/div><\/div>\n\t\t\t<div class=\"crayon-info\" style=\"min-height: 16.8px !important; line-height: 16.8px !important;\"><\/div>\n\t\t\t<div class=\"urvanov-syntax-highlighter-plain-wrap\"><textarea wrap=\"soft\" class=\"urvanov-syntax-highlighter-plain print-no\" data-settings=\"dblclick\" readonly style=\"-moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4; font-size: 12px !important; line-height: 15px !important;\">\nsystemctl enable vdr\r\nsystemctl start vdr\r\nsystemctl status vdr<\/textarea><\/div>\n\t\t\t<div class=\"urvanov-syntax-highlighter-main\" style=\"\">\n\t\t\t\t<table class=\"crayon-table\">\n\t\t\t\t\t<tr class=\"urvanov-syntax-highlighter-row\">\n\t\t\t\t<td class=\"crayon-nums \" data-settings=\"show\">\n\t\t\t\t\t<div class=\"urvanov-syntax-highlighter-nums-content\" style=\"font-size: 12px !important; line-height: 15px !important;\"><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f3a40946046571-1\">1<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f3a40946046571-2\">2<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f3a40946046571-3\">3<\/div><\/div>\n\t\t\t\t<\/td>\n\t\t\t\t\t\t<td class=\"urvanov-syntax-highlighter-code\"><div class=\"crayon-pre\" style=\"font-size: 12px !important; line-height: 15px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;\"><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f3a40946046571-1\"><span class=\"crayon-e\">systemctl <\/span><span class=\"crayon-e\">enable <\/span><span class=\"crayon-e\">vdr<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f3a40946046571-2\"><span class=\"crayon-e\">systemctl <\/span><span class=\"crayon-e\">start <\/span><span class=\"crayon-e\">vdr<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f3a40946046571-3\"><span class=\"crayon-e\">systemctl <\/span><span class=\"crayon-e\">status <\/span><span class=\"crayon-v\">vdr<\/span><\/div><\/div><\/td>\n\t\t\t\t\t<\/tr>\n\t\t\t\t<\/table>\n\t\t\t<\/div>\n\t\t<\/div>\r\n<!-- [Format Time: 0.0001 seconds] -->\r\n\n<\/li>\n<li>Sicherstellen, dass Aufnahmen vom <code>vdr<\/code>-User auf den entfernten Storage geschrieben werden k\u00f6nnen.<\/li>\n<\/ol>\n<hr \/>\n<h3>4. Autofs\u2011Mount beim Systemstart<\/h3>\n<p data-start=\"81\" data-end=\"499\">Beim Systemstart kann es vorkommen, dass der VDR\u2011Dienst versucht, auf das entfernte SSHFS\u2011Verzeichnis unter <code data-start=\"189\" data-end=\"213\">\/mnt\/autofs\/vdr_recdir<\/code> zuzugreifen, bevor Autofs den Mount erstellt hat. Da Autofs Verzeichnisse erst on demand mountet, ist der Mount beim direkten Start des VDR\u2011Dienstes m\u00f6glicherweise noch nicht vorhanden. In diesem Fall schl\u00e4gt der Dienst fehl, da er keinen Schreibzugriff auf das Videoverzeichnis hat.<\/p>\n<p data-start=\"501\" data-end=\"930\">Um sicherzustellen, dass der Mount verf\u00fcgbar ist, bevor VDR startet, kann ein Hilfsskript eingesetzt werden. Dieses pr\u00fcft wiederholt, ob der Mount aktiv ist, und l\u00f6st bei Bedarf den Zugriff aus, um Autofs zum Mounten zu bewegen. Sobald der Mount bereitsteht, wird der VDR\u2011Dienst gestartet oder neu gestartet. Alle Statusmeldungen werden \u00fcber Syslog protokolliert, sodass sie in den VDR\u2011Logs (<code data-start=\"893\" data-end=\"912\">journalctl -t vdr<\/code>) sichtbar sind.<\/p>\n<p data-start=\"932\" data-end=\"1256\">Logeintr\u00e4ge, die auf einen fehlerhaften VDR\u2011Start hinweisen, entstehen typischerweise, weil das Verzeichnis beim Start des VDR\u2011Dienstes noch nicht gemountet ist. Aus diesem Grund empfiehlt es sich, den automatischen Start des VDR\u2011Dienstes zu deaktivieren und den Dienst stattdessen \u00fcber das beschriebene Skript zu starten<\/p>\n<p>Datei: <code>\/usr\/local\/bin\/trigger-vdr-mount.sh<\/code><\/p><!-- Urvanov Syntax Highlighter v2.9.1 -->\r\n\n\t\t<div id=\"urvanov-syntax-highlighter-6a6c6333f3a43260157617\" class=\"urvanov-syntax-highlighter-syntax crayon-theme-classic urvanov-syntax-highlighter-font-monaco urvanov-syntax-highlighter-os-pc print-yes notranslate\" data-settings=\" minimize scroll-mouseover\" style=\" margin-top: 12px; margin-bottom: 12px; font-size: 12px !important; line-height: 15px !important;\">\n\t\t\n\t\t\t<div class=\"crayon-toolbar\" data-settings=\" mouseover overlay hide delay\" style=\"font-size: 12px !important;height: 18px !important; line-height: 18px !important;\"><span class=\"crayon-title\"><\/span>\n\t\t\t<div class=\"crayon-tools\" style=\"font-size: 12px !important;height: 18px !important; line-height: 18px !important;\"><div class=\"crayon-button urvanov-syntax-highlighter-nums-button\" title=\"Zeilennummern\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-plain-button\" title=\"Unformatierte Code-Ansicht\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-wrap-button\" title=\"Zeilenumbruch umschalten\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-expand-button\" title=\"Code aufklappen\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-copy-button\" title=\"Copy\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-popup-button\" title=\"Code in einem neuen Fenster anzeigen\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><\/div><\/div>\n\t\t\t<div class=\"crayon-info\" style=\"min-height: 16.8px !important; line-height: 16.8px !important;\"><\/div>\n\t\t\t<div class=\"urvanov-syntax-highlighter-plain-wrap\"><textarea wrap=\"soft\" class=\"urvanov-syntax-highlighter-plain print-no\" data-settings=\"dblclick\" readonly style=\"-moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4; font-size: 12px !important; line-height: 15px !important;\">\n#!\/bin\/bash\r\n# Pr\u00fcft, ob der Autofs-Mount aktiv ist, und startet bei Bedarf VDR neu.\r\n\r\nMOUNTPOINT=\"\/mnt\/autofs\/vdr_recdir\"\r\nTAG=\"vdr\"\r\n\r\nlog() {\r\n  logger -t \"$TAG\" \"$1\"\r\n}\r\n\r\nlog \"Autofs-Check: Pr\u00fcfe Mount $MOUNTPOINT\"\r\n\r\n# Pr\u00fcfen, ob der Mount bereits aktiv ist\r\nif mountpoint -q \"$MOUNTPOINT\"; then\r\n  log \"Autofs-Check: Mount bereits aktiv, kein Neustart notwendig\"\r\n  exit 0\r\nfi\r\n\r\n# Solange der Mount nicht existiert, Zugriff ausl\u00f6sen, um Autofs zu starten\r\nwhile true; do\r\n  log \"Autofs-Check: Mount noch nicht aktiv, triggere Autofs\"\r\n  ls \"$MOUNTPOINT\"\/* 2&gt;&amp;1 | logger -t \"$TAG\"\r\n  if mountpoint -q \"$MOUNTPOINT\"; then\r\n    log \"Autofs-Check: Mount jetzt aktiv\"\r\n    break\r\n  fi\r\n  sleep 1\r\ndone\r\n\r\nsleep 3\r\n\r\nlog \"Autofs-Check: Neustart von VDR\"\r\nsystemctl restart vdr 2&gt;&amp;1 | logger -t \"$TAG\"\r\n\r\nlog \"Autofs-Check: Skript beendet\"\r\nexit 0<\/textarea><\/div>\n\t\t\t<div class=\"urvanov-syntax-highlighter-main\" style=\"\">\n\t\t\t\t<table class=\"crayon-table\">\n\t\t\t\t\t<tr class=\"urvanov-syntax-highlighter-row\">\n\t\t\t\t<td class=\"crayon-nums \" data-settings=\"show\">\n\t\t\t\t\t<div class=\"urvanov-syntax-highlighter-nums-content\" style=\"font-size: 12px !important; line-height: 15px !important;\"><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f3a43260157617-1\">1<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f3a43260157617-2\">2<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f3a43260157617-3\">3<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f3a43260157617-4\">4<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f3a43260157617-5\">5<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f3a43260157617-6\">6<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f3a43260157617-7\">7<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f3a43260157617-8\">8<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f3a43260157617-9\">9<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f3a43260157617-10\">10<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f3a43260157617-11\">11<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f3a43260157617-12\">12<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f3a43260157617-13\">13<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f3a43260157617-14\">14<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f3a43260157617-15\">15<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f3a43260157617-16\">16<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f3a43260157617-17\">17<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f3a43260157617-18\">18<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f3a43260157617-19\">19<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f3a43260157617-20\">20<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f3a43260157617-21\">21<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f3a43260157617-22\">22<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f3a43260157617-23\">23<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f3a43260157617-24\">24<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f3a43260157617-25\">25<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f3a43260157617-26\">26<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f3a43260157617-27\">27<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f3a43260157617-28\">28<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f3a43260157617-29\">29<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f3a43260157617-30\">30<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f3a43260157617-31\">31<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f3a43260157617-32\">32<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f3a43260157617-33\">33<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f3a43260157617-34\">34<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f3a43260157617-35\">35<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f3a43260157617-36\">36<\/div><\/div>\n\t\t\t\t<\/td>\n\t\t\t\t\t\t<td class=\"urvanov-syntax-highlighter-code\"><div class=\"crayon-pre\" style=\"font-size: 12px !important; line-height: 15px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;\"><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f3a43260157617-1\"><span class=\"crayon-p\">#!\/bin\/bash<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f3a43260157617-2\"><span class=\"crayon-p\"># Pr\u00fcft, ob der Autofs-Mount aktiv ist, und startet bei Bedarf VDR neu.<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f3a43260157617-3\">&nbsp;<\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f3a43260157617-4\"><span class=\"crayon-v\">MOUNTPOINT<\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-s\">\"\/mnt\/autofs\/vdr_recdir\"<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f3a43260157617-5\"><span class=\"crayon-v\">TAG<\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-s\">\"vdr\"<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f3a43260157617-6\">&nbsp;<\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f3a43260157617-7\"><span class=\"crayon-e\">log<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-sy\">{<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f3a43260157617-8\"><span class=\"crayon-h\">&nbsp;&nbsp;<\/span><span class=\"crayon-v\">logger<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-i\">t<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"$TAG\"<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"$1\"<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f3a43260157617-9\"><span class=\"crayon-sy\">}<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f3a43260157617-10\">&nbsp;<\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f3a43260157617-11\"><span class=\"crayon-i\">log<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"Autofs-Check: Pr\u00fcfe Mount $MOUNTPOINT\"<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f3a43260157617-12\">&nbsp;<\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f3a43260157617-13\"><span class=\"crayon-p\"># Pr\u00fcfen, ob der Mount bereits aktiv ist<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f3a43260157617-14\"><span class=\"crayon-st\">if<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">mountpoint<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-i\">q<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"$MOUNTPOINT\"<\/span><span class=\"crayon-sy\">;<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-st\">then<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f3a43260157617-15\"><span class=\"crayon-h\">&nbsp;&nbsp;<\/span><span class=\"crayon-i\">log<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"Autofs-Check: Mount bereits aktiv, kein Neustart notwendig\"<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f3a43260157617-16\"><span class=\"crayon-h\">&nbsp;&nbsp;<\/span><span class=\"crayon-i\">exit<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">0<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f3a43260157617-17\"><span class=\"crayon-i\">fi<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f3a43260157617-18\">&nbsp;<\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f3a43260157617-19\"><span class=\"crayon-p\"># Solange der Mount nicht existiert, Zugriff ausl\u00f6sen, um Autofs zu starten<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f3a43260157617-20\"><span class=\"crayon-st\">while<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-t\">true<\/span><span class=\"crayon-sy\">;<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-st\">do<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f3a43260157617-21\"><span class=\"crayon-h\">&nbsp;&nbsp;<\/span><span class=\"crayon-i\">log<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"Autofs-Check: Mount noch nicht aktiv, triggere Autofs\"<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f3a43260157617-22\"><span class=\"crayon-h\">&nbsp;&nbsp;<\/span><span class=\"crayon-i\">ls<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"$MOUNTPOINT\"<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-o\">*<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">2<\/span><span class=\"crayon-o\">&gt;<\/span><span class=\"crayon-o\">&amp;<\/span><span class=\"crayon-cn\">1<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">|<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">logger<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-i\">t<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"$TAG\"<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f3a43260157617-23\"><span class=\"crayon-h\">&nbsp;&nbsp;<\/span><span class=\"crayon-st\">if<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">mountpoint<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-i\">q<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"$MOUNTPOINT\"<\/span><span class=\"crayon-sy\">;<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-st\">then<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f3a43260157617-24\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-i\">log<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"Autofs-Check: Mount jetzt aktiv\"<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f3a43260157617-25\"><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-st\">break<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f3a43260157617-26\"><span class=\"crayon-h\">&nbsp;&nbsp;<\/span><span class=\"crayon-e\">fi<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f3a43260157617-27\"><span class=\"crayon-e\">&nbsp;&nbsp;<\/span><span class=\"crayon-i\">sleep<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">1<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f3a43260157617-28\"><span class=\"crayon-e\">done<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f3a43260157617-29\">&nbsp;<\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f3a43260157617-30\"><span class=\"crayon-i\">sleep<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">3<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f3a43260157617-31\">&nbsp;<\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f3a43260157617-32\"><span class=\"crayon-i\">log<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"Autofs-Check: Neustart von VDR\"<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f3a43260157617-33\"><span class=\"crayon-e\">systemctl <\/span><span class=\"crayon-e\">restart <\/span><span class=\"crayon-i\">vdr<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">2<\/span><span class=\"crayon-o\">&gt;<\/span><span class=\"crayon-o\">&amp;<\/span><span class=\"crayon-cn\">1<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">|<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">logger<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-i\">t<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"$TAG\"<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f3a43260157617-34\">&nbsp;<\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f3a43260157617-35\"><span class=\"crayon-i\">log<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">\"Autofs-Check: Skript beendet\"<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f3a43260157617-36\"><span class=\"crayon-i\">exit<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">0<\/span><\/div><\/div><\/td>\n\t\t\t\t\t<\/tr>\n\t\t\t\t<\/table>\n\t\t\t<\/div>\n\t\t<\/div>\r\n<!-- [Format Time: 0.0005 seconds] -->\r\n<p><strong>Funktionsweise:<\/strong><\/p>\n<ul>\n<li>Das Skript pr\u00fcft mit <code>mountpoint -q<\/code>, ob das Zielverzeichnis bereits gemountet ist.<\/li>\n<li>Falls der Mount nicht vorhanden ist, wird wiederholt ein Zugriff auf das Verzeichnis ausgel\u00f6st, wodurch Autofs den Mount vornimmt.<\/li>\n<li>Nach erfolgreichem Mount erfolgt ein kurzes Warten (<code>sleep 3<\/code>), bevor der VDR\u2011Dienst gestartet oder neu gestartet wird.<\/li>\n<li>Alle Ausgaben werden \u00fcber <code>logger<\/code> ins Syslog geschrieben, wodurch sie unter dem Tag <code>vdr<\/code> im Journal erscheinen.<\/li>\n<\/ul>\n<h3>Integration in den Boot\u2011Ablauf<\/h3>\n<p>Das Skript kann beim Systemstart \u00fcber einen Cronjob ausgef\u00fchrt werden:<\/p><!-- Urvanov Syntax Highlighter v2.9.1 -->\r\n\n\t\t<div id=\"urvanov-syntax-highlighter-6a6c6333f3a45954290257\" class=\"urvanov-syntax-highlighter-syntax crayon-theme-classic urvanov-syntax-highlighter-font-monaco urvanov-syntax-highlighter-os-pc print-yes notranslate\" data-settings=\" minimize scroll-mouseover\" style=\" margin-top: 12px; margin-bottom: 12px; font-size: 12px !important; line-height: 15px !important;\">\n\t\t\n\t\t\t<div class=\"crayon-toolbar\" data-settings=\" mouseover overlay hide delay\" style=\"font-size: 12px !important;height: 18px !important; line-height: 18px !important;\"><span class=\"crayon-title\"><\/span>\n\t\t\t<div class=\"crayon-tools\" style=\"font-size: 12px !important;height: 18px !important; line-height: 18px !important;\"><div class=\"crayon-button urvanov-syntax-highlighter-nums-button\" title=\"Zeilennummern\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-plain-button\" title=\"Unformatierte Code-Ansicht\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-wrap-button\" title=\"Zeilenumbruch umschalten\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-expand-button\" title=\"Code aufklappen\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-copy-button\" title=\"Copy\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-popup-button\" title=\"Code in einem neuen Fenster anzeigen\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><\/div><\/div>\n\t\t\t<div class=\"crayon-info\" style=\"min-height: 16.8px !important; line-height: 16.8px !important;\"><\/div>\n\t\t\t<div class=\"urvanov-syntax-highlighter-plain-wrap\"><textarea wrap=\"soft\" class=\"urvanov-syntax-highlighter-plain print-no\" data-settings=\"dblclick\" readonly style=\"-moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4; font-size: 12px !important; line-height: 15px !important;\">\n@reboot \/usr\/local\/bin\/wait-for-vdr-mount.sh<\/textarea><\/div>\n\t\t\t<div class=\"urvanov-syntax-highlighter-main\" style=\"\">\n\t\t\t\t<table class=\"crayon-table\">\n\t\t\t\t\t<tr class=\"urvanov-syntax-highlighter-row\">\n\t\t\t\t<td class=\"crayon-nums \" data-settings=\"show\">\n\t\t\t\t\t<div class=\"urvanov-syntax-highlighter-nums-content\" style=\"font-size: 12px !important; line-height: 15px !important;\"><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f3a45954290257-1\">1<\/div><\/div>\n\t\t\t\t<\/td>\n\t\t\t\t\t\t<td class=\"urvanov-syntax-highlighter-code\"><div class=\"crayon-pre\" style=\"font-size: 12px !important; line-height: 15px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;\"><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f3a45954290257-1\"><span class=\"crayon-sy\">@<\/span><span class=\"crayon-v\">reboot<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-v\">usr<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-v\">local<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-v\">bin<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-v\">wait<\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-st\">for<\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-v\">vdr<\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-v\">mount<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-v\">sh<\/span><\/div><\/div><\/td>\n\t\t\t\t\t<\/tr>\n\t\t\t\t<\/table>\n\t\t\t<\/div>\n\t\t<\/div>\r\n<!-- [Format Time: 0.0001 seconds] -->\r\n<p>Dadurch wird nach jedem Neustart \u00fcberpr\u00fcft, ob der Autofs\u2011Mount verf\u00fcgbar ist, und der VDR\u2011Dienst startet zuverl\u00e4ssig.<\/p>\n<p>&nbsp;<\/p>\n<hr \/>\n<h3><img decoding=\"async\" src=\"https:\/\/speefak.spdns.de\/oss_lifestyle\/wp-content\/uploads\/2026\/01\/trigger-vdr-mount.png\" \/><\/h3>\n<hr \/>\n<p><img decoding=\"async\" src=\"https:\/\/speefak.spdns.de\/oss_lifestyle\/wp-content\/uploads\/2026\/01\/VDR-autofs-sshfs-diagram.png\" \/><\/p>\n<h3>4. Zusammenfassung<\/h3>\n<ul>\n<li>Der Host stellt ein Schreibverzeichnis f\u00fcr den VDR-User bereit.<\/li>\n<li>Der Client mountet dieses Verzeichnis automatisch per SSHFS \u00fcber Autofs.<\/li>\n<li>Der lokale <code>vdr<\/code>-User besitzt Schreibrechte und kann Aufnahmen direkt auf dem Host speichern.<\/li>\n<li>Alle Vorg\u00e4nge erfolgen passwortlos \u00fcber SSH-Keys, der VDR-Dienst kann regul\u00e4r starten.<\/li>\n<li>Hilfsskript \u00fcberpr\u00fcft vor dem Start des VDR-Dienstes, ob der Mount aktiv ist.<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<hr \/>\n<p><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-2821 alignleft\" src=\"https:\/\/speefak.spdns.de\/oss_lifestyle\/wp-content\/uploads\/2014\/08\/CC_BY_NC_SA.png\" alt=\"CC_BY_NC_SA\" width=\"65\" height=\"23\" \/>by Speefak<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Der VDR-User auf einem Client-System kann seine Aufnahmen direkt auf einem entfernten Storage-Server ablegen, ohne dass eine Passworteingabe erforderlich ist. Auf dem Host-System werden hierf\u00fcr zun\u00e4chst die erforderlichen Benutzerkonten sowie die Verzeichnisse mit den korrekten Besitz- und Zugriffsrechten erstellt. Anschlie\u00dfend wird der SSH-Zugang f\u00fcr den VDR-User eingerichtet, inklusive einer Schl\u00fcssel-basierten Authentifizierung, um eine sichere, passwortlose [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[8,32,46],"tags":[],"class_list":["post-8576","post","type-post","status-publish","format-standard","hentry","category-anleitungen","category-netzwerke","category-virtualisierung"],"rttpg_featured_image_url":null,"rttpg_author":{"display_name":"speefak","author_link":"https:\/\/speefak.spdns.de\/oss_lifestyle\/author\/speefak_oss\/"},"rttpg_comment":0,"rttpg_category":"<a href=\"https:\/\/speefak.spdns.de\/oss_lifestyle\/category\/anleitungen\/\" rel=\"category tag\">Anleitungen<\/a> <a href=\"https:\/\/speefak.spdns.de\/oss_lifestyle\/category\/netzwerke\/\" rel=\"category tag\">Netzwerke<\/a> <a href=\"https:\/\/speefak.spdns.de\/oss_lifestyle\/category\/virtualisierung\/\" rel=\"category tag\">Virtualisierung<\/a>","rttpg_excerpt":"Der VDR-User auf einem Client-System kann seine Aufnahmen direkt auf einem entfernten Storage-Server ablegen, ohne dass eine Passworteingabe erforderlich ist. Auf dem Host-System werden hierf\u00fcr zun\u00e4chst die erforderlichen Benutzerkonten sowie die Verzeichnisse mit den korrekten Besitz- und Zugriffsrechten erstellt. Anschlie\u00dfend wird der SSH-Zugang f\u00fcr den VDR-User eingerichtet, inklusive einer Schl\u00fcssel-basierten Authentifizierung, um eine sichere, passwortlose&hellip;","_links":{"self":[{"href":"https:\/\/speefak.spdns.de\/oss_lifestyle\/wp-json\/wp\/v2\/posts\/8576","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/speefak.spdns.de\/oss_lifestyle\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/speefak.spdns.de\/oss_lifestyle\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/speefak.spdns.de\/oss_lifestyle\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/speefak.spdns.de\/oss_lifestyle\/wp-json\/wp\/v2\/comments?post=8576"}],"version-history":[{"count":0,"href":"https:\/\/speefak.spdns.de\/oss_lifestyle\/wp-json\/wp\/v2\/posts\/8576\/revisions"}],"wp:attachment":[{"href":"https:\/\/speefak.spdns.de\/oss_lifestyle\/wp-json\/wp\/v2\/media?parent=8576"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/speefak.spdns.de\/oss_lifestyle\/wp-json\/wp\/v2\/categories?post=8576"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/speefak.spdns.de\/oss_lifestyle\/wp-json\/wp\/v2\/tags?post=8576"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}},{"id":8498,"date":"2025-12-22T17:29:27","date_gmt":"2025-12-22T16:29:27","guid":{"rendered":"https:\/\/speefak.spdns.de\/oss_lifestyle\/?p=8498"},"modified":"2025-12-22T21:01:31","modified_gmt":"2025-12-22T20:01:31","slug":"wmbusmeters-mit-nanocul-usb-stick-installieren-und-einrichten-wmbus-t1-c1","status":"publish","type":"post","link":"https:\/\/speefak.spdns.de\/oss_lifestyle\/wmbusmeters-mit-nanocul-usb-stick-installieren-und-einrichten-wmbus-t1-c1\/","title":{"rendered":"wmbusmeters mit nanoCUL USB-Stick installieren und einrichten (wMBus T1\/C1)"},"content":{"rendered":"<p>Wireless\u2011M\u2011Bus\u2011Z\u00e4hler (z.\u202fB. Heizkostenverteiler oder Wasserz\u00e4hler) lassen sich mit einem <a href=\"https:\/\/smart-home-komponente.de\/products\/nano-cul-868-mbus\" target=\"_blank\" rel=\"noopener\"><strong>nanoCUL USB\u2011Stick (868\u202fMHz)<\/strong><\/a> und der Open\u2011Source\u2011Software <strong>wmbusmeters<\/strong> auslesen. Viele preisg\u00fcnstige nanoCUL\u2011Sticks werden mit einer Standard\u2011Firmware ausgeliefert, die <strong>keinen wMBus\u2011Support (T1\/C1\u2011Modus)<\/strong> bietet. In diesen F\u00e4llen ist ein Firmware\u2011Update zwingend erforderlich.<\/p>\n<hr \/>\n<h2>1. Voraussetzungen<\/h2>\n<ul>\n<li>Debian\u2011basiertes Linux\u2011System (z.\u202fB. Raspberry Pi OS, Debian, Ubuntu)<\/li>\n<li>nanoCUL USB\u2011Stick mit CC1101\u2011Funkchip (868\u202fMHz)<\/li>\n<li>Freier USB\u2011Port<\/li>\n<li>Root\u2011 bzw. sudo\u2011Zugriff<\/li>\n<\/ul>\n<hr \/>\n<h2>2. wmbusmeters kompilieren und installieren<\/h2>\n<p>Zun\u00e4chst werden die erforderlichen Pakete installiert. Anschlie\u00dfend wird wmbusmeters aus dem Quellcode kompiliert und als Debian\u2011Paket installiert:<\/p><!-- Urvanov Syntax Highlighter v2.9.1 -->\r\n\n\t\t<div id=\"urvanov-syntax-highlighter-6a6c6333f3d92124784364\" class=\"urvanov-syntax-highlighter-syntax crayon-theme-classic urvanov-syntax-highlighter-font-monaco urvanov-syntax-highlighter-os-pc print-yes notranslate\" data-settings=\" minimize scroll-mouseover\" style=\" margin-top: 12px; margin-bottom: 12px; font-size: 12px !important; line-height: 15px !important;\">\n\t\t\n\t\t\t<div class=\"crayon-toolbar\" data-settings=\" mouseover overlay hide delay\" style=\"font-size: 12px !important;height: 18px !important; line-height: 18px !important;\"><span class=\"crayon-title\"><\/span>\n\t\t\t<div class=\"crayon-tools\" style=\"font-size: 12px !important;height: 18px !important; line-height: 18px !important;\"><div class=\"crayon-button urvanov-syntax-highlighter-nums-button\" title=\"Zeilennummern\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-plain-button\" title=\"Unformatierte Code-Ansicht\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-wrap-button\" title=\"Zeilenumbruch umschalten\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-expand-button\" title=\"Code aufklappen\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-copy-button\" title=\"Copy\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-popup-button\" title=\"Code in einem neuen Fenster anzeigen\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><\/div><\/div>\n\t\t\t<div class=\"crayon-info\" style=\"min-height: 16.8px !important; line-height: 16.8px !important;\"><\/div>\n\t\t\t<div class=\"urvanov-syntax-highlighter-plain-wrap\"><textarea wrap=\"soft\" class=\"urvanov-syntax-highlighter-plain print-no\" data-settings=\"dblclick\" readonly style=\"-moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4; font-size: 12px !important; line-height: 15px !important;\">\nsudo apt update\r\nsudo apt install librtlsdr-dev libxml2-dev pkg-config git build-essential devscripts screen\r\n\r\ngit clone https:\/\/github.com\/wmbusmeters\/wmbusmeters.git\r\ncd wmbusmeters\/\r\n.\/configure\r\nmake\r\n\r\nVersion=$(grep -m1 Version CHANGES | awk '{print $2}')\r\nVersion=${Version:-$(date +%Y-%m-%d)}\r\n\r\nsudo checkinstall --pkgname=wmbusmeters --pkgversion=\"$Version\" --backup=no --deldoc=yes --fstrans=no --default --requires=\"librtlsdr0\"<\/textarea><\/div>\n\t\t\t<div class=\"urvanov-syntax-highlighter-main\" style=\"\">\n\t\t\t\t<table class=\"crayon-table\">\n\t\t\t\t\t<tr class=\"urvanov-syntax-highlighter-row\">\n\t\t\t\t<td class=\"crayon-nums \" data-settings=\"show\">\n\t\t\t\t\t<div class=\"urvanov-syntax-highlighter-nums-content\" style=\"font-size: 12px !important; line-height: 15px !important;\"><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f3d92124784364-1\">1<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f3d92124784364-2\">2<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f3d92124784364-3\">3<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f3d92124784364-4\">4<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f3d92124784364-5\">5<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f3d92124784364-6\">6<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f3d92124784364-7\">7<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f3d92124784364-8\">8<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f3d92124784364-9\">9<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f3d92124784364-10\">10<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f3d92124784364-11\">11<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f3d92124784364-12\">12<\/div><\/div>\n\t\t\t\t<\/td>\n\t\t\t\t\t\t<td class=\"urvanov-syntax-highlighter-code\"><div class=\"crayon-pre\" style=\"font-size: 12px !important; line-height: 15px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;\"><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f3d92124784364-1\"><span class=\"crayon-e\">sudo <\/span><span class=\"crayon-e\">apt <\/span><span class=\"crayon-e\">update<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f3d92124784364-2\"><span class=\"crayon-e\">sudo <\/span><span class=\"crayon-e\">apt <\/span><span class=\"crayon-e\">install <\/span><span class=\"crayon-v\">librtlsdr<\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-e\">dev <\/span><span class=\"crayon-v\">libxml2<\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-e\">dev <\/span><span class=\"crayon-v\">pkg<\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-e\">config <\/span><span class=\"crayon-e\">git <\/span><span class=\"crayon-v\">build<\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-e\">essential <\/span><span class=\"crayon-e\">devscripts <\/span><span class=\"crayon-e\">screen<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f3d92124784364-3\">&nbsp;<\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f3d92124784364-4\"><span class=\"crayon-e\">git <\/span><span class=\"crayon-r\">clone<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">https<\/span><span class=\"crayon-o\">:<\/span><span class=\"crayon-c\">\/\/github.com\/wmbusmeters\/wmbusmeters.git<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f3d92124784364-5\"><span class=\"crayon-e\">cd <\/span><span class=\"crayon-v\">wmbusmeters<\/span><span class=\"crayon-o\">\/<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f3d92124784364-6\"><span class=\"crayon-sy\">.<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-e\">configure<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f3d92124784364-7\"><span class=\"crayon-e\">make<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f3d92124784364-8\">&nbsp;<\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f3d92124784364-9\"><span class=\"crayon-v\">Version<\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-sy\">$<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">grep<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-e\">m1 <\/span><span class=\"crayon-e\">Version <\/span><span class=\"crayon-v\">CHANGES<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">|<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-i\">awk<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-s\">'{print $2}'<\/span><span class=\"crayon-sy\">)<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f3d92124784364-10\"><span class=\"crayon-v\">Version<\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-sy\">$<\/span><span class=\"crayon-sy\">{<\/span><span class=\"crayon-v\">Version<\/span><span class=\"crayon-o\">:<\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-sy\">$<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">date<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">+<\/span><span class=\"crayon-o\">%<\/span><span class=\"crayon-v\">Y<\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-o\">%<\/span><span class=\"crayon-v\">m<\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-o\">%<\/span><span class=\"crayon-v\">d<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">}<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f3d92124784364-11\">&nbsp;<\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f3d92124784364-12\"><span class=\"crayon-e\">sudo <\/span><span class=\"crayon-v\">checkinstall<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">--<\/span><span class=\"crayon-v\">pkgname<\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-v\">wmbusmeters<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">--<\/span><span class=\"crayon-v\">pkgversion<\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-s\">\"$Version\"<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">--<\/span><span class=\"crayon-v\">backup<\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-v\">no<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">--<\/span><span class=\"crayon-v\">deldoc<\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-v\">yes<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">--<\/span><span class=\"crayon-v\">fstrans<\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-v\">no<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">--<\/span><span class=\"crayon-st\">default<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">--<\/span><span class=\"crayon-v\">requires<\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-s\">\"librtlsdr0\"<\/span><\/div><\/div><\/td>\n\t\t\t\t\t<\/tr>\n\t\t\t\t<\/table>\n\t\t\t<\/div>\n\t\t<\/div>\r\n<!-- [Format Time: 0.0004 seconds] -->\r\n<p>Durch den Einsatz von <code>checkinstall<\/code> wird ein lokales Debian\u2011Paket erzeugt, das sich sp\u00e4ter sauber entfernen oder aktualisieren l\u00e4sst.<\/p>\n<p style=\"text-align: center;\"><a href=\"https:\/\/speefak.spdns.de\/oss_lifestyle\/wp-content\/uploads\/2025\/12\/wmbusmeters_1.19.0-1_amd64.deb_.zip\">wmbusmeters_1.19.0-1_amd64.deb<\/a> (debian 13 build)<\/p>\n<hr \/>\n<h2>3. Erster Funktionstest<\/h2>\n<p>Nach dem Einstecken des nanoCUL\u2011Sticks kann ein erster Funktionstest durchgef\u00fchrt werden:<\/p><!-- Urvanov Syntax Highlighter v2.9.1 -->\r\n\n\t\t<div id=\"urvanov-syntax-highlighter-6a6c6333f3d9b228435797\" class=\"urvanov-syntax-highlighter-syntax crayon-theme-classic urvanov-syntax-highlighter-font-monaco urvanov-syntax-highlighter-os-pc print-yes notranslate\" data-settings=\" minimize scroll-mouseover\" style=\" margin-top: 12px; margin-bottom: 12px; font-size: 12px !important; line-height: 15px !important;\">\n\t\t\n\t\t\t<div class=\"crayon-toolbar\" data-settings=\" mouseover overlay hide delay\" style=\"font-size: 12px !important;height: 18px !important; line-height: 18px !important;\"><span class=\"crayon-title\"><\/span>\n\t\t\t<div class=\"crayon-tools\" style=\"font-size: 12px !important;height: 18px !important; line-height: 18px !important;\"><div class=\"crayon-button urvanov-syntax-highlighter-nums-button\" title=\"Zeilennummern\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-plain-button\" title=\"Unformatierte Code-Ansicht\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-wrap-button\" title=\"Zeilenumbruch umschalten\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-expand-button\" title=\"Code aufklappen\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-copy-button\" title=\"Copy\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-popup-button\" title=\"Code in einem neuen Fenster anzeigen\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><\/div><\/div>\n\t\t\t<div class=\"crayon-info\" style=\"min-height: 16.8px !important; line-height: 16.8px !important;\"><\/div>\n\t\t\t<div class=\"urvanov-syntax-highlighter-plain-wrap\"><textarea wrap=\"soft\" class=\"urvanov-syntax-highlighter-plain print-no\" data-settings=\"dblclick\" readonly style=\"-moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4; font-size: 12px !important; line-height: 15px !important;\">\nsudo wmbusmeters --debug auto:t1<\/textarea><\/div>\n\t\t\t<div class=\"urvanov-syntax-highlighter-main\" style=\"\">\n\t\t\t\t<table class=\"crayon-table\">\n\t\t\t\t\t<tr class=\"urvanov-syntax-highlighter-row\">\n\t\t\t\t<td class=\"crayon-nums \" data-settings=\"show\">\n\t\t\t\t\t<div class=\"urvanov-syntax-highlighter-nums-content\" style=\"font-size: 12px !important; line-height: 15px !important;\"><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f3d9b228435797-1\">1<\/div><\/div>\n\t\t\t\t<\/td>\n\t\t\t\t\t\t<td class=\"urvanov-syntax-highlighter-code\"><div class=\"crayon-pre\" style=\"font-size: 12px !important; line-height: 15px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;\"><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f3d9b228435797-1\"><span class=\"crayon-e\">sudo <\/span><span class=\"crayon-v\">wmbusmeters<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">--<\/span><span class=\"crayon-e\">debug <\/span><span class=\"crayon-v\">auto<\/span><span class=\"crayon-o\">:<\/span><span class=\"crayon-v\">t1<\/span><\/div><\/div><\/td>\n\t\t\t\t\t<\/tr>\n\t\t\t\t<\/table>\n\t\t\t<\/div>\n\t\t<\/div>\r\n<!-- [Format Time: 0.0001 seconds] -->\r\n<p>Alternativ k\u00f6nnen mehrere Modi getestet werden:<\/p><!-- Urvanov Syntax Highlighter v2.9.1 -->\r\n\n\t\t<div id=\"urvanov-syntax-highlighter-6a6c6333f3d9d673845114\" class=\"urvanov-syntax-highlighter-syntax crayon-theme-classic urvanov-syntax-highlighter-font-monaco urvanov-syntax-highlighter-os-pc print-yes notranslate\" data-settings=\" minimize scroll-mouseover\" style=\" margin-top: 12px; margin-bottom: 12px; font-size: 12px !important; line-height: 15px !important;\">\n\t\t\n\t\t\t<div class=\"crayon-toolbar\" data-settings=\" mouseover overlay hide delay\" style=\"font-size: 12px !important;height: 18px !important; line-height: 18px !important;\"><span class=\"crayon-title\"><\/span>\n\t\t\t<div class=\"crayon-tools\" style=\"font-size: 12px !important;height: 18px !important; line-height: 18px !important;\"><div class=\"crayon-button urvanov-syntax-highlighter-nums-button\" title=\"Zeilennummern\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-plain-button\" title=\"Unformatierte Code-Ansicht\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-wrap-button\" title=\"Zeilenumbruch umschalten\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-expand-button\" title=\"Code aufklappen\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-copy-button\" title=\"Copy\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-popup-button\" title=\"Code in einem neuen Fenster anzeigen\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><\/div><\/div>\n\t\t\t<div class=\"crayon-info\" style=\"min-height: 16.8px !important; line-height: 16.8px !important;\"><\/div>\n\t\t\t<div class=\"urvanov-syntax-highlighter-plain-wrap\"><textarea wrap=\"soft\" class=\"urvanov-syntax-highlighter-plain print-no\" data-settings=\"dblclick\" readonly style=\"-moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4; font-size: 12px !important; line-height: 15px !important;\">\nsudo wmbusmeters --debug auto:c1,t1<\/textarea><\/div>\n\t\t\t<div class=\"urvanov-syntax-highlighter-main\" style=\"\">\n\t\t\t\t<table class=\"crayon-table\">\n\t\t\t\t\t<tr class=\"urvanov-syntax-highlighter-row\">\n\t\t\t\t<td class=\"crayon-nums \" data-settings=\"show\">\n\t\t\t\t\t<div class=\"urvanov-syntax-highlighter-nums-content\" style=\"font-size: 12px !important; line-height: 15px !important;\"><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f3d9d673845114-1\">1<\/div><\/div>\n\t\t\t\t<\/td>\n\t\t\t\t\t\t<td class=\"urvanov-syntax-highlighter-code\"><div class=\"crayon-pre\" style=\"font-size: 12px !important; line-height: 15px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;\"><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f3d9d673845114-1\"><span class=\"crayon-e\">sudo <\/span><span class=\"crayon-v\">wmbusmeters<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">--<\/span><span class=\"crayon-e\">debug <\/span><span class=\"crayon-v\">auto<\/span><span class=\"crayon-o\">:<\/span><span class=\"crayon-v\">c1<\/span><span class=\"crayon-sy\">,<\/span><span class=\"crayon-v\">t1<\/span><\/div><\/div><\/td>\n\t\t\t\t\t<\/tr>\n\t\t\t\t<\/table>\n\t\t\t<\/div>\n\t\t<\/div>\r\n<!-- [Format Time: 0.0001 seconds] -->\r\n<p>Oder alle Ausgaben in Shell anzeigen und in einer Logdatei f\u00fcr sp\u00e4tere Analysen speichern<\/p><!-- Urvanov Syntax Highlighter v2.9.1 -->\r\n\n\t\t<div id=\"urvanov-syntax-highlighter-6a6c6333f3da0679252559\" class=\"urvanov-syntax-highlighter-syntax crayon-theme-classic urvanov-syntax-highlighter-font-monaco urvanov-syntax-highlighter-os-pc print-yes notranslate\" data-settings=\" minimize scroll-mouseover\" style=\" margin-top: 12px; margin-bottom: 12px; font-size: 12px !important; line-height: 15px !important;\">\n\t\t\n\t\t\t<div class=\"crayon-toolbar\" data-settings=\" mouseover overlay hide delay\" style=\"font-size: 12px !important;height: 18px !important; line-height: 18px !important;\"><span class=\"crayon-title\"><\/span>\n\t\t\t<div class=\"crayon-tools\" style=\"font-size: 12px !important;height: 18px !important; line-height: 18px !important;\"><div class=\"crayon-button urvanov-syntax-highlighter-nums-button\" title=\"Zeilennummern\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-plain-button\" title=\"Unformatierte Code-Ansicht\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-wrap-button\" title=\"Zeilenumbruch umschalten\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-expand-button\" title=\"Code aufklappen\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-copy-button\" title=\"Copy\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-popup-button\" title=\"Code in einem neuen Fenster anzeigen\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><\/div><\/div>\n\t\t\t<div class=\"crayon-info\" style=\"min-height: 16.8px !important; line-height: 16.8px !important;\"><\/div>\n\t\t\t<div class=\"urvanov-syntax-highlighter-plain-wrap\"><textarea wrap=\"soft\" class=\"urvanov-syntax-highlighter-plain print-no\" data-settings=\"dblclick\" readonly style=\"-moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4; font-size: 12px !important; line-height: 15px !important;\">\nwmbusmeters --debug --logtelegrams  --verbose --usestdoutforlogging \/dev\/ttyUSB0:cul:c1 | tee wmbusmeters-$(date +%Y%m%d).log<\/textarea><\/div>\n\t\t\t<div class=\"urvanov-syntax-highlighter-main\" style=\"\">\n\t\t\t\t<table class=\"crayon-table\">\n\t\t\t\t\t<tr class=\"urvanov-syntax-highlighter-row\">\n\t\t\t\t<td class=\"crayon-nums \" data-settings=\"show\">\n\t\t\t\t\t<div class=\"urvanov-syntax-highlighter-nums-content\" style=\"font-size: 12px !important; line-height: 15px !important;\"><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f3da0679252559-1\">1<\/div><\/div>\n\t\t\t\t<\/td>\n\t\t\t\t\t\t<td class=\"urvanov-syntax-highlighter-code\"><div class=\"crayon-pre\" style=\"font-size: 12px !important; line-height: 15px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;\"><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f3da0679252559-1\"><span class=\"crayon-v\">wmbusmeters<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">--<\/span><span class=\"crayon-v\">debug<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">--<\/span><span class=\"crayon-v\">logtelegrams<\/span><span class=\"crayon-h\">&nbsp;&nbsp;<\/span><span class=\"crayon-o\">--<\/span><span class=\"crayon-v\">verbose<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">--<\/span><span class=\"crayon-v\">usestdoutforlogging<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-v\">dev<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-v\">ttyUSB0<\/span><span class=\"crayon-o\">:<\/span><span class=\"crayon-v\">cul<\/span><span class=\"crayon-o\">:<\/span><span class=\"crayon-v\">c1<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">|<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-e\">tee <\/span><span class=\"crayon-v\">wmbusmeters<\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-sy\">$<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">date<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">+<\/span><span class=\"crayon-o\">%<\/span><span class=\"crayon-v\">Y<\/span><span class=\"crayon-o\">%<\/span><span class=\"crayon-v\">m<\/span><span class=\"crayon-o\">%<\/span><span class=\"crayon-v\">d<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-v\">log<\/span><\/div><\/div><\/td>\n\t\t\t\t\t<\/tr>\n\t\t\t\t<\/table>\n\t\t\t<\/div>\n\t\t<\/div>\r\n<!-- [Format Time: 0.0002 seconds] -->\r\n<p><\/p>\n<h3>Typische Probleme mit Standard\u2011Firmware<\/h3>\n<ul>\n<li>Der Stick meldet sich beispielsweise als <strong>\u201enanoCUL868 V 1.67\u201c<\/strong><\/li>\n<li>Fehlermeldungen wie:\n<ul>\n<li><code>? (brt is unknown)<\/code><\/li>\n<li><code>setting link mode(s) t1 is not supported<\/code><\/li>\n<\/ul>\n<\/li>\n<li>Keine oder nur sehr kurze Telegramme (ca. 148\u202fBytes)<\/li>\n<\/ul>\n<p><strong>Ursache:<\/strong> Die Firmware wurde ohne aktivierten wMBus\u2011Support kompiliert. Ein Firmware\u2011Update ist erforderlich.<\/p>\n<hr \/>\n<h2>4. Firmware\u2011Update f\u00fcr wMBus<\/h2>\n<h3>Empfohlene Firmware<\/h3>\n<p><strong>nanoCUL_r568_mbus_c1t1_bufsize300.hex<\/strong><\/p>\n<p>Eigenschaften:<\/p>\n<ul>\n<li>Unterst\u00fctzung f\u00fcr <strong>T1\u2011 und C1\u2011Modus<\/strong><\/li>\n<li>Erweiterter Puffer (300\u202fBytes) zur Reduzierung von CRC\u2011Fehlern<\/li>\n<\/ul>\n<h3>Download<\/h3>\n<p><\/p><!-- Urvanov Syntax Highlighter v2.9.1 -->\r\n\n\t\t<div id=\"urvanov-syntax-highlighter-6a6c6333f3da3987721791\" class=\"urvanov-syntax-highlighter-syntax crayon-theme-classic urvanov-syntax-highlighter-font-monaco urvanov-syntax-highlighter-os-pc print-yes notranslate\" data-settings=\" minimize scroll-mouseover\" style=\" margin-top: 12px; margin-bottom: 12px; font-size: 12px !important; line-height: 15px !important;\">\n\t\t\n\t\t\t<div class=\"crayon-toolbar\" data-settings=\" mouseover overlay hide delay\" style=\"font-size: 12px !important;height: 18px !important; line-height: 18px !important;\"><span class=\"crayon-title\"><\/span>\n\t\t\t<div class=\"crayon-tools\" style=\"font-size: 12px !important;height: 18px !important; line-height: 18px !important;\"><div class=\"crayon-button urvanov-syntax-highlighter-nums-button\" title=\"Zeilennummern\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-plain-button\" title=\"Unformatierte Code-Ansicht\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-wrap-button\" title=\"Zeilenumbruch umschalten\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-expand-button\" title=\"Code aufklappen\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-copy-button\" title=\"Copy\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-popup-button\" title=\"Code in einem neuen Fenster anzeigen\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><\/div><\/div>\n\t\t\t<div class=\"crayon-info\" style=\"min-height: 16.8px !important; line-height: 16.8px !important;\"><\/div>\n\t\t\t<div class=\"urvanov-syntax-highlighter-plain-wrap\"><textarea wrap=\"soft\" class=\"urvanov-syntax-highlighter-plain print-no\" data-settings=\"dblclick\" readonly style=\"-moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4; font-size: 12px !important; line-height: 15px !important;\">\nwget https:\/\/speefak.spdns.de\/oss_lifestyle\/wp-content\/uploads\/2025\/12\/nanoCUL_r568_mbus_c1t1_bufsize300.hex_.zip -O nanoCUL_r568_mbus_c1t1_bufsize300.hex<\/textarea><\/div>\n\t\t\t<div class=\"urvanov-syntax-highlighter-main\" style=\"\">\n\t\t\t\t<table class=\"crayon-table\">\n\t\t\t\t\t<tr class=\"urvanov-syntax-highlighter-row\">\n\t\t\t\t<td class=\"crayon-nums \" data-settings=\"show\">\n\t\t\t\t\t<div class=\"urvanov-syntax-highlighter-nums-content\" style=\"font-size: 12px !important; line-height: 15px !important;\"><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f3da3987721791-1\">1<\/div><\/div>\n\t\t\t\t<\/td>\n\t\t\t\t\t\t<td class=\"urvanov-syntax-highlighter-code\"><div class=\"crayon-pre\" style=\"font-size: 12px !important; line-height: 15px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;\"><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f3da3987721791-1\"><span class=\"crayon-e\">wget <\/span><span class=\"crayon-v\">https<\/span><span class=\"crayon-o\">:<\/span><span class=\"crayon-c\">\/\/speefak.spdns.de\/oss_lifestyle\/wp-content\/uploads\/2025\/12\/nanoCUL_r568_mbus_c1t1_bufsize300.hex_.zip -O nanoCUL_r568_mbus_c1t1_bufsize300.hex<\/span><\/div><\/div><\/td>\n\t\t\t\t\t<\/tr>\n\t\t\t\t<\/table>\n\t\t\t<\/div>\n\t\t<\/div>\r\n<!-- [Format Time: 0.0001 seconds] -->\r\n<p><\/p>\n<h3>Installation von avrdude<\/h3>\n<p><\/p><!-- Urvanov Syntax Highlighter v2.9.1 -->\r\n\n\t\t<div id=\"urvanov-syntax-highlighter-6a6c6333f3da5363695444\" class=\"urvanov-syntax-highlighter-syntax crayon-theme-classic urvanov-syntax-highlighter-font-monaco urvanov-syntax-highlighter-os-pc print-yes notranslate\" data-settings=\" minimize scroll-mouseover\" style=\" margin-top: 12px; margin-bottom: 12px; font-size: 12px !important; line-height: 15px !important;\">\n\t\t\n\t\t\t<div class=\"crayon-toolbar\" data-settings=\" mouseover overlay hide delay\" style=\"font-size: 12px !important;height: 18px !important; line-height: 18px !important;\"><span class=\"crayon-title\"><\/span>\n\t\t\t<div class=\"crayon-tools\" style=\"font-size: 12px !important;height: 18px !important; line-height: 18px !important;\"><div class=\"crayon-button urvanov-syntax-highlighter-nums-button\" title=\"Zeilennummern\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-plain-button\" title=\"Unformatierte Code-Ansicht\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-wrap-button\" title=\"Zeilenumbruch umschalten\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-expand-button\" title=\"Code aufklappen\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-copy-button\" title=\"Copy\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-popup-button\" title=\"Code in einem neuen Fenster anzeigen\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><\/div><\/div>\n\t\t\t<div class=\"crayon-info\" style=\"min-height: 16.8px !important; line-height: 16.8px !important;\"><\/div>\n\t\t\t<div class=\"urvanov-syntax-highlighter-plain-wrap\"><textarea wrap=\"soft\" class=\"urvanov-syntax-highlighter-plain print-no\" data-settings=\"dblclick\" readonly style=\"-moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4; font-size: 12px !important; line-height: 15px !important;\">\nsudo apt install avrdude<\/textarea><\/div>\n\t\t\t<div class=\"urvanov-syntax-highlighter-main\" style=\"\">\n\t\t\t\t<table class=\"crayon-table\">\n\t\t\t\t\t<tr class=\"urvanov-syntax-highlighter-row\">\n\t\t\t\t<td class=\"crayon-nums \" data-settings=\"show\">\n\t\t\t\t\t<div class=\"urvanov-syntax-highlighter-nums-content\" style=\"font-size: 12px !important; line-height: 15px !important;\"><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f3da5363695444-1\">1<\/div><\/div>\n\t\t\t\t<\/td>\n\t\t\t\t\t\t<td class=\"urvanov-syntax-highlighter-code\"><div class=\"crayon-pre\" style=\"font-size: 12px !important; line-height: 15px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;\"><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f3da5363695444-1\"><span class=\"crayon-e\">sudo <\/span><span class=\"crayon-e\">apt <\/span><span class=\"crayon-e\">install <\/span><span class=\"crayon-v\">avrdude<\/span><\/div><\/div><\/td>\n\t\t\t\t\t<\/tr>\n\t\t\t\t<\/table>\n\t\t\t<\/div>\n\t\t<\/div>\r\n<!-- [Format Time: 0.0001 seconds] -->\r\n<p><\/p>\n<h3>Flash\u2011Vorgang<\/h3>\n<ul>\n<li>wmbusmeters beenden<\/li>\n<li>nanoCUL\u2011Stick eingesteckt lassen<\/li>\n<\/ul>\n<p><\/p><!-- Urvanov Syntax Highlighter v2.9.1 -->\r\n\n\t\t<div id=\"urvanov-syntax-highlighter-6a6c6333f3da7278421503\" class=\"urvanov-syntax-highlighter-syntax crayon-theme-classic urvanov-syntax-highlighter-font-monaco urvanov-syntax-highlighter-os-pc print-yes notranslate\" data-settings=\" minimize scroll-mouseover\" style=\" margin-top: 12px; margin-bottom: 12px; font-size: 12px !important; line-height: 15px !important;\">\n\t\t\n\t\t\t<div class=\"crayon-toolbar\" data-settings=\" mouseover overlay hide delay\" style=\"font-size: 12px !important;height: 18px !important; line-height: 18px !important;\"><span class=\"crayon-title\"><\/span>\n\t\t\t<div class=\"crayon-tools\" style=\"font-size: 12px !important;height: 18px !important; line-height: 18px !important;\"><div class=\"crayon-button urvanov-syntax-highlighter-nums-button\" title=\"Zeilennummern\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-plain-button\" title=\"Unformatierte Code-Ansicht\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-wrap-button\" title=\"Zeilenumbruch umschalten\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-expand-button\" title=\"Code aufklappen\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-copy-button\" title=\"Copy\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-popup-button\" title=\"Code in einem neuen Fenster anzeigen\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><\/div><\/div>\n\t\t\t<div class=\"crayon-info\" style=\"min-height: 16.8px !important; line-height: 16.8px !important;\"><\/div>\n\t\t\t<div class=\"urvanov-syntax-highlighter-plain-wrap\"><textarea wrap=\"soft\" class=\"urvanov-syntax-highlighter-plain print-no\" data-settings=\"dblclick\" readonly style=\"-moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4; font-size: 12px !important; line-height: 15px !important;\">\nsudo avrdude -D -p atmega328p -c arduino -P \/dev\/ttyUSB0 -b 115200 -U flash:w:nanoCUL_r568_mbus_c1t1_bufsize300.hex<\/textarea><\/div>\n\t\t\t<div class=\"urvanov-syntax-highlighter-main\" style=\"\">\n\t\t\t\t<table class=\"crayon-table\">\n\t\t\t\t\t<tr class=\"urvanov-syntax-highlighter-row\">\n\t\t\t\t<td class=\"crayon-nums \" data-settings=\"show\">\n\t\t\t\t\t<div class=\"urvanov-syntax-highlighter-nums-content\" style=\"font-size: 12px !important; line-height: 15px !important;\"><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f3da7278421503-1\">1<\/div><\/div>\n\t\t\t\t<\/td>\n\t\t\t\t\t\t<td class=\"urvanov-syntax-highlighter-code\"><div class=\"crayon-pre\" style=\"font-size: 12px !important; line-height: 15px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;\"><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f3da7278421503-1\"><span class=\"crayon-e\">sudo <\/span><span class=\"crayon-v\">avrdude<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-v\">D<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-i\">p<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">atmega328p<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-i\">c<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">arduino<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-v\">P<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-v\">dev<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-v\">ttyUSB0<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-i\">b<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-cn\">115200<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-i\">U<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">flash<\/span><span class=\"crayon-o\">:<\/span><span class=\"crayon-v\">w<\/span><span class=\"crayon-o\">:<\/span><span class=\"crayon-v\">nanoCUL_r568_mbus_c1t1_bufsize300<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-v\">hex<\/span><\/div><\/div><\/td>\n\t\t\t\t\t<\/tr>\n\t\t\t\t<\/table>\n\t\t\t<\/div>\n\t\t<\/div>\r\n<!-- [Format Time: 0.0002 seconds] -->\r\n<p>Hinweise:<\/p>\n<ul>\n<li>Bei Synchronisationsfehlern k\u00f6nnen alternative Baudraten getestet werden (<code>57600<\/code> oder <code>38400<\/code>).<\/li>\n<li>Ein erfolgreicher Flash\u2011Vorgang endet mit der Meldung <code>\u2026 bytes of flash written \u2026 verified<\/code>.<\/li>\n<\/ul>\n<p>Nach Abschluss sollte der Stick kurz entfernt und erneut eingesteckt werden.<\/p>\n<hr \/>\n<h2>5. Funktionstest nach dem Firmware\u2011Update<\/h2>\n<p><\/p><!-- Urvanov Syntax Highlighter v2.9.1 -->\r\n\n\t\t<div id=\"urvanov-syntax-highlighter-6a6c6333f3daa154592881\" class=\"urvanov-syntax-highlighter-syntax crayon-theme-classic urvanov-syntax-highlighter-font-monaco urvanov-syntax-highlighter-os-pc print-yes notranslate\" data-settings=\" minimize scroll-mouseover\" style=\" margin-top: 12px; margin-bottom: 12px; font-size: 12px !important; line-height: 15px !important;\">\n\t\t\n\t\t\t<div class=\"crayon-toolbar\" data-settings=\" mouseover overlay hide delay\" style=\"font-size: 12px !important;height: 18px !important; line-height: 18px !important;\"><span class=\"crayon-title\"><\/span>\n\t\t\t<div class=\"crayon-tools\" style=\"font-size: 12px !important;height: 18px !important; line-height: 18px !important;\"><div class=\"crayon-button urvanov-syntax-highlighter-nums-button\" title=\"Zeilennummern\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-plain-button\" title=\"Unformatierte Code-Ansicht\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-wrap-button\" title=\"Zeilenumbruch umschalten\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-expand-button\" title=\"Code aufklappen\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-copy-button\" title=\"Copy\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-popup-button\" title=\"Code in einem neuen Fenster anzeigen\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><\/div><\/div>\n\t\t\t<div class=\"crayon-info\" style=\"min-height: 16.8px !important; line-height: 16.8px !important;\"><\/div>\n\t\t\t<div class=\"urvanov-syntax-highlighter-plain-wrap\"><textarea wrap=\"soft\" class=\"urvanov-syntax-highlighter-plain print-no\" data-settings=\"dblclick\" readonly style=\"-moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4; font-size: 12px !important; line-height: 15px !important;\">\nsudo wmbusmeters --debug auto:t1<\/textarea><\/div>\n\t\t\t<div class=\"urvanov-syntax-highlighter-main\" style=\"\">\n\t\t\t\t<table class=\"crayon-table\">\n\t\t\t\t\t<tr class=\"urvanov-syntax-highlighter-row\">\n\t\t\t\t<td class=\"crayon-nums \" data-settings=\"show\">\n\t\t\t\t\t<div class=\"urvanov-syntax-highlighter-nums-content\" style=\"font-size: 12px !important; line-height: 15px !important;\"><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f3daa154592881-1\">1<\/div><\/div>\n\t\t\t\t<\/td>\n\t\t\t\t\t\t<td class=\"urvanov-syntax-highlighter-code\"><div class=\"crayon-pre\" style=\"font-size: 12px !important; line-height: 15px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;\"><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f3daa154592881-1\"><span class=\"crayon-e\">sudo <\/span><span class=\"crayon-v\">wmbusmeters<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">--<\/span><span class=\"crayon-e\">debug <\/span><span class=\"crayon-v\">auto<\/span><span class=\"crayon-o\">:<\/span><span class=\"crayon-v\">t1<\/span><\/div><\/div><\/td>\n\t\t\t\t\t<\/tr>\n\t\t\t\t<\/table>\n\t\t\t<\/div>\n\t\t<\/div>\r\n<!-- [Format Time: 0.0001 seconds] -->\r\n<p>Erwartete Ergebnisse:<\/p>\n<ul>\n<li>Firmware\u2011Version enth\u00e4lt den Zusatz <strong>\u201e_r568\u201c<\/strong><\/li>\n<li>Erfolgreicher Moduswechsel (z.\u202fB. <code>TMODE<\/code>)<\/li>\n<li>Regelm\u00e4\u00dfiger Empfang von Telegrammen (typisch alle 5\u201315\u202fMinuten)<\/li>\n<\/ul>\n<p>Optional kann zus\u00e4tzlich der C1\u2011Modus getestet werden:<\/p><!-- Urvanov Syntax Highlighter v2.9.1 -->\r\n\n\t\t<div id=\"urvanov-syntax-highlighter-6a6c6333f3dac040798352\" class=\"urvanov-syntax-highlighter-syntax crayon-theme-classic urvanov-syntax-highlighter-font-monaco urvanov-syntax-highlighter-os-pc print-yes notranslate\" data-settings=\" minimize scroll-mouseover\" style=\" margin-top: 12px; margin-bottom: 12px; font-size: 12px !important; line-height: 15px !important;\">\n\t\t\n\t\t\t<div class=\"crayon-toolbar\" data-settings=\" mouseover overlay hide delay\" style=\"font-size: 12px !important;height: 18px !important; line-height: 18px !important;\"><span class=\"crayon-title\"><\/span>\n\t\t\t<div class=\"crayon-tools\" style=\"font-size: 12px !important;height: 18px !important; line-height: 18px !important;\"><div class=\"crayon-button urvanov-syntax-highlighter-nums-button\" title=\"Zeilennummern\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-plain-button\" title=\"Unformatierte Code-Ansicht\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-wrap-button\" title=\"Zeilenumbruch umschalten\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-expand-button\" title=\"Code aufklappen\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-copy-button\" title=\"Copy\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-popup-button\" title=\"Code in einem neuen Fenster anzeigen\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><\/div><\/div>\n\t\t\t<div class=\"crayon-info\" style=\"min-height: 16.8px !important; line-height: 16.8px !important;\"><\/div>\n\t\t\t<div class=\"urvanov-syntax-highlighter-plain-wrap\"><textarea wrap=\"soft\" class=\"urvanov-syntax-highlighter-plain print-no\" data-settings=\"dblclick\" readonly style=\"-moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4; font-size: 12px !important; line-height: 15px !important;\">\nsudo wmbusmeters --debug auto:c1<\/textarea><\/div>\n\t\t\t<div class=\"urvanov-syntax-highlighter-main\" style=\"\">\n\t\t\t\t<table class=\"crayon-table\">\n\t\t\t\t\t<tr class=\"urvanov-syntax-highlighter-row\">\n\t\t\t\t<td class=\"crayon-nums \" data-settings=\"show\">\n\t\t\t\t\t<div class=\"urvanov-syntax-highlighter-nums-content\" style=\"font-size: 12px !important; line-height: 15px !important;\"><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f3dac040798352-1\">1<\/div><\/div>\n\t\t\t\t<\/td>\n\t\t\t\t\t\t<td class=\"urvanov-syntax-highlighter-code\"><div class=\"crayon-pre\" style=\"font-size: 12px !important; line-height: 15px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;\"><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f3dac040798352-1\"><span class=\"crayon-e\">sudo <\/span><span class=\"crayon-v\">wmbusmeters<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">--<\/span><span class=\"crayon-e\">debug <\/span><span class=\"crayon-v\">auto<\/span><span class=\"crayon-o\">:<\/span><span class=\"crayon-v\">c1<\/span><\/div><\/div><\/td>\n\t\t\t\t\t<\/tr>\n\t\t\t\t<\/table>\n\t\t\t<\/div>\n\t\t<\/div>\r\n<!-- [Format Time: 0.0001 seconds] -->\r\n<p><\/p>\n<hr \/>\n<h2>6. Dauerhafte Konfiguration<\/h2>\n<h3>Z\u00e4hler\u2011Konfiguration<\/h3>\n<p><\/p><!-- Urvanov Syntax Highlighter v2.9.1 -->\r\n\n\t\t<div id=\"urvanov-syntax-highlighter-6a6c6333f3daf178501250\" class=\"urvanov-syntax-highlighter-syntax crayon-theme-classic urvanov-syntax-highlighter-font-monaco urvanov-syntax-highlighter-os-pc print-yes notranslate\" data-settings=\" minimize scroll-mouseover\" style=\" margin-top: 12px; margin-bottom: 12px; font-size: 12px !important; line-height: 15px !important;\">\n\t\t\n\t\t\t<div class=\"crayon-toolbar\" data-settings=\" mouseover overlay hide delay\" style=\"font-size: 12px !important;height: 18px !important; line-height: 18px !important;\"><span class=\"crayon-title\"><\/span>\n\t\t\t<div class=\"crayon-tools\" style=\"font-size: 12px !important;height: 18px !important; line-height: 18px !important;\"><div class=\"crayon-button urvanov-syntax-highlighter-nums-button\" title=\"Zeilennummern\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-plain-button\" title=\"Unformatierte Code-Ansicht\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-wrap-button\" title=\"Zeilenumbruch umschalten\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-expand-button\" title=\"Code aufklappen\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-copy-button\" title=\"Copy\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-popup-button\" title=\"Code in einem neuen Fenster anzeigen\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><\/div><\/div>\n\t\t\t<div class=\"crayon-info\" style=\"min-height: 16.8px !important; line-height: 16.8px !important;\"><\/div>\n\t\t\t<div class=\"urvanov-syntax-highlighter-plain-wrap\"><textarea wrap=\"soft\" class=\"urvanov-syntax-highlighter-plain print-no\" data-settings=\"dblclick\" readonly style=\"-moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4; font-size: 12px !important; line-height: 15px !important;\">\nsudo mkdir -p \/etc\/wmbusmeters.d\r\nsudo nano \/etc\/wmbusmeters.d\/bfw240.conf<\/textarea><\/div>\n\t\t\t<div class=\"urvanov-syntax-highlighter-main\" style=\"\">\n\t\t\t\t<table class=\"crayon-table\">\n\t\t\t\t\t<tr class=\"urvanov-syntax-highlighter-row\">\n\t\t\t\t<td class=\"crayon-nums \" data-settings=\"show\">\n\t\t\t\t\t<div class=\"urvanov-syntax-highlighter-nums-content\" style=\"font-size: 12px !important; line-height: 15px !important;\"><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f3daf178501250-1\">1<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f3daf178501250-2\">2<\/div><\/div>\n\t\t\t\t<\/td>\n\t\t\t\t\t\t<td class=\"urvanov-syntax-highlighter-code\"><div class=\"crayon-pre\" style=\"font-size: 12px !important; line-height: 15px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;\"><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f3daf178501250-1\"><span class=\"crayon-e\">sudo <\/span><span class=\"crayon-v\">mkdir<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-v\">p<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-v\">etc<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-v\">wmbusmeters<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-i\">d<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f3daf178501250-2\"><span class=\"crayon-e\">sudo <\/span><span class=\"crayon-v\">nano<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-v\">etc<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-v\">wmbusmeters<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-v\">d<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-v\">bfw240<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-v\">conf<\/span><\/div><\/div><\/td>\n\t\t\t\t\t<\/tr>\n\t\t\t\t<\/table>\n\t\t\t<\/div>\n\t\t<\/div>\r\n<!-- [Format Time: 0.0001 seconds] -->\r\n<p>Beispiel f\u00fcr einen BFW\u202f240 radio:<\/p><!-- Urvanov Syntax Highlighter v2.9.1 -->\r\n\n\t\t<div id=\"urvanov-syntax-highlighter-6a6c6333f3db1533034335\" class=\"urvanov-syntax-highlighter-syntax crayon-theme-classic urvanov-syntax-highlighter-font-monaco urvanov-syntax-highlighter-os-pc print-yes notranslate\" data-settings=\" minimize scroll-mouseover\" style=\" margin-top: 12px; margin-bottom: 12px; font-size: 12px !important; line-height: 15px !important;\">\n\t\t\n\t\t\t<div class=\"crayon-toolbar\" data-settings=\" mouseover overlay hide delay\" style=\"font-size: 12px !important;height: 18px !important; line-height: 18px !important;\"><span class=\"crayon-title\"><\/span>\n\t\t\t<div class=\"crayon-tools\" style=\"font-size: 12px !important;height: 18px !important; line-height: 18px !important;\"><div class=\"crayon-button urvanov-syntax-highlighter-nums-button\" title=\"Zeilennummern\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-plain-button\" title=\"Unformatierte Code-Ansicht\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-wrap-button\" title=\"Zeilenumbruch umschalten\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-expand-button\" title=\"Code aufklappen\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-copy-button\" title=\"Copy\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-popup-button\" title=\"Code in einem neuen Fenster anzeigen\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><\/div><\/div>\n\t\t\t<div class=\"crayon-info\" style=\"min-height: 16.8px !important; line-height: 16.8px !important;\"><\/div>\n\t\t\t<div class=\"urvanov-syntax-highlighter-plain-wrap\"><textarea wrap=\"soft\" class=\"urvanov-syntax-highlighter-plain print-no\" data-settings=\"dblclick\" readonly style=\"-moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4; font-size: 12px !important; line-height: 15px !important;\">\nname=BFW240\r\ndriver=bfw240radio\r\nid=00819350          # 8\u2011stellige ID aus dem Debug\u2011Test\r\nkey=NOKEY            # In der Regel AES Ger\u00e4teschl\u00fcssel erforderlich. NOKEY = unverschl\u00fcsselt<\/textarea><\/div>\n\t\t\t<div class=\"urvanov-syntax-highlighter-main\" style=\"\">\n\t\t\t\t<table class=\"crayon-table\">\n\t\t\t\t\t<tr class=\"urvanov-syntax-highlighter-row\">\n\t\t\t\t<td class=\"crayon-nums \" data-settings=\"show\">\n\t\t\t\t\t<div class=\"urvanov-syntax-highlighter-nums-content\" style=\"font-size: 12px !important; line-height: 15px !important;\"><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f3db1533034335-1\">1<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f3db1533034335-2\">2<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f3db1533034335-3\">3<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f3db1533034335-4\">4<\/div><\/div>\n\t\t\t\t<\/td>\n\t\t\t\t\t\t<td class=\"urvanov-syntax-highlighter-code\"><div class=\"crayon-pre\" style=\"font-size: 12px !important; line-height: 15px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;\"><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f3db1533034335-1\"><span class=\"crayon-v\">name<\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-e\">BFW240<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f3db1533034335-2\"><span class=\"crayon-v\">driver<\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-e\">bfw240radio<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f3db1533034335-3\"><span class=\"crayon-v\">id<\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-cn\">00819350<\/span><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-p\"># 8\u2011stellige ID aus dem Debug\u2011Test<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f3db1533034335-4\"><span class=\"crayon-v\">key<\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-i\">NOKEY<\/span><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-p\"># In der Regel AES Ger\u00e4teschl\u00fcssel erforderlich. NOKEY = unverschl\u00fcsselt<\/span><\/div><\/div><\/td>\n\t\t\t\t\t<\/tr>\n\t\t\t\t<\/table>\n\t\t\t<\/div>\n\t\t<\/div>\r\n<!-- [Format Time: 0.0001 seconds] -->\r\n<p><\/p>\n<h3>Hauptkonfiguration<\/h3>\n<p><\/p><!-- Urvanov Syntax Highlighter v2.9.1 -->\r\n\n\t\t<div id=\"urvanov-syntax-highlighter-6a6c6333f3db3559392632\" class=\"urvanov-syntax-highlighter-syntax crayon-theme-classic urvanov-syntax-highlighter-font-monaco urvanov-syntax-highlighter-os-pc print-yes notranslate\" data-settings=\" minimize scroll-mouseover\" style=\" margin-top: 12px; margin-bottom: 12px; font-size: 12px !important; line-height: 15px !important;\">\n\t\t\n\t\t\t<div class=\"crayon-toolbar\" data-settings=\" mouseover overlay hide delay\" style=\"font-size: 12px !important;height: 18px !important; line-height: 18px !important;\"><span class=\"crayon-title\"><\/span>\n\t\t\t<div class=\"crayon-tools\" style=\"font-size: 12px !important;height: 18px !important; line-height: 18px !important;\"><div class=\"crayon-button urvanov-syntax-highlighter-nums-button\" title=\"Zeilennummern\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-plain-button\" title=\"Unformatierte Code-Ansicht\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-wrap-button\" title=\"Zeilenumbruch umschalten\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-expand-button\" title=\"Code aufklappen\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-copy-button\" title=\"Copy\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-popup-button\" title=\"Code in einem neuen Fenster anzeigen\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><\/div><\/div>\n\t\t\t<div class=\"crayon-info\" style=\"min-height: 16.8px !important; line-height: 16.8px !important;\"><\/div>\n\t\t\t<div class=\"urvanov-syntax-highlighter-plain-wrap\"><textarea wrap=\"soft\" class=\"urvanov-syntax-highlighter-plain print-no\" data-settings=\"dblclick\" readonly style=\"-moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4; font-size: 12px !important; line-height: 15px !important;\">\nsudo nano \/etc\/wmbusmeters.conf<\/textarea><\/div>\n\t\t\t<div class=\"urvanov-syntax-highlighter-main\" style=\"\">\n\t\t\t\t<table class=\"crayon-table\">\n\t\t\t\t\t<tr class=\"urvanov-syntax-highlighter-row\">\n\t\t\t\t<td class=\"crayon-nums \" data-settings=\"show\">\n\t\t\t\t\t<div class=\"urvanov-syntax-highlighter-nums-content\" style=\"font-size: 12px !important; line-height: 15px !important;\"><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f3db3559392632-1\">1<\/div><\/div>\n\t\t\t\t<\/td>\n\t\t\t\t\t\t<td class=\"urvanov-syntax-highlighter-code\"><div class=\"crayon-pre\" style=\"font-size: 12px !important; line-height: 15px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;\"><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f3db3559392632-1\"><span class=\"crayon-e\">sudo <\/span><span class=\"crayon-v\">nano<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-v\">etc<\/span><span class=\"crayon-o\">\/<\/span><span class=\"crayon-v\">wmbusmeters<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-v\">conf<\/span><\/div><\/div><\/td>\n\t\t\t\t\t<\/tr>\n\t\t\t\t<\/table>\n\t\t\t<\/div>\n\t\t<\/div>\r\n<!-- [Format Time: 0.0001 seconds] -->\r\n<p>Beispielinhalt:<\/p><!-- Urvanov Syntax Highlighter v2.9.1 -->\r\n\n\t\t<div id=\"urvanov-syntax-highlighter-6a6c6333f3db6664415105\" class=\"urvanov-syntax-highlighter-syntax crayon-theme-classic urvanov-syntax-highlighter-font-monaco urvanov-syntax-highlighter-os-pc print-yes notranslate\" data-settings=\" minimize scroll-mouseover\" style=\" margin-top: 12px; margin-bottom: 12px; font-size: 12px !important; line-height: 15px !important;\">\n\t\t\n\t\t\t<div class=\"crayon-toolbar\" data-settings=\" mouseover overlay hide delay\" style=\"font-size: 12px !important;height: 18px !important; line-height: 18px !important;\"><span class=\"crayon-title\"><\/span>\n\t\t\t<div class=\"crayon-tools\" style=\"font-size: 12px !important;height: 18px !important; line-height: 18px !important;\"><div class=\"crayon-button urvanov-syntax-highlighter-nums-button\" title=\"Zeilennummern\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-plain-button\" title=\"Unformatierte Code-Ansicht\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-wrap-button\" title=\"Zeilenumbruch umschalten\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-expand-button\" title=\"Code aufklappen\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-copy-button\" title=\"Copy\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-popup-button\" title=\"Code in einem neuen Fenster anzeigen\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><\/div><\/div>\n\t\t\t<div class=\"crayon-info\" style=\"min-height: 16.8px !important; line-height: 16.8px !important;\"><\/div>\n\t\t\t<div class=\"urvanov-syntax-highlighter-plain-wrap\"><textarea wrap=\"soft\" class=\"urvanov-syntax-highlighter-plain print-no\" data-settings=\"dblclick\" readonly style=\"-moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4; font-size: 12px !important; line-height: 15px !important;\">\ndevice=auto:t1       # alternativ: \/dev\/ttyUSB0:cul:t1\r\nformat=json          # JSON\u2011Ausgabe f\u00fcr MQTT oder Home\u2011Automation<\/textarea><\/div>\n\t\t\t<div class=\"urvanov-syntax-highlighter-main\" style=\"\">\n\t\t\t\t<table class=\"crayon-table\">\n\t\t\t\t\t<tr class=\"urvanov-syntax-highlighter-row\">\n\t\t\t\t<td class=\"crayon-nums \" data-settings=\"show\">\n\t\t\t\t\t<div class=\"urvanov-syntax-highlighter-nums-content\" style=\"font-size: 12px !important; line-height: 15px !important;\"><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f3db6664415105-1\">1<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f3db6664415105-2\">2<\/div><\/div>\n\t\t\t\t<\/td>\n\t\t\t\t\t\t<td class=\"urvanov-syntax-highlighter-code\"><div class=\"crayon-pre\" style=\"font-size: 12px !important; line-height: 15px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;\"><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f3db6664415105-1\"><span class=\"crayon-v\">device<\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-v\">auto<\/span><span class=\"crayon-o\">:<\/span><span class=\"crayon-i\">t1<\/span><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span><span class=\"crayon-p\"># alternativ: \/dev\/ttyUSB0:cul:t1<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f3db6664415105-2\"><span class=\"crayon-v\">format<\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-i\">json<\/span><span class=\"crayon-h\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span class=\"crayon-p\"># JSON\u2011Ausgabe f\u00fcr MQTT oder Home\u2011Automation<\/span><\/div><\/div><\/td>\n\t\t\t\t\t<\/tr>\n\t\t\t\t<\/table>\n\t\t\t<\/div>\n\t\t<\/div>\r\n<!-- [Format Time: 0.0001 seconds] -->\r\n<p><\/p>\n<h3>systemd\u2011Service aktivieren<\/h3>\n<p><\/p><!-- Urvanov Syntax Highlighter v2.9.1 -->\r\n\n\t\t<div id=\"urvanov-syntax-highlighter-6a6c6333f3db8278190961\" class=\"urvanov-syntax-highlighter-syntax crayon-theme-classic urvanov-syntax-highlighter-font-monaco urvanov-syntax-highlighter-os-pc print-yes notranslate\" data-settings=\" minimize scroll-mouseover\" style=\" margin-top: 12px; margin-bottom: 12px; font-size: 12px !important; line-height: 15px !important;\">\n\t\t\n\t\t\t<div class=\"crayon-toolbar\" data-settings=\" mouseover overlay hide delay\" style=\"font-size: 12px !important;height: 18px !important; line-height: 18px !important;\"><span class=\"crayon-title\"><\/span>\n\t\t\t<div class=\"crayon-tools\" style=\"font-size: 12px !important;height: 18px !important; line-height: 18px !important;\"><div class=\"crayon-button urvanov-syntax-highlighter-nums-button\" title=\"Zeilennummern\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-plain-button\" title=\"Unformatierte Code-Ansicht\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-wrap-button\" title=\"Zeilenumbruch umschalten\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-expand-button\" title=\"Code aufklappen\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-copy-button\" title=\"Copy\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><div class=\"crayon-button urvanov-syntax-highlighter-popup-button\" title=\"Code in einem neuen Fenster anzeigen\"><div class=\"urvanov-syntax-highlighter-button-icon\"><\/div><\/div><\/div><\/div>\n\t\t\t<div class=\"crayon-info\" style=\"min-height: 16.8px !important; line-height: 16.8px !important;\"><\/div>\n\t\t\t<div class=\"urvanov-syntax-highlighter-plain-wrap\"><textarea wrap=\"soft\" class=\"urvanov-syntax-highlighter-plain print-no\" data-settings=\"dblclick\" readonly style=\"-moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4; font-size: 12px !important; line-height: 15px !important;\">\nsudo systemctl restart wmbusmeters\r\nsudo systemctl enable wmbusmeters\r\njournalctl -u wmbusmeters -f<\/textarea><\/div>\n\t\t\t<div class=\"urvanov-syntax-highlighter-main\" style=\"\">\n\t\t\t\t<table class=\"crayon-table\">\n\t\t\t\t\t<tr class=\"urvanov-syntax-highlighter-row\">\n\t\t\t\t<td class=\"crayon-nums \" data-settings=\"show\">\n\t\t\t\t\t<div class=\"urvanov-syntax-highlighter-nums-content\" style=\"font-size: 12px !important; line-height: 15px !important;\"><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f3db8278190961-1\">1<\/div><div class=\"crayon-num crayon-striped-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f3db8278190961-2\">2<\/div><div class=\"crayon-num\" data-line=\"urvanov-syntax-highlighter-6a6c6333f3db8278190961-3\">3<\/div><\/div>\n\t\t\t\t<\/td>\n\t\t\t\t\t\t<td class=\"urvanov-syntax-highlighter-code\"><div class=\"crayon-pre\" style=\"font-size: 12px !important; line-height: 15px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;\"><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f3db8278190961-1\"><span class=\"crayon-e\">sudo <\/span><span class=\"crayon-e\">systemctl <\/span><span class=\"crayon-e\">restart <\/span><span class=\"crayon-e\">wmbusmeters<\/span><\/div><div class=\"crayon-line crayon-striped-line\" id=\"urvanov-syntax-highlighter-6a6c6333f3db8278190961-2\"><span class=\"crayon-e\">sudo <\/span><span class=\"crayon-e\">systemctl <\/span><span class=\"crayon-e\">enable <\/span><span class=\"crayon-e\">wmbusmeters<\/span><\/div><div class=\"crayon-line\" id=\"urvanov-syntax-highlighter-6a6c6333f3db8278190961-3\"><span class=\"crayon-v\">journalctl<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-i\">u<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-v\">wmbusmeters<\/span><span class=\"crayon-h\"> <\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-v\">f<\/span><\/div><\/div><\/td>\n\t\t\t\t\t<\/tr>\n\t\t\t\t<\/table>\n\t\t\t<\/div>\n\t\t<\/div>\r\n<!-- [Format Time: 0.0001 seconds] -->\r\n<p><\/p>\n<hr \/>\n<h2>7. Hinweise zum Betrieb<\/h2>\n<ul>\n<li><strong>Reichweite:<\/strong> Typischerweise 10\u201330\u202fm, abh\u00e4ngig von baulichen Gegebenheiten<\/li>\n<li><strong>Mehrere Z\u00e4hler:<\/strong> Separate Konfigurationsdateien unter <code>\/etc\/wmbusmeters.d\/<\/code> anlegen<\/li>\n<li><strong>CRC\u2011Fehler:<\/strong> Bei nanoCUL\u2011Sticks hardwarebedingt nicht vollst\u00e4ndig vermeidbar<\/li>\n<li><strong>Home\u2011Assistant\u2011Integration:<\/strong> JSON\u2011Ausgabe in Kombination mit MQTT empfohlen<\/li>\n<\/ul>\n<hr \/>\n<h2>Troubleshooting und bekannte Probleme<\/h2>\n<p><strong>Stick wird erkannt, aber kein Empfang<\/strong><br \/>\nIn der Regel ist eine nicht wMBus-f\u00e4hige Firmware die Ursache. Die Firmware-Version sollte explizit T1\/C1 unterst\u00fctzen.<\/p>\n<p><strong>H\u00e4ufige CRC-Fehler<\/strong><br \/>\nCRC-Fehler sind bei nanoCUL-Sticks hardwarebedingt m\u00f6glich. Eine Firmware mit gr\u00f6\u00dferem Puffer (300 Bytes) reduziert die Fehlerquote deutlich.<\/p>\n<p><strong>Kein Zugriff auf \/dev\/ttyUSB0<\/strong><br \/>\nUdev-Regeln oder fehlende Benutzerrechte pr\u00fcfen. Alternativ kann der Dienst testweise als Root gestartet werden.<\/p>\n<p><strong>Telegramme erscheinen unregelm\u00e4\u00dfig<\/strong><br \/>\nViele Heizkostenverteiler senden nur alle 5\u201315 Minuten. Dies stellt kein Fehlverhalten dar.<\/p>\n<hr \/>\n<p><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-2821 alignleft\" src=\"https:\/\/speefak.spdns.de\/oss_lifestyle\/wp-content\/uploads\/2014\/08\/CC_BY_NC_SA.png\" alt=\"CC_BY_NC_SA\" width=\"65\" height=\"23\" \/>by Speefak <span style=\"font-size: 10pt;\">| <a href=\"https:\/\/thomasheinz.net\/setting-link-modes-c1-is-not-supported-for-this-cul-device\/\" target=\"_blank\" rel=\"noopener\">https:\/\/thomasheinz.net<\/a> | <a href=\"https:\/\/github.com\/wmbusmeters\/wmbusmeters-wiki\" target=\"_blank\" rel=\"noopener\">wmbusmeters-wiki<\/a> | <a href=\"https:\/\/github.com\/smarthomeagentur\/culfw1\/releases\" target=\"_blank\" rel=\"noopener\">CUL Firmware<\/a>\u00a0|<\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Wireless\u2011M\u2011Bus\u2011Z\u00e4hler (z.\u202fB. Heizkostenverteiler oder Wasserz\u00e4hler) lassen sich mit einem nanoCUL USB\u2011Stick (868\u202fMHz) und der Open\u2011Source\u2011Software wmbusmeters auslesen. Viele preisg\u00fcnstige nanoCUL\u2011Sticks werden mit einer Standard\u2011Firmware ausgeliefert, die keinen wMBus\u2011Support (T1\/C1\u2011Modus) bietet. In diesen F\u00e4llen ist ein Firmware\u2011Update zwingend erforderlich. 1. Voraussetzungen Debian\u2011basiertes Linux\u2011System (z.\u202fB. Raspberry Pi OS, Debian, Ubuntu) nanoCUL USB\u2011Stick mit CC1101\u2011Funkchip (868\u202fMHz) Freier USB\u2011Port [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[8,26,111],"tags":[],"class_list":["post-8498","post","type-post","status-publish","format-standard","hentry","category-anleitungen","category-linux","category-smart-home"],"rttpg_featured_image_url":null,"rttpg_author":{"display_name":"speefak","author_link":"https:\/\/speefak.spdns.de\/oss_lifestyle\/author\/speefak_oss\/"},"rttpg_comment":0,"rttpg_category":"<a href=\"https:\/\/speefak.spdns.de\/oss_lifestyle\/category\/anleitungen\/\" rel=\"category tag\">Anleitungen<\/a> <a href=\"https:\/\/speefak.spdns.de\/oss_lifestyle\/category\/linux\/\" rel=\"category tag\">Linux<\/a> <a href=\"https:\/\/speefak.spdns.de\/oss_lifestyle\/category\/smart-home\/\" rel=\"category tag\">Smart Home<\/a>","rttpg_excerpt":"Wireless\u2011M\u2011Bus\u2011Z\u00e4hler (z.\u202fB. Heizkostenverteiler oder Wasserz\u00e4hler) lassen sich mit einem nanoCUL USB\u2011Stick (868\u202fMHz) und der Open\u2011Source\u2011Software wmbusmeters auslesen. Viele preisg\u00fcnstige nanoCUL\u2011Sticks werden mit einer Standard\u2011Firmware ausgeliefert, die keinen wMBus\u2011Support (T1\/C1\u2011Modus) bietet. In diesen F\u00e4llen ist ein Firmware\u2011Update zwingend erforderlich. 1. Voraussetzungen Debian\u2011basiertes Linux\u2011System (z.\u202fB. Raspberry Pi OS, Debian, Ubuntu) nanoCUL USB\u2011Stick mit CC1101\u2011Funkchip (868\u202fMHz) Freier USB\u2011Port&hellip;","_links":{"self":[{"href":"https:\/\/speefak.spdns.de\/oss_lifestyle\/wp-json\/wp\/v2\/posts\/8498","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/speefak.spdns.de\/oss_lifestyle\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/speefak.spdns.de\/oss_lifestyle\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/speefak.spdns.de\/oss_lifestyle\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/speefak.spdns.de\/oss_lifestyle\/wp-json\/wp\/v2\/comments?post=8498"}],"version-history":[{"count":0,"href":"https:\/\/speefak.spdns.de\/oss_lifestyle\/wp-json\/wp\/v2\/posts\/8498\/revisions"}],"wp:attachment":[{"href":"https:\/\/speefak.spdns.de\/oss_lifestyle\/wp-json\/wp\/v2\/media?parent=8498"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/speefak.spdns.de\/oss_lifestyle\/wp-json\/wp\/v2\/categories?post=8498"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/speefak.spdns.de\/oss_lifestyle\/wp-json\/wp\/v2\/tags?post=8498"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}},{"id":8473,"date":"2025-11-30T15:26:48","date_gmt":"2025-11-30T14:26:48","guid":{"rendered":"https:\/\/speefak.spdns.de\/oss_lifestyle\/?p=8473"},"modified":"2025-12-22T17:51:11","modified_gmt":"2025-12-22T16:51:11","slug":"slzb-zigbee-koordinator-mit-iobroker-zigbee-adapter-einrichten","status":"publish","type":"post","link":"https:\/\/speefak.spdns.de\/oss_lifestyle\/slzb-zigbee-koordinator-mit-iobroker-zigbee-adapter-einrichten\/","title":{"rendered":"SLZB Zigbee-Koordinator mit ioBroker Zigbee Adapter einrichten"},"content":{"rendered":"<p>Ein Zigbee-Koordinator bildet das zentrale Element eines stabilen Zigbee-Netzwerks. Er initialisiert das Mesh, verwaltet die Netzwerkstruktur und stellt sicher, dass Ger\u00e4te zuverl\u00e4ssig miteinander kommunizieren. Ohne einen funktionsf\u00e4higen Koordinator kann kein Zigbee-Netz aufgebaut oder betrieben werden.<\/p>\n<hr \/>\n<p data-start=\"63\" data-end=\"289\">Die Modelle <strong data-start=\"75\" data-end=\"87\">SLZB-P06<\/strong> und <strong data-start=\"92\" data-end=\"104\">SLZB-P10<\/strong> arbeiten \u00fcber die <strong data-start=\"123\" data-end=\"162\">PoE-Schnittstelle nicht zuverl\u00e4ssig<\/strong>. Nach etwa <strong data-start=\"174\" data-end=\"188\">1\u20132 Wochen<\/strong> f\u00e4llt die <strong data-start=\"199\" data-end=\"222\">PoE-Datenverbindung<\/strong> aus, sodass das Ger\u00e4t nur noch \u00fcber <strong data-start=\"259\" data-end=\"276\">USB oder WLAN<\/strong> nutzbar ist. Zus\u00e4tzlich zeigt die Software <strong data-start=\"321\" data-end=\"344\">falsche Statuswerte<\/strong>, z. B. eine angeblich aktive <strong data-start=\"374\" data-end=\"392\">USB-Verbindung<\/strong>, obwohl das Ger\u00e4t tats\u00e4chlich <strong data-start=\"423\" data-end=\"435\">per WLAN<\/strong> eingebunden ist. F\u00fcr einen <strong data-start=\"464\" data-end=\"491\">dauerhaften PoE-Betrieb<\/strong> sind diese Modelle daher <strong data-start=\"517\" data-end=\"547\">nur eingeschr\u00e4nkt geeignet<\/strong>.<\/p>\n<p data-start=\"15\" data-end=\"264\">Der <strong data-start=\"19\" data-end=\"72\">SONOFF Zigbee\/Thread PoE Dongle Max (Coordinator)<\/strong> zeigt im Vergleich zum SLZB einen <strong data-start=\"107\" data-end=\"132\">stabilen Dauerbetrieb<\/strong> und eine <strong data-start=\"142\" data-end=\"185\">sp\u00fcrbar bessere Sende-\/Empfangsleistung<\/strong>. In der Praxis sind die <strong data-start=\"210\" data-end=\"249\">Zigbee-Signalwerte etwa 20 % besser<\/strong> als beim SLZB. Zus\u00e4tzlich verf\u00fcgt der SONOFF \u2013 im Gegensatz zum SLZB \u2013 \u00fcber eine <strong data-start=\"332\" data-end=\"359\">Hardware-Reset-Funktion<\/strong>.<\/p>\n<p>Die <strong>Konfiguration in ioBroker<\/strong> ist grunds\u00e4tzlich identisch. Beim <strong>SONOFF Coordinator<\/strong> muss im <strong>Zigbee-Adapter<\/strong> jedoch <strong>\u201eSL EFR32 EMBER\u201c<\/strong> statt <strong>\u201eTI Z-Stack\u201c<\/strong> ausgew\u00e4hlt werden.<\/p>\n<hr \/>\n<h2>\ud83d\udd0c <strong>1. SLZB-Koordinator anschlie\u00dfen<\/strong><\/h2>\n<p>Der SLZB kann \u00fcber <strong>USB<\/strong> oder <strong>PoE\/Ethernet<\/strong> betrieben werden.<\/p>\n<ul>\n<li>Bei PoE ist eine freie Positionierung im Raum m\u00f6glich.<\/li>\n<li>Optimal ist ein ausreichender Abstand zu WLAN-Routern, Metallfl\u00e4chen und starken Funksendern.<\/li>\n<li>Beim USB-Betrieb sollte ein kurzes USB-Verl\u00e4ngerungskabel zur Minimierung von St\u00f6rungen eingesetzt werden.<\/li>\n<\/ul>\n<hr \/>\n<h2>\ud83e\udde9 <strong>2. Betriebsmodus w\u00e4hlen und Anbindung bestimmen<\/strong><\/h2>\n<p>Der SLZB bietet mehrere Betriebsmodi, die je nach Einsatzgebiet gew\u00e4hlt werden k\u00f6nnen.<br \/>\nZus\u00e4tzlich unterscheidet sich die Konfiguration abh\u00e4ngig davon, ob der Koordinator per <strong>USB<\/strong> oder <strong>PoE\/Ethernet<\/strong> angebunden ist.<\/p>\n<h3>Verf\u00fcgbare Betriebsmodi:<\/h3>\n<ol>\n<li><strong>Zigbee-Coordinator <\/strong>\u2192 Coordinator Modus f\u00fcr ioBroker<\/li>\n<li><strong>Zigbee-Router <\/strong>\u2192 Ger\u00e4t fungiert als Mesh-Verst\u00e4rker<\/li>\n<li><strong>Matter-over-Thread <\/strong>\u2192 Nur Thread\/Matter, kein Zigbee<\/li>\n<li><strong>Zigbee-Hub (beta) <\/strong>\u2192 Experimenteller Modus<\/li>\n<\/ol>\n<p>F\u00fcr ioBroker wird der Modus <strong>Zigbee-Coordinator<\/strong> ben\u00f6tigt.<\/p>\n<hr \/>\n<h3>\ud83d\udd0c USB-Betrieb<\/h3>\n<ul>\n<li>Anbindung erfolgt \u00fcber <code>\/dev\/serial\/by-id\/...<\/code><\/li>\n<li>Dieser Pfad bleibt systemstabil, im Gegensatz zu <code>\/dev\/ttyUSB0<\/code><\/li>\n<li>Baudrate f\u00fcr SLZB: <strong>115200<\/strong><\/li>\n<li>USB-Port m\u00f6glichst nicht wechseln<\/li>\n<\/ul>\n<h3>\ud83d\udd0c PoE-\/Ethernet-Betrieb<\/h3>\n<ul>\n<li>Zugriff erfolgt \u00fcber die IP-Adresse des SLZB<\/li>\n<li>Port 6638 muss erreichbar sein<\/li>\n<li>Verbindungstyp: TCP\/Socket<\/li>\n<li>URL f\u00fcr ioBroker:<\/li>\n<\/ul>\n<p><strong><code>tcp:\/\/&lt;coordinator-ip&gt;:6638<\/code><\/strong><br \/>\nBeispiel: <code>tcp:\/\/192.168.1.50:6638<\/code><\/p>\n<ul>\n<li>PoE-Betrieb erm\u00f6glicht flexible Positionierung ohne USB-Verl\u00e4ngerung<\/li>\n<li>Ideal f\u00fcr stabile Funkabdeckung<\/li>\n<\/ul>\n<hr \/>\n<h2>\ud83e\udde9 <strong>3. Zigbee-Adapter in ioBroker installieren<\/strong><\/h2>\n<p>Nach der Installation kann der Adapter gestartet werden, auch wenn noch keine Konfiguration vorgenommen wurde.<br \/>\nIn diesem Zustand startet das Zigbee-Subsystem bewusst nicht, da der automatische Start nicht aktiviert ist.<\/p>\n<p>Empfohlene Reihenfolge:<\/p>\n<ol>\n<li>Adapter installieren<\/li>\n<li>Einstellungen noch nicht speichern<\/li>\n<li>Test and Verification verwenden<\/li>\n<li>Erst nach erfolgreichem Test die Konfiguration dauerhaft speichern<\/li>\n<\/ol>\n<hr \/>\n<h2>\ud83e\uddd0 <strong>4. ExtPanID \u2013 kritischer Parameter<\/strong><\/h2>\n<p>Die ExtPanID definiert das Zigbee-Netz eindeutig.<\/p>\n<ul>\n<li>Vorgabe erfolgt durch den Koordinator<\/li>\n<li>Eine \u00c4nderung ist nicht zul\u00e4ssig<\/li>\n<li>Der Wert muss exakt in die Adapterkonfiguration \u00fcbernommen werden<\/li>\n<li>Abweichungen verhindern den Netzwerkstart<\/li>\n<\/ul>\n<hr \/>\n<h2>\ud83e\uddea <strong>5. Test and Verification<\/strong><\/h2>\n<p><strong>ioBroker \u2192 Zigbee \u2192 Einstellungen \u2192 Hardware \u2192 Test and Verification<\/strong><\/p>\n<ul>\n<li>Pr\u00fcfung der Ports und IP-Einstellungen<\/li>\n<li>Kontrolle der ExtPanID<\/li>\n<li>Teststart des Zigbee-Subsystems<\/li>\n<\/ul>\n<h3>Wichtiger Hinweis:<\/h3>\n<ul>\n<li>Eine \u00fcbereinstimmende PAN ID reicht nicht aus<\/li>\n<li>Entscheidend ist die Meldung <strong>\u201eZigbee started\u201c<\/strong><\/li>\n<li>Adapter-Neustarts sind in diesem Bereich nicht erforderlich<br \/>\n\u00c4nderungen k\u00f6nnen direkt getestet werden<\/li>\n<\/ul>\n<hr \/>\n<h2>\ud83d\udd04 <strong>6. NVRAM zur\u00fccksetzen<\/strong><\/h2>\n<p>Bei vorheriger Nutzung in einem anderen Zigbee-Netz:<\/p>\n<p>\u2192 <em>Test and Verification<\/em> \u2192 <strong>NVRAM l\u00f6schen<\/strong><\/p>\n<p>Anschlie\u00dfend erneuter Test.<\/p>\n<hr \/>\n<h2>\ud83d\udce1 <strong>7. Zigbee-Kanalwahl<\/strong><\/h2>\n<p>Empfohlene Kan\u00e4le:<\/p>\n<ul>\n<li>15<\/li>\n<li>20<\/li>\n<li>25<\/li>\n<\/ul>\n<p>Kanal 11 ist nur bei WLAN-Kanal 1 stark \u00fcberlagert.<\/p>\n<hr \/>\n<h2>\ud83c\udfe0 8<strong>. Ger\u00e4te einbinden<\/strong><\/h2>\n<p>Das Einbinden von Zigbee-Ger\u00e4ten erfolgt erst, wenn \u201eZigbee started\u201c im Log erscheint.<\/p>\n<hr \/>\n<h2>\u2699\ufe0f 9<strong>. Einrichtung abschlie\u00dfen<\/strong><\/h2>\n<p>Nach erfolgreichem Test:<\/p>\n<ol>\n<li>Option <strong>\u201eZigbee-Subsystem automatisch starten\u201c<\/strong> aktivieren<\/li>\n<li>Konfiguration speichern<\/li>\n<li>Adapter neu starten<\/li>\n<\/ol>\n<hr \/>\n<h2>\u26a0\ufe0f <strong>10. Troubleshooting<\/strong><\/h2>\n<table>\n<thead>\n<tr>\n<th>Problem<\/th>\n<th>Ursache<\/th>\n<th>L\u00f6sung<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Rotes X bei ExtPanID<\/td>\n<td>ExtPanID fehlerhaft oder nicht gesetzt<\/td>\n<td>ExtPanID aus Koordinator \u00fcbernehmen<\/td>\n<\/tr>\n<tr>\n<td>Failed to connect<\/td>\n<td>USB-\/TCP-Konfiguration fehlerhaft<\/td>\n<td>USB: by-id; PoE: korrekte IP\/Port<\/td>\n<\/tr>\n<tr>\n<td>Cannot request\u2026<\/td>\n<td>Netzwerk nicht initialisiert<\/td>\n<td>ExtPanID korrigieren und Test wiederholen<\/td>\n<\/tr>\n<tr>\n<td>Ger\u00e4te verbinden nicht<\/td>\n<td>Kanal oder Funkfeld ung\u00fcnstig<\/td>\n<td>Kan\u00e4le 15\/20\/25 testen<\/td>\n<\/tr>\n<tr>\n<td>ECONNRESET<\/td>\n<td>Netzwerkverbindung instabil<\/td>\n<td>Kabel\/Netzwerkanbindung pr\u00fcfen<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<hr \/>\n<p><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-2821 alignleft\" src=\"https:\/\/speefak.spdns.de\/oss_lifestyle\/wp-content\/uploads\/2014\/08\/CC_BY_NC_SA.png\" alt=\"CC_BY_NC_SA\" width=\"65\" height=\"23\" \/>by Speefak<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Ein Zigbee-Koordinator bildet das zentrale Element eines stabilen Zigbee-Netzwerks. Er initialisiert das Mesh, verwaltet die Netzwerkstruktur und stellt sicher, dass Ger\u00e4te zuverl\u00e4ssig miteinander kommunizieren. Ohne einen funktionsf\u00e4higen Koordinator kann kein Zigbee-Netz aufgebaut oder betrieben werden. Die Modelle SLZB-P06 und SLZB-P10 arbeiten \u00fcber die PoE-Schnittstelle nicht zuverl\u00e4ssig. Nach etwa 1\u20132 Wochen f\u00e4llt die PoE-Datenverbindung aus, sodass [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[8,109],"tags":[],"class_list":["post-8473","post","type-post","status-publish","format-standard","hentry","category-anleitungen","category-iobroker"],"rttpg_featured_image_url":null,"rttpg_author":{"display_name":"speefak","author_link":"https:\/\/speefak.spdns.de\/oss_lifestyle\/author\/speefak_oss\/"},"rttpg_comment":0,"rttpg_category":"<a href=\"https:\/\/speefak.spdns.de\/oss_lifestyle\/category\/anleitungen\/\" rel=\"category tag\">Anleitungen<\/a> <a href=\"https:\/\/speefak.spdns.de\/oss_lifestyle\/category\/iobroker\/\" rel=\"category tag\">ioBroker<\/a>","rttpg_excerpt":"Ein Zigbee-Koordinator bildet das zentrale Element eines stabilen Zigbee-Netzwerks. Er initialisiert das Mesh, verwaltet die Netzwerkstruktur und stellt sicher, dass Ger\u00e4te zuverl\u00e4ssig miteinander kommunizieren. Ohne einen funktionsf\u00e4higen Koordinator kann kein Zigbee-Netz aufgebaut oder betrieben werden. Die Modelle SLZB-P06 und SLZB-P10 arbeiten \u00fcber die PoE-Schnittstelle nicht zuverl\u00e4ssig. Nach etwa 1\u20132 Wochen f\u00e4llt die PoE-Datenverbindung aus, sodass&hellip;","_links":{"self":[{"href":"https:\/\/speefak.spdns.de\/oss_lifestyle\/wp-json\/wp\/v2\/posts\/8473","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/speefak.spdns.de\/oss_lifestyle\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/speefak.spdns.de\/oss_lifestyle\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/speefak.spdns.de\/oss_lifestyle\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/speefak.spdns.de\/oss_lifestyle\/wp-json\/wp\/v2\/comments?post=8473"}],"version-history":[{"count":0,"href":"https:\/\/speefak.spdns.de\/oss_lifestyle\/wp-json\/wp\/v2\/posts\/8473\/revisions"}],"wp:attachment":[{"href":"https:\/\/speefak.spdns.de\/oss_lifestyle\/wp-json\/wp\/v2\/media?parent=8473"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/speefak.spdns.de\/oss_lifestyle\/wp-json\/wp\/v2\/categories?post=8473"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/speefak.spdns.de\/oss_lifestyle\/wp-json\/wp\/v2\/tags?post=8473"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}]