diff --git a/.gitignore b/.gitignore index 799a9f3..e69de29 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +0,0 @@ -mkdocs/site/ \ No newline at end of file diff --git a/README.md b/README.md index 813ff51..7a106d8 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,62 @@ -# mkdocs-etz +# MkDocs to PDF Workflow mit Pandoc & Docker -Alle meine Dokumenter für den Linux-Kurs als Markdown und PDF fürs hosting im Kurs \ No newline at end of file +Dieses Projekt enthält ein Bash-Skript und eine Umgebung zum automatischen Konvertieren von MkDocs-Markdown-Dateien in PDF-Dateien mit individuellen Templates. + +## Features + +- Automatische Erstellung von PDFs aus Markdown-Dateien im `mkdocs/docs` Verzeichnis +- Nutzung von `pandoc` in einem Docker-Container für Konsistenz und Portabilität +- Unterstützung von LaTeX-Vorlage `eisvogel.latex` für ansprechendes PDF-Layout +- Automatisches Ergänzen von Download-Links (`[PDF herunterladen]`) in Markdown-Dateien +- Vermeidung von doppelten Links durch Prüfung vor dem Anhängen +- Richtige Einbindung lokaler Bilder mit relativen Pfaden +- Neu bauen und Neustarten von MkDocs via Docker Compose +- Optionales Konvertieren einzelner oder mehrerer ausgewählter Markdown-Dateien + +## Nutzung +````bash +Alle Markdown-Dateien in mkdocs/docs pdfen: +./mkdocs-to-pdf.sh + +Einzelne Datei konvertieren: +./mkdocs-to-pdf.sh Linux_Unternehmen/nextcloud-ldap.md + +Mehrere Dateien gleichzeitig +./mkdocs-to-pdf.sh basics/Einstieg_in_Linux-Desktop.md Linux_Unternehmen/linux-als-ad-client.md +```` + +## Voraussetzungen + +- Docker mit Zugriff auf lokale Dateien +- Docker Compose (für MkDocs Build & Restart) +- Bash als Shell Umgebung +- `pandoc/extra` Docker Image +- LaTeX Template Datei `eisvogel.latex` im Projektverzeichnis + +## Verzeichnisstruktur + +mkdocs/ +├── docs/ <- Markdown Quelldateien und Medien +│ ├── Linux_Unternehmen/ +│ │ ├── nextcloud-ldap.md +│ │ └── nextcloud-ldap-media/ <- Bilder für Markdown +│ └── basics/ +├── mkdocs.yml <- MkDocs Konfigurationsdatei +└── site/ <- Ergebnis von MkDocs Build (HTML, PDF) + +mkdocs-to-pdf.sh <- Bash Skript zur automatischen PDF-Erstellung +eisvogel.latex <- LaTeX Vorlage für Pandoc PDF Export +docker-compose.yml <- Containerdefintionen für MkDocs Umgebung + +text + +## Hinweise + +- Bildpfade in Markdown müssen relativ zum Markdown-Dokument korrekt sein (z.B. `./nextcloud-ldap-media/image1.png`) +- Änderungen an Markdown führen bei Ausführung des Skripts zur Neugenerierung der PDFs +- Vor dem Commit werden automatisch PDF-Download-Links hinzugefügt, wenn noch nicht vorhanden + +--- + +Bei Fragen oder Problemen gerne Issues öffnen oder direkt kontaktieren. +Diese README.md beschreibt übersichtlich Zweck, Nutzung, Voraussetzungen, Verzeichnisstruktur und wichtige Hinweise zum Projekt. Gerne kann sie noch projektspezifisch erweitert werden. \ No newline at end of file diff --git a/mkdocs/site/404.html b/mkdocs/site/404.html deleted file mode 100644 index ae7cf46..0000000 --- a/mkdocs/site/404.html +++ /dev/null @@ -1,842 +0,0 @@ - - - -
- - - - - - - - - - - - - - - - - -
-
-
-
- Ein Ubuntu Desktop-System lässt sich auch in eine Domäne einbinden. -Falls Sie sich fragen, wozu man Linux an ein Windows-Netzwerk anbinden -soll, ist einfach erklärt: Egal an welchen Computer Sie gehen, sei es -Linux oder Windows, Sie melden Sich mit ihren Benutzerdaten an und -erhalten auch ggf. die Administrationsrechte um Auf dem System Schalten -und Walten zu können, wie sie möchten. Im Augenblick sind Rechtevergaben -nur für Gruppen pro System anzuwenden, somit können Administratoren -Programme Installieren. Wenn Gruppenrichtlinien genutzt werden sollen, -müssen Sie Kostenpflichtige Tools wie Centrify DirectControl oder Ubuntu -Pro nutzen.
-sudo apt update
-sudo apt upgrade
-sudo apt install -y realmd sssd sssd-tools adcli samba-common-bin oddjob oddjob-mkhomedir packagekit libnss-sss libpam-sss krb5-user sssd-krb5
-Passe den Hostnamen an das AD-Schema an (z.B. rechnername.deinedomäne.de):
-sudo hostnamectl set-hostname vbox.tnXX.ito
-Bearbeite die Datei /etc/krb5.conf und passe die Domain an:
[libdefaults]
-udp_preference_limit = 0
-default_realm = TNXX.ITO
-rdns = false
---Hinweis: Domänenname in Großbuchstaben eintragen
-
realm discover tnXX.ito
---Ergebnis prüfen: Die Domäne sollte mit Typ „active-directory" angezeigt werden.
-
kinit deinbenutzername
---Passwort eingeben (AD-Benutzer mit Join-Rechten).
-
sudo realm join -v -U deinbenutzername TNXX.ITO
---Passwort eingeben, wenn abgefragt.
-
sudo pam-auth-update
-id benutzer@TNXX.ITO
---Wenn die Benutzerinformationen angezeigt werden, war der Join erfolgreich.
-
Datei anlegen:
-sudo nano /etc/sudoers.d/adadmins
-%administratoren@TNXX.ITO ALL=(ALL) NOPASSWD:ALL
-Hinweis:\ -Bei Fehlern prüfen Sie die Logdateien (/var/log/sssd/, /var/log/auth.log, -/var/log/syslog) und die Netzwerkkonfiguration.
- - - - - - - - - - - - - - -
-
-
-
- NextCloud bringt ihnen eine erweiterte Funktionalität der Bereitstellung -und Synchronisierung ihrer Daten für Mitarbeiter. NextCloud biete über -Erweiterungen und Plug-Ins die Möglichkeit auch in anderen Teilen ihres -Unternehmens Verbesserungen der Zusammenarbeit zu schaffen. Prinzipiell -ist NextCloud aber ihre Private Cloud - Sie wissen, wo die Daten liegen -und Sie wissen wer darauf zugreifen kann und darf.
-NextCloud benötigt ergänzend zu dem evtl. massiven Speicherplatzbedarf -auch noch eine funktionierend SQL-Datenbank. Hierfür wird der reine -Open-Source mySQL Ableger MariaDB empfohlen.
-sudo apt install apache2 mariadb-server libapache2-mod-php php php-mysql php-xml php-gd php-curl php-zip php-mbstring php-intl php-bcmath php-gmp php-imagick php-redis redis-server php-ldap php-smbclient unzip phpmyadmin
-Abfragen nach dem zu verwendenden Webserver: apache2
-Konfiguriere phpmyadmin: Ja Datenbank Konfigurieren
-Passwort setzen
-Im Anschluss muss die Datenbank noch gesichert werden um etwaigen -Missbrauch zu unterbinden und auch das Root-Passwort wird hier gesetzt
-sudo mysql_secure_installation
-Soll ein Root-Passwort gesetzt werden? Y
-Passwort eingeben und wiederholen
-Soll der Anonyme User entfernt werden? Y
-Remote-Login für Root deaktivieren? Y
-test-Datenbank entfernen? Y
-Änderungen übernehmen? Y
-Jetzt muss einmalig in die SQL-Datenbank der Login für root über das -Webinterface aktiviert werden:
-sudo mysql -u root -p
-use mysql;
-update user set plugin='' where User='root';
-flush privileges;
-\q
-Zugriff auf ihre Datebank per Webinterface:
-http://IP/phpmyadmin
-Legen Sie einen neuen Nutzer für NextCloud an und gewähren Sie dem Nutzer alle Rechte an seiner Datenbank „Nextcloud". -/newpage
-NextCloud bietet derzeit keine externe Paketquellen an. Deshalb muss Nextcloud als Zip-Archiv heruntergeladen werden und im Anschluss passend entpackt werden.
-wget https://download.nextcloud.com/server/releases/latest.zip
-unzip latest.zip
-sudo cp -r nextcloud /var/www/
-sudo chown -R www-data:www-data /var/www/nextcloud/
-Jetzt legen wir noch ein Separates Datenverzeichnis an. Dies bringt den Vorteil, dass dieses sich auch auf einer separaten Partition befinden kann.
-sudo mkdir /srv/cloud
-sudo chown www-data:www-data -R /srv/cloud
-erstellen /etc/apache2/sites-available/nextcloud.conf mit Inhalt:
-
<VirtualHost *:80>
- DocumentRoot "/var/www/nextcloud"
- ServerName nextcloud.hensel.dom
- ErrorLog ${APACHE_LOG_DIR}/error.log
- CustomLog ${APACHE_LOG_DIR}/access.log combined
- <Directory /var/www/nextcloud/>
- Options +FollowSymlinks
- AllowOverride All
- <IfModule mod_dav.c>
- Dav off
- </IfModule>
- SetEnv HOME /var/www/nextcloud
- SetEnv HTTP_HOME /var/www/nextcloud
- Satisfy Any
- </Directory>
-</VirtualHost>
-sudo a2ensite nextcloud
-sudo a2dissite 000-default.conf
-Aktivieren der benötigten Apache2-Module
-sudo a2enmod rewrite
-sudo a2enmod headers
-sudo a2enmod env
-sudo a2enmod dir
-sudo a2enmod mime
-sudo a2enmod setenvif
-sudo a2enmod ssl
-sudo systemctl restart apache2
-Nun können Sie per http auf den Webserver zugreifen -http://nextcloud.hensel.dom
-
Hier legen Sie nun das Administrator-Konto ein, wobei natürlich Admin und ein schwaches Passwort hier Tabu sind.
-Geben Sie als Datenverzeichnis das gerade angelegte Verzeichnis an und geben Sie die entsprechenden Daten die beim Anlagen der Datenbank gesetzt wurden ein.
-Nach dem Klick auf Installation abschließen werden Sie auch schon ihr eigenes Datenverzeichnis befördert, wobei ihnen erst noch ein Hinweis angezeigt wird wie Sie Desktop- und Mobile-Apps nutzen können.
-Wechseln Sie als nächstes in der rechten oberen Ecke in das Administrator-Menü.
-Im oberen Bereich begrüßen Sie dabei gleich einige Konfigurationsfehler:
-Wir nutzen noch kein SSL und keinen Cache.
-Kümmern wir uns erst einmal um den Cache, wobei wir den Redis-Server bereits installiert haben. Somit muss nur noch die Nextcloud-Configuration angepasst werden:
-sudo nano /var/www/nextcloud/config/config.php
-'dbtype' => 'mysql',
- 'version' => '12.0.0.29',
- 'dbname' => 'NextCloud',
- 'dbhost' => 'localhost',
- 'dbport' => '',
- 'dbtableprefix' => 'oc_',
- 'dbuser' => 'NextCloud',
- 'dbpassword' => 'passw0rd#',
- 'logtimezone' => 'UTC',
- 'installed' => true,
- 'memcache.distributed' => '\OC\Memcache\Redis',
- 'memcache.local' => '\OC\Memcache\Redis',
- 'memcache.locking' => '\OC\Memcache\Redis',
- 'redis' => array(
- 'host' => 'localhost',
- 'port' => 6379,
- ),
-);
-Für die https / SSL Übertragung benötigen wir noch ein selbst-signiertes Zertifikat welches dem Browser übergeben werden kann.
-sudo -s
-openssl req -new -x509 -days 365 -nodes -out /etc/ssl/certs/NextCloud.pem -keyout /etc/ssl/private/NextCloud.key
-Konfiguration der Benötigten Module:
-Bearbeiten der Datei /etc/apache2/sites-available/nextcloud.conf
<VirtualHost *:80>
- Redirect permanent / https://nextcloud.hensel.dom
-</VirtualHost>
-
-<IfModule mod_ssl.c>
- <VirtualHost *:443>
- SSLEngine on
- SSLCertificateFile /etc/ssl/certs/NextCloud.pem
- SSLCertificateKeyFile /etc/ssl/private/NextCloud.key
-
- <IfModule mod_headers.c>
- Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"
- </IfModule>
-
- DocumentRoot "/var/www/nextcloud"
- ServerName nextcloud.hensel.dom
- ServerAlias www.nextcloud.hensel.dom
-
- ErrorLog ${APACHE_LOG_DIR}/error.log
- CustomLog ${APACHE_LOG_DIR}/access.log combined
-
- <Directory /var/www/nextcloud/>
- Options +FollowSymlinks
- AllowOverride All
- <IfModule mod_dav.c>
- Dav off
- </IfModule>
- SetEnv HOME /var/www/nextcloud
- SetEnv HTTP_HOME /var/www/nextcloud
- Satisfy Any
- </Directory>
- </VirtualHost>
-</IfModule>
-sudo a2ensite default-ssl.conf
-sudo systemctl restart apache2
-Apache Neustarten und Fertig
-NextCloud aktualisiert bei jedem Zugriff auf das Webinterface die Datenbank, allerdings kostet dies wertvolle Sekunden bei einem „Wohlfühl-Interface" daher aktivieren Wir einen CronJob
-Die Aktion soll vom User www-data ausgeführt werden
-sudo crontab -u www-data -e
-\*/15 \* \* \* \* php -f /var/www/nextcloud/cron.php
-Im Anschluss am besten einmal reboot
-Konfiguration smb.conf bei einem Samba AD-DC -
[global]
-ldap server require strong auth = no
-sudo systemctl restart samba-ad-dc
-
Aktivieren Sie die App und wechseln Sie wieder in den Administrationsbereich. Dort finden Sie einen neuen Bereich LDAP.
-
Die benötigten Informationen finden Sie in ihrer Serverkonfiguration. In diesem Beispiel:
-
Welcher Typ soll abgefragt werden? Hier empfiehlt sich eine Separate Gruppe für Nutzer anzulegen welche NextCloud nutzen sollen. Klicken Sie am unteren Rand auf „Einstellungen prüfen und Benutzer zählen" um ihre Konfiguration zu überprüfen.
-
Hier definieren Sie mit welchen Möglichkeiten sich der Nutzer Authentifizieren kann. Wählen Sie die sAMAccountName aus, um dem Nutzer zu ermöglichen Sich direkt mit seinem Windows-Login anzumelden.
-
Hier definieren Sie welche Gruppen ihres Servers in NextCloud übernommen werden sollen um ihre Nutzer auch in NextCloud passend sortieren zu können und auch Gruppenspezifische Externe Laufwerke einzubinden.
-
In der Benutzerübersicht sollen alle Nutzer mit ihrem Benutzernamen und nicht mit der UUID angezeigt werden. Somit ist es auch für die Nutzer einfacher, sich gegenseitig zu finden.
- - - - - - - - - - - - - - -
-
-
-
- Die Installation des Ubuntu Servers Erfolgt in Virtualbox. Achten Sie -bei der Einrichtung der VM darauf, dass die unbeaufsichtigte -Installation nicht durchgeführt wird, da einzelne Schritte relevant -sind.
-Beim Bootvorgang wählen Sie „Try or Install" um das Setup zu starten. -Wählen Sie im nächsten Schritt Deutsch als Installations- und -Systemsprache. Bei Der Wahl der Tastatur setzen Sie ebenfalls auf German -und German.
-Die Installationsart sollte Standard sein. Minimal führt dazu, dass
-viele „übliche" Programme wie PING nicht installiert werden.
-Üblicherweise benötigen Sie den unteren teil der Third-Party-Driver
-nicht, wenn Sie nicht auf echter Hardware arbeiten. Hier werden dann
-RAID-Controller oder WLAN-Karten ergänzt.
Die Netzwerkkonfiguration belassen wir auf DHCP, da später die -Konfigurationsdatei manuell angepasst werden soll. Üblicherweise würde -aber hier eine feste IP für einen Server vergeben werden, wobei darauf -zu achten ist, die Subnetzmaske als CIDR anzuhängen. Proxy bleibt leer.
-Nach der Bestätigung der Netzwerkkonfiguration testet der Server -automatisch den schnellsten/nächsten Updateserver.
-Die Festplattenpartitionierung kann auf Default belassen werden. Die -Verwendung von LVM ist mittlerweile Standard. LVM steht für Logical -Volume Manager und ist eine Variante Software-RAID um auch nachträglich -Erweiterungen oder Redundanzen hinzuzufügen. Bestätigen Sie ihre Wahl.
-Setzen Sie Ihren user-account und ihren Hostname dc1.
-Im nächsten Schritt können Sie sich für Ubuntu Pro anmelden, einen -Dienst, welcher ihnen erweiterten Support und Features wie -Kernel-Live-Patches und längeren Support.
-Aktivieren Sie auf jeden Fall die Installation des openSSH-Servers. -Unten könnten Sie SSH-Keys aus z.B. github importieren, um sie später -ohne Passwort per SSH auf den Server zu verbinden.
-Die nachfolgenden Features sind „snaps" von Ubuntu und sollen im Rahmen -der Meisterausbildung nicht genutzt werden, da diese nicht auf -„Nicht-Ubuntu" Systemen funktionieren. Hierbei handelt es sich um -vorkonfektionierte Programmpakete.
-Nun läuft die Installation durch. Am Ende steht nichts im Log, sondern -darunter entsteht ein Button zum Neustarten des Systems.
-Denken Sie nach dem Neustart daran, dass Sie innerhalb des etz wieder den Cache-Server verwenden: -
echo 'Acquire::http::Proxy "http://10.10.224.119:3142";' | sudo tee /etc/apt/apt.conf.d/02proxy
-Ein Linux-Server der Active Directory beherrscht, ist eine Möglichkeit, -um auf den Einsatz eines MS-Servers zu verzichten. Es existieren ein -paar Einschränkungen aber das Projekt Samba ist im stetigen Wachstum und -entwickelt immer neue Funktionen hinzu. In dieser Arbeitsanweisung -werden Sie einen Samba4 Active Directory Server installieren und im -Anschluss Diesen mit den MS-Remote Server Administration Tools -verwalten. Die Funktionalität dieses Servers enthält: DNS, Kerberos, -Benutzer und Gruppen, Netzlaufwerke und Gruppenrichtlinien.
-Vorgaben die in dieser Anleitung genutzt werden. -
DNS-Server:
-Name: dc1.tnXX.ito
-Server Type: Authoritative.
-Forward Lookup Zone: tnXX.ito
-Reverse Lookup Zone: 2XX.168.192.in-addr.arpa.
-
-DC-Server
-AD DC Hostname: DC1
-AD DNS Domain Name: tnXX.ito
-Kerberos Realm: tnXX.ito
-NT4 Domain Name: tnXX
-IP Adresse 192.168.2XX.250
-Server Role: Domain Controller
-DNS Forwarder: 192.168.2XX.1
-
-DHCP Server
-Subnet: 192.168.2XX.0 255.255.255.0
-Range: 192.168.2XX.100 192.168.2XX.200
-\newpage
-In der aktuellen Version von Ubuntu Server wird bei der -Netzwerkkonfiguration auf netplan gesetzt. Hierbei wird eine .yaml Datei -angelegt, welche in der MAAS-Installation (Cloud-Config) automatisch dem -Rechner zugewiesen würde.
-Als erstes legen wir eine neue Datei an: -
sudo nano /etc/netplan/01-tnXX-netz.yaml
-# This file describes the network interfaces available on your system
-# For more information, see netplan(5).
-network:
- ethernets:
- enp0s3:
- addresses: [192.168.2XX.250/24]
- routes:
- - to: 0.0.0.0/0
- via: 192.168.2XX.1
- dhcp4: no
- nameservers:
- addresses: \[192.168.2.XX.250,1.1.1.1\]
- search: \[tnXX.ito\]
- optional: true
- version: 2
-sudo hostnamectl set-hostname dc1
-sudo nano /etc/cloud/cloud.cfg
-preserve_hostname: true # Erhält den Hostnamen nach dem Neustart
-sudo nano /etc/hosts
-127.0.0.1 localhost
-127.0.1.1 dc1.tnXX.ito dc1
-sudo hostname
-sudo nslookup dc1
-sudo apt update
-sudo apt install samba samba-dsdb-modules samba-vfs-modules krb5-config winbind libpam-winbind libnss-winbind acl dnsutils chrony isc-dhcp-server krb5-user smbclient
-Realm = MKXX.ITO (Alles groß schreiben)
-Server = DC1.MKXX.ITO
-Administrator Server = DC1.MKXX.ITO
-Um mit Samba auch die vollen Windows ACL und Benutzer-Attribute zu unterstützen müssen diese ebenfalls im ext4 Dateisystem ihres Servers -aktiviert werden.
---Bevor Sie das tun wäre jetzt der Punkt einen Sicherungspunkt der VM zu machen Bei Tippfehlern werfen Sie sich selbst aus dem System.
-
sudo nano /etc/fstab
-UUID=xxx / ext4 defaults 0 0
-UUID=xxx / ext4 user_xattr,acl,barrier=1,errors=remount-ro,defaults 0 0
-Als Zeitserver verwenden wir den Dienst chrony.
-sudo nano /etc/chrony/chrony.conf
-allow 0.0.0.0/24
-sudo systemctl restart chrony
-ss -tulpen:
---udp 0 0 0.0.0.0:123 0.0.0.0:* 0 22432 1180/chronyd
-
Sichern der Orginalkonfiguration
-sudo mv /etc/samba/smb.conf /etc/samba/smb.conf.bak
-sudo samba-tool domain provision --use-rfc2307 --interactive --dns-backend=SAMBA_INTERNAL
-Fertig.
-sudo systemctl enable --now samba-ad-dc
-bind interfaces only = yes
-interfaces = lo enp0s3
-Samba legt bei der Provisionierung eine vorgefertigte Konfigurationsdatei für Kerberos also dem Authentifizierungsdienst, welcher auch eine Synchrone Uhr braucht.
-Original sichern: -
sudo mv /etc/krb5.conf /etc/krb5.conf.bak
-sudo cp -al /var/lib/samba/private/krb5.conf /etc/krb5.conf
-sudo nano /etc/netplan/01-tnXX-netz.yaml
-...
-nameservers:
- addresses: [192.168.2XX.250]
- search: [tnXX.ito]
-...
-sudo rm /etc/netplan/50-cloud-init.yaml
-sudo netplan apply
-sudo rm /etc/resolv.conf
-echo -e \"nameserver 127.0.0.1\\nsearch TNXX.ITO\" \| sudo tee
-/etc/resolv.conf
-Testen des SRV record für ldap über TCP
-host -t SRV \_ldap.\_tcp.tnXX.ito
---_ldap._tcp.tnXX.ito has SRV record 0 100 389 dc1.tnXX.ito.
-
Testen des SRV record für kerberos über UDP
-host -t SRV \_kerberos.\_udp.tnXX.ito
---_kerberos._udp.mkXX.ito has SRV record 0 100 88 dc1.tnXX.ito.
-
Und die Namensauflösung des Servers
-host -t A dc1.tnXX.ito
---dc1.tnXX.ito has address 127.0.0.1
-
Wenn hier Alles antwortet funktioniert der DNS
-Samba erzeugt eine passende Konfigurationsdatei für den Kerberos-Dienst -diese verlinken wir anstelle der Original-Datei die uns mitinstalliert -wurde.
-sudo mv /etc/krb5.conf /etc/krb5.conf.orig
-sudo cp -al /var/lib/samba/private/krb5.conf /etc/krb5.conf
-sudo reboot
-kinit administrator@TNXX.ITO
---Es erfolgt eine Ausgabe ihres Passwort-Ablaufdatums -
-Das komplette Kerberos Ticket wird angezeigt -klist --Sie sehen eine auflistung der Servereigenschaften, der Freigaben und der -Serverrolle -sudo smbclient -L localhost -U 'administrator' -
sudo smbclient //localhost/netlogon -U 'administrator'
-sudo nano /etc/dhcp/dhcpd.conf
-# A slightly different configuration for an internal subnet.
-#subnet 10.5.5.0 netmask 255.255.255.224 {
-# range 10.5.5.26 10.5.5.30;
-# option domain-name-servers ns1.internal.example.org;
-# option domain-name "internal.example.org";
-# option subnet-mask 255.255.255.224;
-# option routers 10.5.5.1;
-# option broadcast-address 10.5.5.31;
-# default-lease-time 600;
-# max-lease-time 7200;
-#}
-# A slightly different configuration for an internal subnet.
-Subnet 192.168.2XX.0 netmask 255.255.255.0 {
- range 192.168.2XX.100 192.168.2XX.200;
- option domain-name-servers 192.168.2XX.250;
- option domain-name "tnXX.ito";
- option subnet-mask 255.255.255.0;
- option routers 192.168.2XX.1;
- option broadcast-address 192.168.2XX.255;
- default-lease-time 600;
- max-lease-time 7200;
-}
-sudo systemctl restart isc-dhcp-server
-Zur Verwaltung der Nutzer der Domäne haben sie (mindestens) 2 -Möglichkeiten:
-Nutzen Sie einen Windows PC, nehmen diesen in die Domäne auf, und nutzen die Remote Server Administration Tools von Microsoft. -https://learn.microsoft.com/de-de/troubleshoot/windows-server/system-management-components/remote-server-administration-tools
-Diese werden über Features hinzugefügt. Prüfen Sie welcher -Installationsweg bei ihrer Windows Version passt. ( winver ausführen )
-Hiermit können Sie Benutzer, Gruppen und auch Gruppenrichtlinien setzen.
-Über das samba-tool kann mit sudo-rechten ebenfalls das Management -erfolgen, allerdings Textbasiert:
-Nutzer mit Vor und Nachnamen erstellen und ein Passwort vergeben:
-sudo samba-tool user add dieterbecker 'passw0rd#' --given-name=Dieter --surname=Becker
-Das Ganze erweitert um den Profilpfad:
-sudo samba-tool user add dieterbecker 'passw0rd#' --given-name=Dieter --surname=Becker --profile-path='\\tnXX\profiles\dieterbecker'
-sudo samba-tool user add dieterbecker 'passw0rd#' --given-name=Dieter --surname=Becker --home-drive=U --home-directory='\\tnXX\dieterbecker'
-sudo samba-tool user list
-sudo samba-tool user delete dieterbecker
-sudo samba-tool user setpassword dieterbecker
-sudo samba-tool group add Geschaeftsleitung
-sudo samba-tool group delete Geschaeftsleitung
-sudo samba-tool group addmembers \"Geschaeftsleitung\" dieterbecker
-sudo samba-tool group removemembers \"Geschaeftsleitung\" dieterbecker
-sudo samba-tool group listmembers \"Geschaeftsleitung\"
-Damit die Nutzer auch unter Linux verfügbar werden, muss der winbind Dienst wissen, wie die AD-User mit ihren IDs am Server gemappt werden sollen. Daher anpassen der smb.conf:
-Unter [Global] unter den vorhandenen Einträgen ergänzen:
password server = DC1.TNXX.ITO
-idmap uid = 10000-20000
-idmap gid = 10000-20000
-winbind enum users = yes
-winbind enum groups = yes
-winbind cache time = 10
-winbind use default domain = yes
-winbind nss info = rfc2307
-sudo systemctl restart samba-ad-dc
-getend passwd
-getend group
---Es sollten Nutzer und Gruppen mit TNXX\ auftauchen. Sollte dem nicht der fall sein, bitte in der Datei
-/etc/nsswitch.confalle Einträge mitsssdurchwinbindersrtzen und dann nochmals versuchen.
Damit die Nutzer und Gruppen nun auch Laufwerke bekommen müssen die Verzeichnisse erstellt und Freigegeben werden:
-sudo mkdir -p /srv/samba/projekte
-sudo chown root:"TNXX\Domain Admins" /srv/samba/projekte
-sudo chmod 0770 /srv/samba/projekte
-sudo setfacl -m g:"TNXX\Domain Admins":rwx /srv/samba/projekte
-sudo setfacl -d -m g:"TNXX\Domain Admins":rwx /srv/samba/projekte
-Und damit die Rechte auch setzbar werden:
-sudo samba-tool privilege grant "TNXX\Domain Admins" SeDiskOperatorPrivilege
-[Projekte]
-path = /srv/samba/projekte
-read only = no
-vfs objects = acl_xattr
-map acl inherit = yes
-inherit acls = yes
-inherit permissions = yes
-nt acl support = yes
-Jetzt kann die Freigabe vom Admin mit den Jeweiligen User-Gruppenrechten -gesetzt werden. Hierfür in einer Windows-Umgebung die Eigenschaften des Netzlaufwerkes anpassen.
- - - - - - - - - - - - - - -0&&i[i.length-1])&&(p[0]===6||p[0]===2)){r=0;continue}if(p[0]===3&&(!i||p[1]>i[0]&&p[1]=e.length&&(e=void 0),{value:e&&e[o++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function K(e,t){var r=typeof Symbol=="function"&&e[Symbol.iterator];if(!r)return e;var o=r.call(e),n,i=[],s;try{for(;(t===void 0||t-- >0)&&!(n=o.next()).done;)i.push(n.value)}catch(a){s={error:a}}finally{try{n&&!n.done&&(r=o.return)&&r.call(o)}finally{if(s)throw s.error}}return i}function B(e,t,r){if(r||arguments.length===2)for(var o=0,n=t.length,i;o