Die Kapitel Erste Schritte und Wartung erklären den Einstieg in den Umgang und die Wartung von Debian Edu. Die HowTos in diesem Kapitel sind Tipps und Tricks für Fortgeschrittene.
Mittels etckeeper
lassen sich alle
Änderungen an Dateien in /etc/
mit Hilfe
von Git als System für die
Versionskontrolle zurückverfolgen.
Dies ermöglicht es festzustellen, wann eine Datei hinzugefügt, verändert
oder entfernt wurde. Im Falle einer Textdatei lässt sich auch feststellen,
was geändert wurde. Das Git-Repository befindet sich in
/etc/.git/
.
Änderungen werden automatisch stündlich protokolliert; damit ist es möglich, die Entwicklung der Konfiguration zurück zu verfolgen.
Um die Entwicklung anzusehen, kann der Befehl etckeeper vcs
log
benutzt werden. Um Änderungen zwischen zwei Zeitpunkten
einzusehen, kann ein Befehl wie z.B. etckeeper vcs
diff
verwendet werden.
Rufen Sie man etckeeper
auf, um weitere
Optionen kennenzulernen.
Nützliche Befehle sind:
etckeeper vcs log etckeeper vcs status etckeeper vcs diff etckeeper vcs add . etckeeper vcs commit -a man etckeeper
Auf einem neu installierten System alle Änderungen herausfinden, seitdem das System installiert wurde:
etckeeper vcs log
Ansehen, welche Dateien gegenwärtig nicht kontrolliert werden und welche nicht auf aktuellem Stand sind:
etckeeper vcs status
Um eine Datei manuell einzureichen, weil Sie nicht eine Stunde lang warten wollen, verwenden Sie den folgenden Befehl:
etckeeper vcs commit -a /etc/resolv.conf
Mit Ausnahme der /boot/
-Partition sind alle
Partitionen in Debian Edu auf logischen LVM-Datenträgern. Seit dem
Linux-Kernel 2.6.10 ist es möglich, Partitionen zu vergrößern, während sie
eingehängt sind. Um Partitionen zu verkleinern, müssen diese weiterhin
ausgehängt sein.
Es ist eine gute Idee, das Anlegen sehr großer Partitionen (etwa mehr als 20
GiB) zu vermeiden, weil es sehr lange dauert, um darauf
fsck
auszuführen oder um sie per Backup
wiederherzustellen, wenn das notwendig sein sollte. Falls möglich, ist es
besser, statt einer großen mehrere kleine Partitionen zu erstellen.
Um die Vergrößerung voller Partitionen zu vereinfachen, wird das Skript
debian-edu-fsautoresize
zur Verfügung
gestellt. Es liest die Konfiguration unter
/usr/share/debian-edu-config/fsautoresizetab
,
/site/etc/fsautoresizetab
und
/etc/fsautoresizetab
ein und schlägt -
basierend auf den in diesen Dateien definierten Regeln - die Vergrößerung zu
kleiner Partitionen vor. Ohne Argumente aufgerufen gibt es nur die Befehle
aus, die zum Vergrößern der Dateisysteme nötig sind. Wenn die Dateisysteme
tatsächlich vergrößert werden sollen, muss das Skript mit dem Argument
-n
ausgeführt werden.
Das Skript wird stündlich automatisch auf jedem Client der
fsautoresize-hosts
-»Netgroup« ausgeführt.
Wenn die vom Squid-Proxy verwendete Partition geändert wird, muss der Wert
für die Cachegröße in etc/squid/squid.conf
ebenfalls aktualisiert werden. Das Hilfsskript
/usr/share/debian-edu-config/tools/squid-update-cachedir
wird bereitgestellt, um dies automatisch zu tun, indem es die aktuelle
Partitionsgröße von /var/spool/squid/
überprüft und Squid so konfiguriert, dass es 80 % davon als Cachegröße
verwendet.
»Logical-Volume-Management« (LVM) erlaubt es, Partitionen zu vergrößern, während diese eingehängt sind und benutzt werden. Mehr Informationen zu LVM finden Sie unter LVM HowTo.
Um einen logischen Datentäger zu vergrößern, müssen Sie einfach dem
lvextend
Befehl die Information mitgeben,
auf wie viel Sie die Partition vergrößern wollen. Um beispielsweise die
Partition home0 auf 30GiB zu vergrößern, verwenden Sie:
lvextend -L30G /dev/vg_system/skole+tjener+home0 resize2fs /dev/vg_system/skole+tjener+home0
Um home0 um 30GiB zu vergrößern, fügen Sie ein '+' (-L+30G) hinzu.
Mit ldapvi können Einträge in der LDAP-Datenbank mit einem normalen Texteditor von der Befehlszeile aus editiert werden.
Folgender Befehl muss ausgeführt werden:
ldapvi -ZD '(cn=admin)'
Bemerkung: ldapvi
verwendet den durch die
Umgebungsvariable EDITOR als Standard vorgegebenen Editor. Nach Ausführen
von beispielsweise export EDITOR=vim
wird
vim als Editor verwendet.
Achtung:
ldapvi
ist ein sehr mächtiges
Werkzeug. Verwenden Sie es vorsichtig und richten Sie kein Durcheinander in
der LDAP-Datenbank an; dies gilt auch für JXplorer.
Die Verwendung von Kerberos für NFS zum Einhängen von Heimatverzeichnissen ist eine Sicherheitsfunktion. Arbeitsplatzrechner und LTSP-Clients funktionieren nicht ohne Kerberos. Es werden die Stufen krb5, krb5i und krb5p unterstützt (krb5 bedeutet Kerberos-Authentifizierung, i steht für Integritätsprüfung und p für Datenschutz, d. h. Verschlüsselung); die Belastung sowohl des Servers als auch des Arbeitsplatzrechners steigt mit der Sicherheitsstufe, krb5i ist eine gute Wahl und wurde als Standard gewählt.
Hauptserver
Als »root« anmelden.
Den Befehl ldapvi -ZD '(cn=admin)'
ausführen, nach sec=krb5i suchen und dies durch
sec=krb5 oder sec=krb5p ersetzen.
Die Datei /etc/exports.d/edu.exports
bearbeiten und diese Einträge entsprechend anpassen:
/srv/nfs4 gss/krb5i(rw,sync,fsid=0,crossmnt,no_subtree_check) /srv/nfs4/home0 gss/krb5i(rw,sync,no_subtree_check)
führen Sie exportfs -r
aus.
Dieses Tool erlaubt es, den Standarddrucker in Abhängigkeit von Ort,
Maschine oder Gruppenzugehörigkeit zu setzen. Weitere Informationen stehen
in der Datei
/usr/share/doc/standardskriver/README.md
.
Die Konfigurationsdatei
/etc/standardskriver.cfg
muss durch den
Admin erstellt werden, die Datei
/usr/share/doc/standardskriver/examples/standardskriver.cfg
kann als Beispiel dienen.
Wenn Sie für die Bearbeitung von Daten in LDAP einen Editor mit graphischer
Benutzeroberfläche bevorzugen, dann probieren Sie den standardmäßig
installierten jxplorer
aus. Verwenden Sie
diese Einträge, um Schreibzugriff zu bekommen:
host: ldap.intern port: 636 Security level: ssl + user + password User dn: cn=admin,ou=ldap-access,dc=skole,dc=skolelinux,dc=no
ldap-createuser-krb
is a small command line
tool to create user accounts, it is invoked as follows:
ldap-createuser-krb5 [-u uid] [-g gid] [-G group[,group]...] [-d department] <username> <gecos>
All arguments except the username and GECOS field are optional, the latter
usually should contain the full name of the user. Unless specified the tool
will pick the next free UID and GID automatically and not assign any
additional groups to the user. If no department is given, it will pick the
first gosaDepartment from LDAP which is likely
skole and for regular users usually not what you want,
so you should pick an appropriate value for the user,
e.g. Teachers or Students. After
entering and confirming the password and entering the LDAP administrator
password, ldap-createuser-krb5
will create
the user account in LDAP, set the Kerberos password, create the home
directory, and add a corresponding Samba user. The following screenshot
shows an example invocation to create a user account named
harhir
for a teacher whose full name is
"Harry Hirsch":
root@tjener:~# ldap-createuser-krb5 -d Teachers harhir "Harry Hirsch" new user password: confirm password: dn: uid=harhir,ou=people,ou=Teachers,dc=skole,dc=skolelinux,dc=no changetype: add objectClass: top objectClass: person objectClass: organizationalPerson objectClass: inetOrgPerson objectClass: gosaAccount objectClass: posixAccount objectClass: shadowAccount objectClass: krbPrincipalAux objectClass: krbTicketPolicyAux sn: Harry Hirsch givenName: Harry Hirsch uid: harhir cn: Harry Hirsch userPassword: {CRYPT}$y$j9T$TWnq55O1rvyLhjF.$oVf.t.RXC1v/4Y8FhV0umno629mo7bP7/YJyig6HET6 homeDirectory: /skole/tjener/home0/harhir loginShell: /bin/bash uidNumber: 1004 gidNumber: 1004 gecos: Harry Hirsch shadowLastChange: 19641 shadowMin: 0 shadowMax: 99999 shadowWarning: 7 krbPwdPolicyReference: cn=users,cn=INTERN,cn=kerberos,dc=skole,dc=skolelinux,dc=no krbPrincipalName: harhir@INTERN ldap_initialize( <DEFAULT> ) Enter LDAP Password: add objectClass: top person organizationalPerson inetOrgPerson gosaAccount posixAccount shadowAccount krbPrincipalAux krbTicketPolicyAux add sn: Harry Hirsch add givenName: Harry Hirsch add uid: harhir add cn: Harry Hirsch add userPassword: {CRYPT}$y$j9T$TWnq55O1rvyLhjF.$oVf.t.RXC1v/4Y8FhV0umno629mo7bP7/YJyig6HET6 add homeDirectory: /skole/tjener/home0/harhir add loginShell: /bin/bash add uidNumber: 1004 add gidNumber: 1004 add gecos: Harry Hirsch add shadowLastChange: 19641 add shadowMin: 0 add shadowMax: 99999 add shadowWarning: 7 add krbPwdPolicyReference: cn=users,cn=INTERN,cn=kerberos,dc=skole,dc=skolelinux,dc=no add krbPrincipalName: harhir@INTERN adding new entry "uid=harhir,ou=people,ou=Teachers,dc=skole,dc=skolelinux,dc=no" modify complete Authenticating as principal root/admin@INTERN with password. kadmin.local: change_password harhir@INTERN Enter password for principal "harhir@INTERN": Re-enter password for principal "harhir@INTERN": Password for "harhir@INTERN" changed. kadmin.local: lpcfg_do_global_parameter: WARNING: The "encrypt passwords" option is deprecated Added user harhir.
Es ist möglich, aber nicht notwendig, stable-updates direkt zu verwenden: Stable-Updates werden regelmäßig (etwa alle zwei Monate) anlässlich der Veröffentlichung von Stable-Pointreleases in die Stable-Suite übernommen.
Sie benutzen Debian Edu, weil Sie seine Stabilität schätzen. Es läuft sehr gut, es gibt nur ein Problem: Manchmal ist eine Software ein wenig mehr veraltet als Ihnen recht ist. Hier kommt backports.debian.org ins Spiel.
Backports sind extra kompilierte Pakete aus Debian-Testing (meistens) und Debian-Unstable (allerdings nur in Ausnahmefällen, insbesondere Sicherheitsaktualisierungen), so dass sie ohne neue Bibliotheken (sofern das möglich ist) auf einer stabilen Debian-Distribution wie Debian Edu laufen. Es wird empfohlen, nur diejenigen Backports auszuwählen, die Sie benötigen und nicht alle verfügbaren zu benutzen.
Die Nutzung von Backports ist einfach:
echo "deb http://deb.debian.org/debian/ bookworm-backports main" > /etc/apt/sources.list.d/bookworm-backports.sources.list apt update
Anschießend können Pakete aus Backports einfach installiert werden; der folgende Befehl wird die Backports-Version von tuxtype installieren:
apt install tuxtype/bookworm-backports
Backports werden (falls verfügbar) automatisch aktualisiert - genauso wie andere Pakete. So wie das normale Depot hat Backports drei Sektionen: main, contrib und non-free.
Falls Sie ein Upgrade von einer Version zu einer nächsten (wie z.B. von Bookworm 12.1 auf 12.2) durchführen wollen, aber keine Internetverbindung, nur physikalische Medien haben, dann führen Sie folgende Schritte aus:
Legen Sie die CD / DVD / Blu-ray Disc ein oder stecken Sie den USB-Stick ein und benutzen Sie den Befehl apt-cdrom:
apt-cdrom add
Zitat aus der Handbuchseite von apt-cdrom(8):
apt-cdrom wird benutzt, um eine neue CD-ROM zu APTs Liste der verfügbaren Quellen hinzuzufügen. apt-cdrom kümmert sich um die Feststellung der Struktur des Mediums, sowie um die Korrektur für mehrere mögliche Fehlbrennungen und prüft die Indexdateien.
Es ist notwendig, apt-cdrom zu benutzen, um CDs zum APT-System hinzuzufügen; dies kann nicht manuell erfolgen. Weiterhin muss jedes Medium in einer Zusammenstellung aus mehreren CDs einzeln eingelegt und gescannt werden, um auf mögliche Fehlbrennungen zu testen.
Dann sind diese beiden Befehle für das Upgrade auszuführen:
apt update apt full-upgrade
killer
ist ein Perl-Skript, das
Hintergrundprozesse aufräumt. Hintergrundprozesse sind definiert als
Prozesse, die zu Nutzern gehören, die zur Zeit nicht am System angemeldet
sind. Das Skript wird per Cron-Job einmal in der Stunde ausgeführt.
unattended-upgrades
ist ein Debian-Paket,
das automatisch Sicherheitsaktualisierungen (und andere Aktualisierungen)
installieren kann. Falls installiert, ist das Paket so vorkonfiguriert, dass
Sicherheitsaktualisierungen erfolgen. Die Log-Dateien gibt es in
/var/log/unattended-upgrades/
; außerdem
gibt es immer /var/log/dpkg.log
und
/var/log/apt/
.
Es ist möglich, Energie und Geld zu sparen, indem Client-Rechner nachts
automatisch ausgeschaltet und morgens wieder eingeschaltet werden. Das Paket
shutdown-at-night
versucht, den Rechner ab
16:00 Uhr nachmittags zu jeder vollen Stunde auszuschalten, schaltet ihn
aber nicht aus, wenn er anscheinend Benutzer hat. Es wird versucht, dem BIOS
mitzuteilen, den Rechner um 07:00 Uhr morgens einzuschalten, und der
Hauptserver wird versuchen, die Rechner ab 06:30 Uhr durch das Senden von
Wake-on-LAN-Paketen einzuschalten. Diese Zeiten können in den Crontabs der
einzelnen Rechner geändert werden.
Falls Sie das vorhaben, sollten folgende Punkte beachtet werden:
Die Clients sollten nicht abgeschaltet werden, wenn jemand sie benutzt. Dies
wird durch die Überprüfung der Ausgabe von
who
sichergestellt, und als Sonderfall wird
überprüft, ob der SSH-Verbindungsbefehl mit X2Go-Thin-Clients aktiv ist.
Um das Herausspringen von Sicherungen zu vermeiden, sollte sichergestellt sein, dass nicht alle Client-Rechner gleichzeitig eingeschaltet werden.
Es gibt zwei Methoden, Client-Rechner aufzuwecken. Eine Methode nutzt eine
BIOS-Eigenschaft und setzt eine korrekt arbeitende Hardware-Uhr voraus sowie
eine Hauptplatine und eine BIOS-Version, die von
nvram-wakeup
unterstützt wird. Die andere
verlangt die Unterstützung von Wake-On-Lan auf allen Client-Rechnern sowie
einen Server, der weiß, wie alle Clients aufzuwecken sind.
Legen Sie auf Rechnern, die über Nacht abgeschaltet werden sollen, die Datei
/etc/shutdown-at-night/shutdown-at-night
mit Hilfe von »touch« an - oder fügen Sie die entsprechenden Rechnernamen
(wie in 'uname -n
' angegeben) der
»Netgroup« »shutdown-at-night-hosts« hinzu. Das Hinzufügen der Rechner zur
»Netgroup« in LDAP kann mit der
GOsa²
Webschnittstelle erfolgen. Für diese
Rechner muss ggf. im BIOS die Wake-On-Lan-Funktion (WOL) aktiviert
werden. Außerdem muss sichergestellt werden, dass alle Router und Switches
auch dann WOL-Pakete weiterleiten, wenn die angesprochenen Rechner
ausgeschaltet sind. Von einigen Switches ist bekannt, dass sie keine
WOL-Pakete weiterleiten, wenn die Empfängeradresse nicht in deren
ARP-Tabelle vorhanden ist.
Um Wake-On-Lan auf dem Server einzuschalten, tragen Sie die Client-Rechner
in die Datei /etc/shutdown-at-night/clients
ein: Eine Zeile pro Client, zuerst die IP-Adresse, danach die MAC-Adresse
(bzw. Ethernet-Adresse), durch Leerzeichen voneinander getrennt. Alternativ
können Sie ein Skript
/etc/shutdown-at-night/clients-generator
schreiben, das eine solche Liste erstellt.
Hier sehen Sie ein Beispiel
/etc/shutdown-at-night/clients-generator
,
das mit sitesummary genutzt werden kann:
#!/bin/sh PATH=/usr/sbin:$PATH export PATH sitesummary-nodes -w
Wenn die »Netgroup« benutzt wird, um shutdown-at-night auf den Clients zu
aktivieren, ist dieses Skript eine Alternative; es nutzt das
Netgroup-Werkzeug aus dem Paket ng-utils
:
#!/bin/sh PATH=/usr/sbin:$PATH export PATH netgroup -h shutdown-at-night-hosts
Um Maschinen, die hinter einer Firewall liegen, vom Internet aus erreichen
zu können, könnten Sie das Paket autossh
installieren. Dies erlaubt das Einrichten eines SSH-Tunnels zu einer
Maschine im Internet, zu der Sie Zugang haben. Von dieser Maschine aus
können Sie dann über den SSH-Tunnel den Server hinter der Firewall
erreichen.
Bei der Standardinstallation laufen alle Dienste auf dem Hauptserver, Hostname tjener. Um auf einfache Weise einige Dienste auf eine andere Maschine zu verlagern, gibt es das Installationsprofil Minimal. Eine Installation unter Verwendung dieses Profils führt zu einer Maschine, die zum Debian-Edu-Netzwerk gehört, auf der aber (noch) keine Dienste laufen.
Diese Schritte sind erforderlich, um eine Maschine für einige Dienste aufzusetzen:
bei der Installation das Minimal-Profil wählen
Installieren Sie die Pakete für den gewünschten Dienst
Konfigurieren Sie den Dienst
den Dienst auf dem Hauptserver deaktivieren
den DNS-Dienst (via LDAP/GOsa²) auf dem Hauptserver aktualisieren
FIXME: The HowTos from https://wiki.debian.org/DebianEdu/HowTo/ are either user- or developer-specific. Let's move the user-specific HowTos over here (and delete them over there)! (But first ask the authors (see the history of those pages to find them) if they are fine with moving the howto and putting it under the GPL.)