yuno admin пре 4 месеци
родитељ
комит
b2825921eb
1 измењених фајлова са 38 додато и 240 уклоњено
  1. 38 240
      README.md

+ 38 - 240
README.md

@@ -1,254 +1,52 @@
-<!doctype html>
-<html lang="de">
-<head>
-  <meta charset="utf-8" />
-  <meta name="viewport" content="width=device-width,initial-scale=1" />
-  <title>README – Linux Domain Join (Synology AD / .local)</title>
-  <style>
-    :root{
-      --bg:#0b0f14; --card:#111827; --text:#e5e7eb; --muted:#9ca3af;
-      --accent:#22c55e; --accent2:#60a5fa; --warn:#f59e0b; --danger:#ef4444;
-      --code:#0f172a; --border:#1f2937;
-    }
-    body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif;background:var(--bg);color:var(--text);line-height:1.55}
-    .wrap{max-width:980px;margin:0 auto;padding:28px 18px 56px}
-    .hero{background:linear-gradient(135deg, rgba(34,197,94,.18), rgba(96,165,250,.12));border:1px solid var(--border);border-radius:18px;padding:22px 18px;margin-bottom:18px}
-    h1{margin:0 0 6px;font-size:28px}
-    .sub{color:var(--muted);margin:0}
-    .badge{display:inline-block;background:rgba(34,197,94,.15);border:1px solid rgba(34,197,94,.35);color:#bbf7d0;padding:4px 10px;border-radius:999px;font-size:12px;margin-top:10px}
-    h2{margin:26px 0 10px;font-size:20px}
-    h3{margin:18px 0 8px;font-size:16px;color:#d1d5db}
-    .card{background:var(--card);border:1px solid var(--border);border-radius:18px;padding:16px 16px;margin:12px 0}
-    .note{border-left:4px solid var(--accent2);padding:10px 12px;background:rgba(96,165,250,.08);border-radius:10px}
-    .warn{border-left:4px solid var(--warn);padding:10px 12px;background:rgba(245,158,11,.08);border-radius:10px}
-    .danger{border-left:4px solid var(--danger);padding:10px 12px;background:rgba(239,68,68,.08);border-radius:10px}
-    code, pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace}
-    pre{background:var(--code);border:1px solid var(--border);border-radius:14px;padding:12px 12px;overflow:auto}
-    .grid{display:grid;grid-template-columns:1fr;gap:12px}
-    @media (min-width:900px){.grid{grid-template-columns:1fr 1fr}}
-    ul{margin:8px 0 0 18px}
-    a{color:#93c5fd}
-    .k{color:#a7f3d0}
-    .m{color:var(--muted)}
-    .hr{height:1px;background:var(--border);margin:18px 0}
-    .pill{display:inline-block;border:1px solid var(--border);background:rgba(255,255,255,.03);padding:2px 8px;border-radius:999px;font-size:12px;color:var(--muted)}
-  </style>
-</head>
-<body>
-  <div class="wrap">
-    <section class="hero">
-      <h1>tora_join-domain-linux <span class="pill">README (HTML)</span></h1>
-      <p class="sub">Linux automatisiert an <b>Synology Directory Server / Active Directory</b> joinen – inkl. Fixes für <code>.local</code> (mDNS/Avahi) &amp; Kerberos-Stabilität.</p>
-      <div class="badge">✅ 1× Copy &amp; Paste · ✅ Preflight Checks · ✅ SSSD + realmd + adcli</div>
-    </section>
+# tora_join-domain-linux 🚀  
+**Linux automatisch an Synology Active Directory (.local) joinen – 1× Copy & Paste**
 
 
-    <div class="card note">
-      <b>Wichtig:</b> Diese README nutzt ausschließlich <u>fiktive</u> Beispielwerte:
-      <ul>
-        <li><code>companydomain.local</code></li>
-        <li>AD/DNS-IP: <code>192.0.2.10</code> (RFC 5737 Dokumentationsnetz)</li>
-        <li>Admin-User: <code>Administrator@COMPANYDOMAIN.LOCAL</code></li>
-      </ul>
-      <div class="m">➡️ Bitte passe die Werte im Script vor der Nutzung an.</div>
-    </div>
+Dieses Repo enthält ein Script, das einen Linux-Rechner automatisch an eine **Synology Directory Server / Active Directory** Domain joined – inkl. Fixes für typische `.local`-Probleme (mDNS/Avahi) und Kerberos-Stabilität.
 
 
-    <h2>✅ Was das Script macht</h2>
-    <div class="card">
-      <ul>
-        <li>Installiert benötigte Pakete (<code>realmd</code>, <code>sssd</code>, <code>adcli</code>, <code>krb5-user</code>, …)</li>
-        <li>Setzt DNS zuverlässig auf den AD/DNS-Server (wichtig für Kerberos)</li>
-        <li>Entschärft <code>.local</code>-Probleme durch mDNS/Avahi/NSS-Anpassung (optional/empfohlen)</li>
-        <li>Stabilisiert Kerberos durch <code>rdns = false</code> (optional/empfohlen)</li>
-        <li>Führt Domain Join aus (<code>realm join</code>)</li>
-        <li>Startet <code>sssd</code> neu und optional <code>mkhomedir</code></li>
-      </ul>
-    </div>
+---
 
 
-    <h2>⚠️ Vorher: Domain-Daten im Script anpassen</h2>
-    <div class="card warn">
-      <p><b>Öffne</b> <code>join_unix_ad_local.sh</code> und passe im <b>CONFIG</b>-Block mindestens an:</p>
-      <ul>
-        <li><code>DOMAIN</code> → <code>companydomain.local</code></li>
-        <li><code>REALM</code> → <code>COMPANYDOMAIN.LOCAL</code> (GROSS)</li>
-        <li><code>AD_DNS_IP</code> → z. B. <code>192.0.2.10</code></li>
-        <li><code>ADMIN_USER</code> → <code>Administrator@COMPANYDOMAIN.LOCAL</code></li>
-        <li>optional: <code>DC_HOST</code>, <code>TEST_USER</code>, <code>COMPUTER_OU</code></li>
-      </ul>
-      <p class="m">💡 Bei <code>.local</code> Domains ist es sehr empfehlenswert, mDNS/Avahi zu deaktivieren bzw. <code>hosts: files dns</code> zu erzwingen.</p>
-    </div>
+## ✅ Beispielwerte (nur fiktiv!)
+Diese README nutzt ausschließlich **fiktive** Beispielwerte:
 
 
-    <h2>⚡ Quickstart (voll automatisch – Copy &amp; Paste)</h2>
+- Domain: `companydomain.local`
+- Realm: `COMPANYDOMAIN.LOCAL`
+- AD/DNS-IP: `192.0.2.10` *(RFC 5737 Dokumentationsnetz)*
+- Admin-User: `Administrator@COMPANYDOMAIN.LOCAL`
 
 
-    <div class="grid">
-      <div class="card">
-        <h3>Variante A: Repo klonen &amp; Script starten</h3>
-        <pre><code>sudo apt update -y &amp;&amp; sudo apt install -y git
+➡️ **Vor Nutzung musst du die Werte im Script anpassen.**
 
 
-# Repo klonen
-git clone https://git.example.com/company/tora_join-domain-linux.git
-cd tora_join-domain-linux
-
-# Script ausführbar machen &amp; starten
-chmod +x join_unix_ad_local.sh
-sudo ./join_unix_ad_local.sh</code></pre>
-        <div class="m">✅ Empfohlen, weil du dann Änderungen am Script direkt im Repo pflegen kannst.</div>
-      </div>
-
-      <div class="card">
-        <h3>Variante B: Nur das Script holen (ohne Clone)</h3>
-        <pre><code># Script herunterladen (Beispiel-URL – an deinen Git-Server anpassen)
-curl -L -o join_unix_ad_local.sh \
-  "https://git.example.com/company/tora_join-domain-linux/raw/branch/master/join_unix_ad_local.sh"
-
-chmod +x join_unix_ad_local.sh
-sudo ./join_unix_ad_local.sh</code></pre>
-        <div class="m">💡 Funktioniert nur, wenn dein Git-Server eine Raw-URL anbietet.</div>
-      </div>
-    </div>
-
-    <h2>🔐 Login nach erfolgreichem Join</h2>
-    <div class="card">
-      <p>Typischerweise ist das Login-Format:</p>
-      <pre><code>user@companydomain.local</code></pre>
+---
 
 
-      <p>Beispieltests:</p>
-      <pre><code>realm list
-id someuser@companydomain.local
-getent passwd someuser@companydomain.local
-su - someuser@companydomain.local</code></pre>
-      <div class="note">
-        <b>Merke:</b> Wenn <code>id</code> &amp; <code>getent</code> funktionieren, ist <code>sssd</code> korrekt angebunden.
-      </div>
-    </div>
+## ✅ Was das Script macht
+- installiert benötigte Pakete (`realmd`, `sssd`, `adcli`, `krb5-user`, …)
+- setzt DNS auf den AD/DNS-Server (wichtig!)
+- entschärft `.local`-Probleme durch mDNS/Avahi/NSS-Fix (optional/empfohlen)
+- setzt Kerberos stabiler (`rdns = false`) (optional/empfohlen)
+- führt den Domain Join durch (`realm join …`)
+- startet `sssd` neu
+- optional: `mkhomedir` (Home-Verzeichnis automatisch beim Login)
 
 
-    <h2>🧪 Diagnose-Kommandos (wenn etwas hängt)</h2>
-    <div class="grid">
-      <div class="card">
-        <h3>1) DNS prüfen</h3>
-        <pre><code>resolvectl status | sed -n '/DNS Servers/,+3p' || true
-cat /etc/resolv.conf
-dig +short _ldap._tcp.companydomain.local SRV
-dig +short _kerberos._udp.companydomain.local SRV</code></pre>
-        <div class="m">DNS muss auf den AD/DNS zeigen – Router/Google-DNS parallel ist oft der Killer.</div>
-      </div>
+---
 
 
-      <div class="card">
-        <h3>2) Zeit prüfen (Kerberos ist zeitkritisch)</h3>
-        <pre><code>timedatectl</code></pre>
-        <div class="m">Schon wenige Minuten Drift können Kerberos brechen.</div>
-      </div>
+## ⚠️ Vorher: Domain-Daten im Script anpassen
+Öffne `join_unix_ad_local.sh` und passe im **CONFIG**-Block mindestens an:
 
 
-      <div class="card">
-        <h3>3) Kerberos Ticket testen</h3>
-        <pre><code># Wenn kinit nicht geht, geht realm join nie.
-kinit Administrator@COMPANYDOMAIN.LOCAL
-klist</code></pre>
-        <div class="m">Wenn hier Fehler kommen: erst DNS/Zeit fixen, dann erneut versuchen.</div>
-      </div>
+- `DOMAIN="companydomain.local"`
+- `REALM="COMPANYDOMAIN.LOCAL"` *(GROSS)*
+- `AD_DNS_IP="192.0.2.10"`
+- `ADMIN_USER="Administrator@COMPANYDOMAIN.LOCAL"`
+- optional: `DC_HOST`, `TEST_USER`, `COMPUTER_OU`
 
 
-      <div class="card">
-        <h3>4) Realm prüfen</h3>
-        <pre><code>realm discover companydomain.local
-realm list</code></pre>
-      </div>
-    </div>
+> 💡 Bei `.local` Domains ist es sehr empfehlenswert, mDNS/Avahi zu deaktivieren bzw. `hosts: files dns` zu erzwingen.
 
 
-    <h2>🧠 Typische Stolperfallen &amp; Lösungen</h2>
-    <div class="card">
-      <h3>Problem: <code>.local</code> wird von Linux als mDNS behandelt</h3>
-      <p class="m">Symptome: Domain wird entdeckt, aber Join/Kerberos scheitert oder verhält sich inkonsistent.</p>
-      <div class="warn">
-        <b>Fix:</b> Avahi/mDNS deaktivieren oder in <code>/etc/nsswitch.conf</code> erzwingen:
-        <pre><code>hosts: files dns</code></pre>
-        <div class="m">Das Script kann das automatisch erledigen (empfohlen bei <code>.local</code>).</div>
-      </div>
+---
 
 
-      <div class="hr"></div>
+## ⚡ Quickstart (voll automatisch – Copy & Paste)
 
 
-      <h3>Problem: <code>KDC reply did not match expectations</code></h3>
-      <p class="m">Ursachen: DNS nicht exklusiv AD/DNS, Reverse-DNS/PTR inkonsistent, Kerberos stolpert über rdns.</p>
-      <div class="danger">
-        <b>Fix:</b>
-        <ul>
-          <li>DNS ausschließlich auf den AD/DNS setzen</li>
-          <li>in <code>/etc/krb5.conf</code>: <code>rdns = false</code></li>
-          <li>PTR prüfen (Beispiel-IP):</li>
-        </ul>
-        <pre><code>dig -x 192.0.2.10</code></pre>
-      </div>
-    </div>
-
-    <h2>🗺️ Ablauf (als “Bild”)</h2>
-    <div class="card">
-      <pre><code>┌───────────────┐
-│   Script Start │
-└───────┬───────┘
-        │
-        v
-┌───────────────────────────┐
-│ Pakete installieren        │
-│ realmd/sssd/adcli/krb5...  │
-└─────────┬─────────────────┘
-          │
-          v
-┌───────────────────────────┐
-│ DNS auf AD/DNS pinnen      │
-└─────────┬─────────────────┘
-          │
-          v
-┌───────────────────────────┐
-│ .local Fix (mDNS/Avahi)    │
-│ + NSS: hosts: files dns    │
-└─────────┬─────────────────┘
-          │
-          v
-┌───────────────────────────┐
-│ Kerberos: rdns=false       │
-│ + kinit Preflight          │
-└─────────┬─────────────────┘
-          │
-          v
-┌───────────────────────────┐
-│ realm join + sssd restart  │
-│ + mkhomedir (optional)     │
-└─────────┬─────────────────┘
-          │
-          v
-┌───────────────────────────┐
-│ Tests: realm list / id     │
-└───────────────────────────┘</code></pre>
-    </div>
-
-    <h2>🧹 Domain verlassen (Unjoin)</h2>
-    <div class="card">
-      <pre><code>sudo realm leave companydomain.local
-sudo systemctl restart sssd || true</code></pre>
-      <div class="m">Optional (nur wenn du komplett „aufräumen“ willst):</div>
-      <pre><code>sudo rm -f /etc/sssd/sssd.conf
-sudo rm -f /etc/krb5.keytab
-sudo systemctl restart sssd || true</code></pre>
-    </div>
-
-    <h2>✅ Unterstützte Systeme</h2>
-    <div class="card">
-      <ul>
-        <li>Debian / Ubuntu (APT-basiert)</li>
-        <li>systemd</li>
-        <li>realmd/sssd stack</li>
-      </ul>
-      <div class="m">Für RHEL/Rocky/Alma (dnf/yum) muss die Paketinstallation angepasst werden.</div>
-    </div>
-
-    <h2>📎 Logs für Support</h2>
-    <div class="card">
-      <pre><code>sudo journalctl -u sssd --no-pager -n 200
-sudo journalctl -u realmd --no-pager -n 200</code></pre>
-    </div>
-
-    <div class="card note">
-      <b>Hinweis zu Beispiel-Daten:</b> Alle Namen, IPs und URLs in dieser README sind fiktiv
-      und dienen nur als Vorlage. Bitte setze deine echten Werte ausschließlich im Script oder in deiner privaten Dokumentation.
-    </div>
-  </div>
-</body>
-</html>
+### Variante A: Repo klonen & Script starten
+```bash
+sudo apt update -y && sudo apt install -y git
+git clone https://git.example.com/company/tora_join-domain-linux.git
+cd tora_join-domain-linux
+chmod +x join_unix_ad_local.sh
+sudo ./join_unix_ad_local.sh