| Version 112 (modified by , 10 years ago) ( diff ) |
|---|
-
Aufsetzen eines Linuxmuster-Clients from scratch
- Bei Bedarf: Client aufnehmen
- (Ed)ubuntu installieren
- Grundkonfiguration
- Kepler-Release
- Software
-
Skripte in
/usr/local/sbin - LDAP-utils einrichten
- linuxmuster.net-Paket
- lokale Nutzer anlegen
- (ENTFÄLLT BEI NFS-ANBINDUNG: Verzeichnis des Vorlagennutzers einrichten)
- LightDM konfigurieren
- Kepler-Profil
- ENTFÄLLT? Vorgaben für Gnome-Settings (dconf) einrichten
- Timeserver
- Cronskripte
- Devilspie
- SMART
- Drucker einrichten
- Kepler-Logos
- Apport deaktivieren
- Epoptes-Integration
- Virtualbox konfigurieren
- Windows-Sitzung für Infosys einrichten
- Firefox-Killer-Dienst
- Logind anpassen
Aufsetzen eines Linuxmuster-Clients from scratch
Hier werden Hinweise beschrieben, wie man einen völlig neuen Linuxmuster-Client im pädagogischen Netzwerk des Kepler-Gymnasiums aufsetzen kann. In der Regel wird man das nicht durchführen, sondern auf ein bestehendes Image aufbauen. Es kann jedoch Situationen geben, in denen ein frisches Image gewünscht wird.
- Hintergrund
- Das hier beschriebene Verfahren dokumentiert das Aufsetzen des Kepler-Releases "Creativer Christof", beruhend auf "Ubuntu 16.04 LTS (Xenial Xerus)". Grund für das Neuaufsetzen war der Übergang von einem 32-bit zu einem 64-bit Image (ticket:2229). Das letzte vorhergehende Image ("Bahnbrechende Birgit") beruhte ursprünglich auf "Ubuntu 10.04.3 LTS (Lucid Lynx) (32-bit)". Das Image wurde also über sechs Jahre gepflegt und aktualisiert und unterscheidet sich in der Konfiguration nur marginal vom aktuellen Image. Wäre nicht der Übergang zu 64-bit gewünscht gewesen, hätte dieses Image problemlos weiter gepflegt werden können. Das soll uns erst einmal jemand mit Windows nachmachen!
Bei Bedarf: Client aufnehmen
Im Folgenden gehen wir davon aus, dass wir an einer Client-Maschine arbeiten, die bereits ins Linuxmuster-Setup aufgenommen wurde. Sie erhält also eine fest vergebene IP-Adresse (vorzugesweise im Schülernetz) und bootet Linbo vom Netz.
(Ed)ubuntu installieren
- Ein aktuelles (Ed)ubuntu-Installations-ISO herunterladen und auf einen USB-Stick schreiben.
- Hinweis: Im Moment gibt es keine aktuellen Edubuntu-Installationsimages mehr. Also Ubuntu benutzen.
- Client vom USB booten.
- Optional: Um während der Installation gleich die aktuellen Updates herunterladen zu können, muss apt den Software-proxy kennen:
~ sudo -sH # echo > /etc/apt/apt.conf.d/80kepler-proxysw 'Acquire::http::proxy "http://proxysw.kg-fds.de:8080";'
- Sprache "Deutsch" auswählen
- "Aktualisierungen herunterladen" auswählen, wenn der Proxy gesetzt wurde (sonst machen wir das später!)
- "Lizensierte Inhalte installieren" auswählen
- Bei der Partitionswahl "etwas anderes" auswählen, dann konsistent mit unseren Linuxmuster-Partitionen wählen:
/dev/sda1als/(formatieren)/dev/sda2als/usr/share/virtualbox-vdi/dev/sda3als Swap
- Nutzer "linadmin" mit dem zugehörigen Passwort
Die Installation dauert nur wenige Minuten :-).
- USB-Stick entfernen und den neuen Client booten.
Grundkonfiguration
Als lindamin einloggen, dann root werden:
~ sudo -sH
fstab
Der Ubuntu-Installer schreibt in die fstab UUIDs. Das können wir nicht gebrauchen, da die UUID der Festplatte auf jedem Client anders ist. Wir überschreiben die fstab mit der guten alten dev-Schreibweise:
(Version mit CIFS-Anbindung über LML-Mechanismus (derzeit bei uns nicht genutzt))
# cat > /etc/fstab << EOF # /etc/fstab: static file system information. # # Use 'blkid -o value -s UUID' to print the universally unique identifier # for a device; this may be used with UUID= as a more robust way to name # devices that works even if disks are added and removed. See fstab(5). # # <file system> <mount point> <type> <options> <dump> <pass> /dev/sda1 / ext4 errors=remount-ro 0 1 /dev/sda2 /usr/share/virtualbox-vdi/ ext4 defaults 0 2 /dev/sda3 none swap sw 0 0 EOF
Version mit NFS4-Anbindung (derzeit bei uns genutzt)
# cat > /etc/fstab << EOF # /etc/fstab: static file system information. # # Use 'blkid -o value -s UUID' to print the universally unique identifier # for a device; this may be used with UUID= as a more robust way to name # devices that works even if disks are added and removed. See fstab(5). # # <file system> <mount point> <type> <options> <dump> <pass> /dev/sda1 / ext4 errors=remount-ro 0 1 /dev/sda2 /usr/share/virtualbox-vdi/ ext4 defaults 0 2 /dev/sda3 none swap sw 0 0 paedml:/home/students /home/students nfs _netdev,bg 0 0 paedml:/home/teachers /home/teachers nfs _netdev,bg 0 0 paedml:/home/share /home/share nfs _netdev,bg 0 0 paedml:/tasks /var/cache/sophomorix/tasks nfs _netdev,bg 0 0 # paedml:/nfsexport/home/students /nfs/home/students nfs _netdev,bg,noauto 0 0 # paedml:/nfsexport/home/teachers /nfs/home/teachers nfs _netdev,bg,noauto 0 0 # paedml:/nfsexport/home/share /nfs/home/share nfs _netdev,bg,noauto 0 0 # paedml:/nfsexport/tasks /nfs/var/cache/sophomorix/tasks nfs _netdev,bg,noauto 0 0 ###paedml:/nfsexport/home/ftp/Scans /home/ftp/Scans nfs _netdev,bg,noauto 0 0 ###paedml:/nfsexport/home/cds /home/cds nfs _netdev,bg,noauto 0 0 EOF
- Hinweis
- Früher enthielt unsere fstab die Option
discardzum Online-Trimming der SSD-Deteisysteme. Über die Verwendung von Online-Trimming gehen die Meinungen auseinander. Ich halte mich hier an das Standard-Setup von Ubuntu: keindiscardin der fstab. Stattdessen wird übercron.weeklyeinmal wöchentlich derfstrim-Befehl für alle gemounteten Filesysteme ausgeführt. Die Swap-Partition wird bei jedem ersten Mounten getrimmt. Siehe: UbuntuusersDe:SSD/TRIM/
Systemweiter Proxy
# echo >> /etc/environment http_proxy=http://proxy.kg-fds.de:8080/ # echo >> /etc/environment https_proxy=https://proxy.kg-fds.de:8080/ # echo >> /etc/environment ftp_proxy=ftp://proxy.kg-fds.de:8080/
Im Schülernetz wird dieser Name aufgelöst zu 10.32.1.251 (proxys) im Lehrernetz zu 129.143.4.2 (BelWü-Proxy), jeweils Port 8080 oder 3128.
APT-Proxy
Um unüberwachte Updates zu ermöglichen, muss außerdem APT einen durchlässigen Proxy kennen. Im Lehrernetz ist das ebenso der BelWü-Proxy, im Schülernetz haben wir hierfür einen speziellen APT-Proxy. Beide werden dynamisch über den Namen proxysw aufgelöst, also:
# echo > /etc/apt/apt.conf.d/80kepler-proxysw 'Acquire::http::proxy "http://proxysw.kg-fds.de:8080";'
Pakete auf den neusten Stand bringen:
# apt update # apt full-upgrade
SSH-Zugang einrichten
# apt install ssh
Ab jetzt kann die weitere Adminstration über ssh erfolgen. Bevor wir irgend etwas weiteres beginnen, installieren wir aber einen Editor :-) :
# apt-get install emacs
Root-Login ermöglichen
# passwd
Die SSH-Schlüssel der Administratoren zulassen:
# mkdir ~root/.ssh # chmod go-rx ~root/.ssh # cat > ~root/.ssh/authorized_keys <<EOF ssh-dss AAAAB3NzaC1kc3MAAACBAMdoKtqur91lfZex03bRLQz37MIRWjY3u+9FQORjEgBUhUBU40rPdsQo5iWhZeP0bIVBYnxbtESbhO3jJDciRpcXsVvUGMri/d/YEsb4TFueZBonGtaCKc460ox2ZfO60k5qjj4wasHe2otkqLfhoyimqFIRsJRhGrEcXg17x5pXAAAAFQCpq9gXtdCrSDWniYuThDw2hgHE0wAAAIB2UjzLoPrw0tdTFNtgWdf3JFnHj0GmNKVXyqoNAA12Gz4Ea4Rr9nugIzyE1wQbqXoYhBU+jaHxrYwveZu/mhzl/5Mu7Xvfk4Vu/Nh7vRZVRDDvupB8TnEujJUrqiB1s9gxXyrMm18+yS0Xr8SlEnImKK6T7LECq/ymYBKr3/n9pQAAAIEAtBFY+a3fbRhaFggaybJJYB9qai19QVTGDHyjGthmOpz3UMj843QdG48tCUsiPuZumeHxbjc+Nx4ye6PPpGi9Edu170zlKqnOjTknZ0Kzo/hALI0Kn+q72wlQfsEGR9ulub+Oov+kwg9DWsMGs3/MsUvCvSjQjAS09Sr/L0nQH84= root@paedml ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBFPgkPpCEL/DocyXSbl2FmJeL1FuQ0AE5zjGgK2IJ3/u9o8eet6UWOABX2zLNk393rYvzE6jhgng3LTCXxzhdsQ= root@paedml ssh-dss AAAAB3NzaC1kc3MAAACBAKJtBo9a4cqiBjshdfGiV0jkPyaPho4ew1CiEw2qLOgoRWrUZ3LFnm10pbhIH0mm4HcYkyszIQLBB21ryDmsNLfs2hqQF9vD2bOls29rfBGp6KDzfP9JJfJijPhrzYuFK7slyki/PVqTEL0vdcfQBH/sIZkgGQZX2avA1hG/iV4XAAAAFQCNepeRPaWXhTBR8k8igkPLalAEyQAAAIEAlriuMxQW8GkUzan3zvV4uTVlPSxlXGzLvQBEnwS2GD3PLKuTMAZj4j6mCAUy/c6jwZDZ+6YRgHD8J4ZdZExb8qDhj7Dmd7WhWblZ+KiBsZLYBUeEwcC0suPmnOSL2RXx3d2b+LtgnXJBnlUg2ipPveA/PgbLEx1GUUHCM1FXJuQAAACAGheG34JXHdAaxp7gfUPQfj0KVERZe6tCVAGbZKgYZy+abBZA3GeJdy0+w+MDzpSTMCnMW6g+tLHYzKjhGreR/qIWU3oK9+s6uiaqE0ExheH06sum2BvJj8sS8gFbYd0e5xYKdr1BrENGW22F+/IbNeogR6gu/rQ+GRAHHG+oY9g= Dr. Rüdiger Kupper ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDgrXpLQR5MtdHsLmhHWO2fQlGnVaxEdWFatjF52SXYEXKZ1MdLSBlTaD2UMBGpeZxqfFypxtcq7/bvygli7Knht9BInJTy0ADFwKBTE0Q3oFIVqDh2jkmfnmEoBXfkaMvzCFDv2PWGF6xWAChX2JLn8oP4uyG5sfhebykChuheYHU2rPtXuZntMdWdttExFIw6UhInSrsuPY1YGP0zr7Cd+JB0baZxk3qIPiNj/ALGl0HtAFUgOX4FmcJjUuZOsCUQzMxHQqeyWpSbD0fMXRS16Z2raTVGzhYXnt5CqjPpKkg8add90cWYM103Fyjd8CDtzkTl1k8dsP590xJiEQm3 kup@reinhold ssh-dss AAAAB3NzaC1kc3MAAACBAJvTdAeRisrjbyJJxM9I7nYHgCz32XY/l4zUbVbLreR2DI9xf/ihOw2f+2WkQpkUmi1KKnaRDW2Bt/rMVZMC4rPxwvRBQi5r6aYmVZMSVE3o3td23wEIUpXVtCUCnIrPvGfaHDO6P54WizM9vMwJQQ/ZtAW/JUX22vqLlGefVpbbAAAAFQDFmUMNnr9BFMagZph2k/NuazPArQAAAIBCWDLurI2p08Ju7oqPxlpiW6JXgEx0EvOlVA8mCbWB15XP+rXl9oZKKIYoqXXbhkp0FtdolHUvWszSX7WO67a1debKVDiwiNs+Rp0Uu6XrLYpqmpoXHKrbVtBJebNMoa5lMBPl/NLGhvfQZ65M+Fwdn2APJAaq9FEjFj/A5X7UOAAAAIB7aXQVRqyVVv6+JcIpg5bJgQKzSTqkyQA0+bxMiZtcTgU0jZjr2hsLaPKv0ZXnUqYvUsM2ST/aWrppwu3tC/ns8yixq/z3CaFKy1iXHwFTSQx3dug0j2LJ5qKZ9J02f6kSapU5nnDbk5bL0A2t5+Rv/9UhPCAENP7hJzcfk8qQqw== bau@BauLap ssh-dss AAAAB3NzaC1kc3MAAACBALNd5hogWwu1yq0yjM+wwB0/uQeDpKy2vUdHsm7niDpnxLJNtdBlDGa2oZ9knyYXXbW7vQTyHpP4DBaNoYUMrqYGytpHEHsw8Rw0eZ52/YfFlarFqO2PA1NWZv/dvWJ1tKxDQI6Osm4bUaLU8YhiCWi/SSVjm57+szYTxaogND8pAAAAFQCUDEw+ziMw7/VTz51kIpuQovylFQAAAIBuj/6Xheccb3VY4ZccWuzkxOwxYF7RWtdTlSbJ6EQDBf4IxoFU5uMkT3JiujA8ETBIC4I1ZFqSwXDvFM7mcEuVnswBfCgEUaGgVMQCVxFJbDQ5a096ALJY9GMNw47nnHpOhxMjIf51X6y3OlB1gJMGma3l/BCVlsAEyrDcgSfUxwAAAIEAoBRNZqk/hTM740yYjwNdYOa/8HxdpoGYNVi9mLCX4lEnihvvfBa7yNagrvRHEG/DIzNh9l+1LamuVK/DtHZVDyvLxaLPhKIZo0e/GGrYjQcykMn7ZHL1oqWfIxNN3VDw7lpuisi6ks4m2FK+u3+y24kvOqyop2jOYl+bYKMu9ks= root@LTSP ssh-dss AAAAB3NzaC1kc3MAAACBAP2kNGWNDXoIN/eCfqR2Ja7ky/ETVhi/TDUlRXDgLwO7SHHH8WT/K5KeYDxl2IV62WfRKHNbDUg30xKJBbQKg2w8HvFPFTvONdeU7wXazFwGpuLV4LeZbg2d6bcz8nBBqXD+/DQETIcKVvv0cJYqm8SU25NFsfZ7YICHQt8llEKDAAAAFQDeGjaLoldUGOvwG+IlnRUIgDSjYwAAAIAEb87oiJhOBTOZ4NJAgFDprx14SRs9ckL+M0acmyD+8xhMCBY0F8VG2wv7MHjNyTnRj02naJ05D8ygwRATccgudXjGL4OWe+gafLTC4gPfm5YRKpD4+zSindmzPifBHpHOH6z++vx55MRjWHwAoqTIlvNHNeIo97RRFVHu+FoKPwAAAIAu5CtkEAEoFnLOo3up45E72IqA/TQhRIpD7dHIJXPktoUdlasgGZTwCVI+lkrB5NJKjpQoAJpyKQzFMveRrnEgDAKMo8D+XrI7WQTDm4OeCCz3t6HMas8jBvv0JHIWMFZyEJve4n7xYGr3CuGF+LJlG0ARuCuablJiKIwnPsJGgw== linadmin@LTSP ssh-dss AAAAB3NzaC1kc3MAAACBALctoN5jVWYvA4RxAHLgQI8btl5Fll/JOSFmpo52Ey1fF0QxT3DKO29JHPyFjcfFqBwwQ59ycRWWV9c41Hi+96y7G0OD/6xizOp9D5UK1ZoMbLcQcOtW2mlIE1rSDt/tbRwHPZa2ENDkIOZvVhQwk5pmPqRMyyL70/HWBpEMKypBAAAAFQCTsjBQnmndH+Ujw/rJz/N+fQoigQAAAIEAr4AHPmBP5MYPbUU7HPjGaChfRfJ09Ao6SyUhXK/ebIc/DZsRS8U9vWW8LcoVBnR6dVgb0jZu2E3S0ma7yqlsa7jmNmAo+rRoty2GLcQl6q1dVCYV+DI8q7M8eFHiNmcNPYX/QkKddeT9osv3fwZSH3cjrpEKHeAhqwHx4+pTTgwAAACAS4ZlSRxCuNwZsv5JLJIkyt7ROBuYjQjxv+b/cHgh1ErCbh4Y+QVjap3TMlSn/wNCUjcTZ2fP1srAk2w53y63w4009cXMwA2iktz7z0LqhdQs3ArF8+ZrXDbPhh7rhtCRKvd5TF4C0ZGeUdiPp05PBlrstE2b8Raw8QVwfFlofFQ= jas@paedml ssh-dss AAAAB3NzaC1kc3MAAACBAIVxw23kJxoqK0Jb/vjxT2gQZKwCSmNa2s1OCfbjB3+3C7ytKHX09aovIof0xrJx3L4JUk1sYhfSZs/eMh46gkOeGcBK22ocN5CNpqMHti+v1Gj5kVLYJq0jDIp6BHbqlctlKlODXKW8fQ37FWAetn1TEHIUNK0xiOg0lkyPzuh1AAAAFQDxHStaYHbBopAMYEN3LsccDXBnRwAAAIBOBLM3Aw5otlgy+BgHgGtXAzd12hH6MEQSbEWMP7n9G0aaYsALiN5IR/3Lqn7x8dcxD1iPyy/wigmcTY0iZGMMmIf0x929QgBpNwF00kuDTI8LjymVAPCwpHgJryB3ZYdcVX1vk9827rMXXGuXjn+d+ih8aLRcQ/repq3I8658RgAAAIAa5LkSnBdm2nMc/fCw8yxu/gjt8xgY9JUAMjEfb1IUq5TV0sMyikpFG77Khmk7WfiWS1aX4464sr7jXFA9RqRyfSE+oHQeUoObRalVAavqquqHscUu4Qg7dhN/dmSV+aniVD0/RE0etple6i6CnK2r0tV1WS+hNIA/n3nGB726nQ== root@db ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDgrXpLQR5MtdHsLmhHWO2fQlGnVaxEdWFatjF52SXYEXKZ1MdLSBlTaD2UMBGpeZxqfFypxtcq7/bvygli7Knht9BInJTy0ADFwKBTE0Q3oFIVqDh2jkmfnmEoBXfkaMvzCFDv2PWGF6xWAChX2JLn8oP4uyG5sfhebykChuheYHU2rPtXuZntMdWdttExFIw6UhInSrsuPY1YGP0zr7Cd+JB0baZxk3qIPiNj/ALGl0HtAFUgOX4FmcJjUuZOsCUQzMxHQqeyWpSbD0fMXRS16Z2raTVGzhYXnt5CqjPpKkg8add90cWYM103Fyjd8CDtzkTl1k8dsP590xJiEQm3 kup@reinhold EOF
Ab jetzt können sich die Administratoren kup, bau, jas, root@paedml, root@LTSP und root@db mit ihren SSH-Schlüsseln einloggen.
Praktischerweise die selben Schlüssel auch für den Login als linadmin zulassen:
# rsync -rv ~root/.ssh ~linadmin/ # chown -R linadmin:linadmin ~linadmin/.ssh
An dieser Stelle bietet es sich an, das erste Linuxmuster-Image von unserem neuen Client hochzuladen :-).
SSH-Schlüssel kopieren
Damit root und linadmin ihre Schlüssel auch verfügbar haben, wenn sie sich lokal an der Maschine einloggen, die betreffenden Schlüssel (öffentlich UND privat) von einer bekannten Maschine kopieren:
- root@linuxmusterclient
- linadmin@linuxmusterclient
Kepler-Release
Der Name des jeweiligen Kepler-Releases wird von unseren Skripten in /etc/issue.kepler erwartet (#2122):
# echo > /etc/issue.kepler '"Creativer Cristof"' # oder jetzt aktueller Codename
# cat > /etc/update-motd.d/05-kepler-release <<EOF #!/bin/sh cat /etc/issue.kepler EOF # chmod a+x /etc/update-motd.d/05-kepler-release
Software
Als nächstes instalieren wir die Software, die auf unserem Clients verfügbar sein soll.
Partner-Repository aktivieren
In der sources.list die deb-Zeile für das Partner-Repository einkommentieren:
# emacs /etc/apt/sources.list
zusätzliche Paketquellen
# ISSUE=xenial # oder das inzwischen aktuelle release # cat > /etc/apt/sources.list.d/atareao-telegram.list <<EOF deb http://ppa.launchpad.net/atareao/telegram/ubuntu $ISSUE main deb-src http://ppa.launchpad.net/atareao/telegram/ubuntu $ISSUE main EOF # cat > /etc/apt/sources.list.d/geogebra.list <<EOF ## THIS FILE IS AUTOMATICALLY CONFIGURED ### # You may comment out this entry, but any other modifications may be lost. deb http://www.geogebra.net/linux/ stable main EOF # cat > /etc/apt/sources.list.d/linuxmuster-net.list <<EOF deb http://pkg.linuxmuster.net/ $ISSUE/ EOF
Die Repositories sind signiert. Damit apt die Repositories auch verwendet, benötigt es die öffentlichen GPG-Schlüssel:
# apt-key --keyring /etc/apt/trusted.gpg.d/atareao-telegram.gpg add - <<EOF -----BEGIN PGP PUBLIC KEY BLOCK----- Version: GnuPG v1 mI0ETQfDgQEEAPSiDI/aHY9bPa1K4pvcMR8g3eJr6/9cdEDihLj0JbMCn8a8rXMi 4iTwvFJJQFUalIzRSc67AUEp9rNQyAHsZFEmxD9Ah+j8eI/ULmMRN/YzHUT3V2vt W29pxrsz4ZFNQKYENoDoNrY0sCmkNnWk9gXwPKazYVCkTv9fpQdhhIbbABEBAAG0 GUxhdW5jaHBhZCBQUEEgZm9yIGF0YXJlYW+IuAQTAQIAIgUCTQfDgQIbAwYLCQgH AwIGFQgCCQoLBBYCAwECHgECF4AACgkQapZT+Tb9VSlxUQP/aEolfHZZmJMt5SEl SItaUAVHR5egWcZeDPdVKcaUsTTGDx7Q2oXNjT88ZAF+pWXqLzzBHE0Hn0BiqcuH YQ5hwgzW2KpVj6MjyUKHXHBAA5e7E0O7q8JWJXKMystILbhQCpM33JkwF4VtprV4 yLzn23RakMw9PONVA0du5ABfIZY= =8gbf -----END PGP PUBLIC KEY BLOCK----- EOF # apt-key --keyring /etc/apt/trusted.gpg.d/geogebra.gpg add - <<EOF -----BEGIN PGP PUBLIC KEY BLOCK----- Version: GnuPG v1 mQENBFFMIIkBCAC4YLnoBGrp8bIrebBp6dpRCyet7V8DxNurJynQA4R9MyXWTND0 Wi7UeJFJQTFFBdlNgCfTts4fAU9s3iA7m9WCUIsVtx288+QC6oLwb4/p7ZX53Tl1 0HhRBSsOC5OmU7/Ds5YNyvOV29ScjrxDwSHyvIjGpnL/2mc6JZNUSRGxDPbikhPt CU5QnrlC1+NnJbH2bQz93jXb3E3hZvXreeJwG/UXO6pcGayUfqwzOcOZWikcTi1g /uUurlABHyS6SwLnSE8mhs8nGB8fCTmRkjNP59aQdSwOo2ppBSRjVS/RiIJCI2B/ avuolIfqq46IgcvKAuBAcex/icBCNgTEz61JABEBAAG0NkludGVybmF0aW9uYWwg R2VvR2VicmEgSW5zdGl0dXRlIDxvZmZpY2VAZ2VvZ2VicmEub3JnPokBOAQTAQIA IgUCUUwgiQIbAwYLCQgHAwIGFQgCCQoLBBYCAwECHgECF4AACgkQwHKjKYOnNs93 vggAkOsNAqGsKtVgAgmhocK7ealctiwFQUIFVGRl8enKU64Qijh9aPX32EJKhOXO 6WMNmFPeqRdp7ApBAt+/hiftZDm2kkhobM178gN0iZD5CN/sgX5fnLG7Afb9TS/+ USV+7vxt2eBNU/q+Fr4+uAkL5999KaNArYrXI2YlBWlUnQt7gVedRRM/2PPwJEqu UpXr7TJODK7xUgSgUHb0QYxcm9lVTHr3kTBukzqx7NxPzJtYULJOpIxPh6+g7dUK CR1mfFdILvG3KnPHVE2bAznxhYLHtK0W0x/TjtsMz2+lySFSn+zDV612t5lhcgLm H5mYhQP1C4V9xFrJVK8JroVwJA== =v29t -----END PGP PUBLIC KEY BLOCK----- EOF # apt-key --keyring /etc/apt/trusted.gpg.d/linuxmuster-net.gpg add - <<EOF -----BEGIN PGP PUBLIC KEY BLOCK----- Version: GnuPG v1 mQENBE+ddzwBCADYcRLrZnVd3c8+/2BsRprUoXY500Hkqw0DlkEEBft1kmsANWVc pMPC83VWvWttDerjEYLM1K+WNyzAMRGEq7UOQd1H1yjlzp22lr4S/xWmHaSisq9l qf/LUil0VXd6jM02r+SEGRQVuuDlQ/pgSgQuQI/qvjaSZK245TBTpzXM4FAFp416 rEVP0IHZL/5uN3/hptrHRzhxRFLHTA7C8xGQGxYW5DZ3bov2h3xzBBqHKa7rjjZa W3WXuUCU2t4tY+ghi58YEHmP3An3ofV40tuw+oVOVQC5Gmxj7GALBscDfYX6rBXa AXf7zZtStsXuwDKvbL0WU95IoyR5RJJcOuZDABEBAAG0VmxpbnV4bXVzdGVyLm5l dCBkZXZlbG9wZXJzIChsaW51eG11c3Rlci5uZXQgcmVsZWFzZSBrZXkpIDxsaW51 eG11c3RlckBsaW51eG11c3Rlci5uZXQ+iQE4BBMBAgAiBQJPnXc8AhsDBgsJCAcD AgYVCAIJCgsEFgIDAQIeAQIXgAAKCRCDkDvGaEszbukmB/4yu4ARdRbdy+CGU1tc fz941Iu6rJ83itRSY+entyJDbn4MUfWqz7EFc/88w+JFrNI17X35of5fXw9B2WVC 2d/SI4ho/0Azkkhhu0EEbFJTpg34h9b+rn3/Ok6GadPRuP8nArGvfBiiz/EGdNdE 781oO2DqzM/Bnwk/4R1GIMe5vw11yItsrZkNw6jIGrHXWp+3+OltADnrAb2Lf1E5 rXQmaALAuU4dmFHIV616w86E8cr0ifbSqqS6O4csXAU8tfF5E+x46d2Fu+ARCHBm vjwLsouxd2z+o3h4WkNXOA2BqOVJkY4rfGsw3NuJ+N7BhgAStNlvMfttl3M8ssO+ Z9LeuQENBE+ddzwBCACU0kbNnUX7aGkrC631BxHJlb+rxLawj1j1V+V4eBdXrbGp ZNQRwA96iCJbJxKFtMuLO0yVMhGwjfQxwLHK2NUgaHOR4IRAW77cusuB20V7Wlgj 0tEDmUpxE2iLg0jNxxS7KVNmP+KbGELwWu8qVP4ZYwKGAVDWdLQUsyAwzt+516Oo DA2iANvBdiSxJCatUQW9G91eelMgrRIAHgsPqWYmnQNovB9m31kH4nrPmsS7Opq6 xcjVQvPUH4DRwlOxq6kBPHvag7edl9Un6omyjLdVkYnrr1OUOKbXw7UHAKoN/1fV zCMTYavL3o8P5aPs4eLXBbMRIBHDaXcmXdbwjZF1ABEBAAGJAR8EGAECAAkFAk+d dzwCGwwACgkQg5A7xmhLM25RKgf/f4Pzvhq9VEdwclyx+XSXvLfdPQyX7VBRnOIm a7EJ6TC2ErVh/sB7dub4OVqDbb4rXOHSZQCJdxIYbtDY30d7XnigF74/KypqpdxY pQVqWjlHwQ+XhONYnzvDHnVfPfu3mzrnfa0ihv5EN+JAmftvPW5Ef4D4fPWZ2QuG mgMpdiQOszDemPVzvOmQzUkgZjqTf7KHGXCrxt+ijgTI9pwIiT1tya/2d7NlgnDK ICZw9nDDAnM4aE09j53Th2XTiEcUBj4k/DzbN12T15cSzIkHa0WE0OZgfad8cQiD HT1Oq8dRaLD4//Pjkg/hLDva4fc1D47owtzmyXb72Lu2r14fjA== =nhAI -----END PGP PUBLIC KEY BLOCK----- EOF
Jetzt sollte ein apt update durchlaufen:
# apt update
typische Software
Folgende Pakete sind in unserer Installation:
# apt install ardesia auctex audacity clusterssh dconf-editor debfoster devilspie2 edubuntu-desktop emacs enigmail epoptes-client finger firefox-locale-de firefox-locale-en fonts-crosextra-caladea fonts-crosextra-carlito fonts-opendyslexic gcompris-sound-de gconf-editor gedit-latex-plugin geogebra5 gimp-help-de gimp-help-en gnome-activity-journal gnome-clocks gnome-system-tools hamster-applet hedgewars hyphen-de hyphen-en-us ipython ipython3 kde-l10n-de kde-l10n-engb kdenlive krita language-pack-gnome-de language-pack-gnome-en ldap-utils libreoffice-help-de libreoffice-help-en-gb libreoffice-help-en-us libreoffice-l10n-en-za lm-sensors mesa-utils mypaint mythes-de mythes-de-ch mythes-en-au mythes-en-us nautilus-dropbox network-manager-openvpn ntp openoffice.org-hyphenation pingus pitivi postfix pylang python-matplotlib python-usb python-whiteboard simple-image-reducer smartmontools ssh stellarium subversion synaptic telegram texlive-lang-french texlive-lang-german texlive-lang-spanish texlive-science texmaker thunderbird thunderbird-locale-de thunderbird-locale-en-gb thunderbird-locale-en-us ubuntu-minimal ubuntu-restricted-extras ubuntu-standard unison unity-tweak-tool virtualbox wine xournal xpad
Epoptes und ubuntu-artwork werden von edubuntu-desktop empfohlen, doch stören in unserer Installation und werden daher entfernt:
# apt purge epoptes edubuntu-artwork # apt autoremove
postfix
Das paket postfix muss bei der Installation konfiguriert werden.
(Vom neuen Client soll Mail an die Nutzer des Kepler-Netzwerkes zu verschicken sein. Insbesondere soll Mail an root nicht auf dem lokalen Server stecken bleiben, sondern an den paedml weitergeschickt werden. Dazu muss ein MTA installiert werden, wir nutzen Postfix):
- "Satellitensystem" wählen
- System-Emailendung:
kg-fds.de - Relayhost:
paedml.kg-fds.de - Empfänger für Mails an
rootundpostmaster:root@kg-fds.de - Namen, für die dieser Rechner sich als Zielsystem betrachten soll:
kg-fds.deENTFERNEN! - alle anderen Einstellungen können unverändert übernommen werden.
- Testmails verschicken, an:
<nutzer><nutzer>@kg-fds.deroot
- Dalls nicht alle Optionen bei der Installation abgefragt werden, oder sie später noch einmal gesetzt werden sollen, ist das möglich mit
dpkg-reconfigure postfix.
TODO: Hinweis: in Xenial offenbar nicht mehr verfügbar: freemind, xfonts-mathml TODO: Fehlen noch: acroread, vstdrivers, xaralx
ev. zusätzliche Treiber aktivieren
Als linadmin einloggen und mit dem "Software&Repositories"-Tool möglicherweise verfügbare zusäztliche Treiber aktivieren.
manuell zu installierende Software
TODO: Xara Xtreme
Siehe #467, http://www.xaraxtreme.org/download.html
Dropbox-Daemon
Normalerweise lädt Dropbox beim ersten Start (oder durch den Aufruf dropbox start -i) den Dropbox-Daemon automatisch herunter, allerdings ins Homeverzeichnis des jeweiligen Nutzers (~/.dropbox-dist/). Da das 140MB sind, ist es besser, den Daemon systemweit zu installieren. Das geschieht z.B. so:
# mkdir /var/lib/dropbox/ # cd /var/lib/dropbox/ # wget -O - "https://www.dropbox.com/download?plat=lnx.x86_64" | tar --no-same-owner -xzf -
Ev. muss zuvor die http(s)-Umgebungsvariable mit Nutzer und Passwort gesetzt werden.
Das lädt den Daemon herunter und packt ihn in das Verzeichnis .dropbox-dist aus. Zu diesem Verzeichnis benötigt nun jeder Nutzer einen symbolischen Link in seinem Homeverzeichnis. Dieser wird über den Vorlagennutzer erzeugt, siehe Kapitel #VerzeichnisdesVorlagennutzerseinrichten.
FUNKTIONIERT DERZEIT NICHT: Google Earth
GE gibt es nicht in den Ubuntu-Paketquellen (logisch). Es gibt aber ein Paket, dass die Installationsdatei von Google herunterlädt und ein *.deb-Paket daraus baut:
# apt install googleearth-package
- Dann die
http_proxy-Variable setzen (am besten auf den Lehrerproxy) - Dann
make-googleearth-package --force --cleanupaufrufen. - Abhängigkeiten von Hand installieren und dann googleearth-Paket installieren:
# apt install lsb-core libfreeimage3 # dpkg -i <angegebener-Paketname>
TODO: zusätzliche Microsoft-Fonts
(siehe #1723)
DVD-Descrambler
Gebraucht wird das Paket libdvdcss, das aber aus Lizenzgründen nicht in den Ubuntuquellen sein kann. Es gibt aber ein Paket, das das eigentliche Paket nachlädt... (Siehe: https://wiki.ubuntuusers.de/DVD-Wiedergabe/).
# apt install libdvd-pkg # dpkg-reconfigure libdvd-pkg
Hinter der Firewall
Es hat nicht ausgereicht, die Shellvariablen $http_proxy, $https_proxy und $ftp_proxy zu setzen, da das configure-Skript offenbar einen neuen Loginprozess für root startet. Es war darüber hinaus noch nötig, die Shellvariablen in einem Makefile einzutragen (im oberen Bereich mit export http_proxy=...).
Makefile: /usr/share/libdvd-pkg/debian/rules
Skripte in /usr/local/sbin
# rmdir /usr/local/sbin/ # svn checkout svn+ssh://root@paedml/srv/svn/keplertools/scripts/trunk/ /usr/local/sbin/
LDAP-utils einrichten
Einige unserer Skripte fragen die LDAP-Datenbank auf dem paedml ab. Das zugehörige Paket ldap-utils muss ensprechend konfiguriert werden:
# emacs -nw /etc/ldap/ldap.conf
Einfügen:
BASE dc=kg-fds,dc=de URI ldaps://paedml/
- TODO
- auch:
bind_policy soft??
Test: Danach sollte der Befehl teachers die UIDs der Lehrer auflisten.
linuxmuster.net-Paket
- Hinweis
- Nach langen Sorgen mit der CIFS-Anbindung der Homeverzeichnisse haben wir uns im Frühjahr 2016 entschieden, das Christof-Image wmit einer von uns manuell eingerichteten NFS4-Anbindung zur Verfügung zu stellen. Wir verwenden daher derzeit nur das Paket
linuxmuster-client-authder Musterlösung. Die beiden anderen Pakete (und) werden daher bei unseren Clients nicht installiert.
Vorgehen wie auf https://www.linuxmuster.net/wiki/dokumentation:handbuch:clients:ubuntu.manualinstallation beschrieben.
client-auth-Paket
# apt install linuxmuster-client-auth
Alle Fragen beantworten, wie hier beschrieben: https://www.linuxmuster.net/wiki/dokumentation:handbuch:clients:linuxmuster-client-auth.
Sofern nicht bereits im letzten Schritt abgefragt, den LDAP-Server auf paedml einstellen:
# dpkg-reconfigure linuxmuster-client-auth
- LDAP-Server:
paedml - Suchbasis:
dc=kg-fds,dc=de
Der Name paedml wird im Lehrer- und Schülernetz passend aufgelöst.
Weiteres Anpassen der ldap.conf ist offenbar nicht mehr nötig (Defaultwert für timelimit steht auf 5s).
NICHT INSTALLIEREN (siehe oben): client-shares-Paket
# apt install linuxmuster-client-shares
- Problem
- Derzeit ist im postinst-Skript ein Fehler, siehe http://www.linuxmuster.net/flyspray/task/588.
- Wichtig
- Das Installationsskript trägt in der Datei
/etc/security/pam_mount.conf.xmldie Serveradresse als IP ein. Das können wir bei unserem Setup mit Schülernetz und Lehrernetz nicht gebrauchen. Daher ändern wir den Eintrag "10.32.1.1" ab in "paedml", der in beiden Netzen richtig aufgelöst wird:# sed -i "s/10.32.1.1/paedml/g" /etc/security/pam_mount.conf.xml
- Außerdem
- Die Linuxmusterleute haben den Namen für "Tausch_auf_Server" in "Tauschen_auf_Server" geändert. Bei uns zeigen die Bookmarks aber noch auf den alten Wert, also ändern wir zurück:
# sed -i "s/Tauschen_auf_Server/Tausch_auf_Server/" /etc/linuxmuster-client/shares/linkfoldername.conf
NICHT INSTALLIEREN (siehe oben): client-profile-Paket
# apt install linuxmuster-client-profile
- Wichtig
- Damit unsere derzeitige Konfiguration mit getrenntem linadmin/Vorlagennutzer und unsere angepassten Linkstruktur funktioniert, müssen einige Konfigurationsdateien angepasst werden. (Hinweis: kann sich mit der Zeit ändern. Überprüfen!)
Datei /etc/linuxmuster-client/profile/profile.conf anpassen:
- PROFILE_USER="vorlage"
- OWNDOCSFOLDER="."
- RSYNC_OPTIONS="--links"
Datei /etc/linuxmuster-client/profile/home-preference.conf anpassen:
- HOMEPREFERENCEFOLDERNAME="einstellungen"
Datei /etc/linuxmuster-client/profile/usersettings.conf überschreiben:
# cat > /etc/linuxmuster-client/profile/usersettings.conf <<EOF Schreibtisch:Schreibtisch Downloads:Downloads Vorlagen:Vorlagen Öffentlich:Öffentlich Dokumente:Dokumente Musik:Musik Bilder:Bilder Videos:Videos EOF
Datei /etc/linuxmuster-client/profile/usersettings-opt.conf überschreiben:
# cat > /etc/linuxmuster-client/profile/usersettings-opt.conf <<EOF #libreoffice:.config/libreoffice ## Do NOT use ALL:ALL while we still have shared profiles for firefox/thunderbir #ALL:ALL config:.config local:.local recentf:.recentf emacs.d:.emacs.d xournal:.xournal ssh:.ssh VirtualBox VMs:VirtualBox VMs VirtualBox:.VirtualBox gnupg:.gnupg bashrc:.bashrc gconf:.gconf dropbox:.dropbox Dropbox:Dropbox EOF
lokale Nutzer anlegen
Auf unseren Clients gibt es lokale Accounts, die wichtige Aufgaben erfüllen:
- kepler
- Passwort: "lokal", Name: "ohne Netzwerk anmelden"
- windows
- Passwort: (klar), Name: "Windows-Nutzer"
- vorlage
- (ENTFÄLLT BEI NFS-ANBINDUNG) Passwort: (klar), Name: "Vorlagennutzer fuer Linuxmusterclient"
# adduser kepler # adduser windows # (ENTFÄLLT BEI NFS-ANBINDUNG) adduser vorlage
(ENTFÄLLT BEI NFS-ANBINDUNG: Verzeichnis des Vorlagennutzers einrichten)
Damit unser Skeleton-Mechanismus richtig funktioniert, muss das Homeverzeichnis des Vorlagennutzers folgendes enthalten:
# su vorlage # cd # (VORSICHT) rm -r * # (VORSICHT) rm -r .* # ln -s /home/windows/Dokumente/ Infosys_Dateien # ln -s Home_auf_Server/__Scans __Scans # ln -s /var/lib/dropbox/.dropbox-dist # mkdir -p .mozilla/firefox .thunderbird # cat > .mozilla/firefox/profiles.ini <<EOF [General] StartWithLastProfile=1 [Profile0] Name=default IsRelative=1 Path=../../Home_auf_Server/einstellungen/firefox EOF # cat > .thunderbird/profiles.ini <<EOF [General] StartWithLastProfile=1 [Profile0] Name=default IsRelative=1 Path=../Home_auf_Server/einstellungen/thunderbird EOF # cat > README--ACHTUNG--Hier-keine-Dateien-speichern.txt <<EOF Achtung, Dateien, die in diesem Verzeichnis abgelegt werden, bleiben nicht dauerhaft erhalten! Nutzen Sie zum dauerhaften Abspeichern eins der Server-Verzeichnisse: ~/Home_auf_Server ~/Tausch_auf_Server ~/Dokumente ~/Bilder ~/Videos ~/Musik ~/Downloads ~/Schreibtisch EOF
LightDM konfigurieren
LightDM-Optionen setzen. Z.B. muss die Eingabe eines Benutzernamens erlaubt werden. Die Gast-Sitzung sollte deaktiviert sein. Hier kann auch die voreingestellte Sitzung gewählt werden:
# cat > /etc/lightdm/lightdm.conf.d/21-kepler-disable-greeter-hide-users.conf <<EOF ### kup: bei uns ist die Nutzerliste aktiv, da sonst unbedarfte Kollegen den ### Sperrbildschirm mit dem Login verwechseln und versehentlich ihr Passwort ### präsentieren. ### Der manuelle Login ist ebenfalls aktiviert. [SeatDefaults] greeter-hide-users=false greeter-show-manual-login=true EOF # cat > /etc/lightdm/lightdm.conf.d/50-kepler-seats.conf <<EOF [Seat:0] user-session=ubuntu autologin-user= [Seat:1] user-session=kepler-virtual-windows-infosys autologin-user=windows EOF
Kepler-Profil
Wir nutzen den Profil-Mechanismus von Gnome, um unserem Desktop das gewünschte Aussehen zu verleihen. Das Kepler-Schema ist möglichst wenig invasiv, baut also auf den Defaults der jeweils aktuellen Ubuntu-Version auf.
# cat > /usr/share/glib-2.0/schemas/96_kepler.gschema.override <<EOF
[org.gnome.desktop.background]
picture-uri='file:///usr/share/backgrounds/kepler_default.jpg'
[com.canonical.unity-greeter]
background = '/usr/share/backgrounds/kepler_default.jpg'
logo = '/usr/share/unity-greeter/kepler_logo.png'
[com.canonical.Unity.Launcher]
favorites = ['application://org.gnome.Nautilus.desktop', 'application://firefox-remote-check.desktop', 'application://thunderbird.desktop', 'application://libreoffice-writer.desktop', 'application://libreoffice-calc.desktop', 'application://libreoffice-impress.desktop', 'application://cheese.desktop', 'application://vlc.desktop', 'application://org.gnome.clocks.desktop', 'unity://expo-icon', 'unity://running-apps', 'unity://devices']
# make gnome-clocks start with timer window
[org.gnome.clocks.state.window]
panel-id='timer'
# Der Desktop-Switcher lässt sich leider von hier aus nicht anschalten, da er kein
# Schema besitzt. Das folgende schlägt also (leider) fehl:
# turn on the desktop switcher
[org.compiz.profiles.unity.plugins.core]
hsize = 2
vsize = 2
[com.ubuntu.update-notifier]
no-show-notifications=true
show-apport-crashes=false
### Das folgende scheint von irgendwo überschrieben zu werden -> herausfinden!
# set default keyboard layout from "de-nodeadkeys" to "de", see ticket:1217
[org.gnome.desktop.input-sources]
sources = [('xkb', 'de'), ('xkb', 'de+nodeadkeys')]
EOF
# glib-compile-schemas /usr/share/glib-2.0/schemas/
- TODO
- Herausfinden, von wo [org.gnome.desktop.input-sources] überschrieben wird (s.o) und warum das Aktivieren des Desktop switchers nicht funktioniert.
Hintergrundbild
Das Default-Hintergrundbild, das mit Edubuntu kommt, ist bei uns im Schülernetz und im Lehrernetz (per Linbo-Postsync) unterschiedlich verlinkt. Das jeweils aktuelle Bild ist unter den Links kepler_default_{schueler,lehrer} erreichbar:
# cd /usr/share/backgrounds # ln -s <aktuelles_Hintergrundbild_für_Schüler> kepler_default_schueler # ln -s <aktuelles_Hintergrundbild_für_Lehrer> kepler_default_lehrer
- Hinweis
- Wenn wir jetzt noch keine zwei Hintergrundbilder haben, nehmen wir vorerst mal den Ubuntu-Standard
warty-final-ubuntu.png.
Im Client-Image muss der Defaultlink auf `kepler_default_schueler" verweisen. (Im Lehrerimage wird es vom postsync-Skript passend abgeändert):
# cd /usr/share/backgrounds # ln -sf kepler_default_schueler edubuntu_default.png # ln -sf kepler_default_lehrer edubuntu_default.jpg
TODO: Kepler-Logo
in /usr/share/unity-greeter/kepler_logo.png
ENTFÄLLT? Vorgaben für Gnome-Settings (dconf) einrichten
User-Datenbank einrichten und erzeugen:
# cat > /etc/dconf/profile/user <<EOF user-db:user system-db:site EOF
# mkdir /etc/dconf/db/site.d
# cat > /etc/dconf/db/site.d/00_site_settings <<EOF
[com/ubuntu/update-notifier]
no-show-notifications=true
show-apport-crashes=false
[com/canonical/unity/launcher]
favorites=['application://nautilus.desktop','application://firefox.desktop','application://thunderbird.desktop','application://libreoffice-writer.desktop','application://libreoffice-calc.desktop','application://libreoffice-impress.desktop','application://cheese.desktop','application://vlc.desktop','application://gnome-clocks.desktop','unity://running-apps','unity://expo-icon']
# turn on the desktop switcher
[org/compiz/profiles/unity/plugins/core]
hsize=2
vsize=2
# set default keyboard layout from "de-nodeadkeys" to "de", see ticket:1217
[org/gnome/desktop/input-sources]
sources=[('xkb', 'de'), ('xkb', 'de+nodeadkeys')]
[org/gnome/clocks/state/window]
panel-id='timer'
EOF
# mkdir /etc/dconf/db/site.d/locks # cat > /etc/dconf/db/site.d/locks/00_site_locks <<EOF ###wozu?### /org/gnome/desktop/input-sources/sources EOF
# dconf update
Timeserver
Müsste bereits oben passiert sein: ntpd installieren (zuverlässiger als das mitgelieferte ntpdate, siehe man ntpdate)
# apt install ntp
In /etc/ntp.conf alle pool- und server-Zeilen auskommentieren, dann im Abschnitt "Specify one or more NTP servers" einfügen:
# Specify one or more NTP servers. server ntp.kg-fds.de
(Der Name ntp.kg-fds.de wird im Schüler- wie Lehrernetz zu einer geeigneten Adresse aufgelöst.)
dann
# service ntp restart
Cronskripte
globale Crontab
In /etc/crontab und /etc/anacrontab muss der Proxy eingetragen werden, damit der flashplugin-installer seine Datei herunterladen kann:
Im oberen Bereich von /etc/crontab und /etc/anacrontab:
# package flashplugin-installer needs to know the proxy: # note: put this into /etc/anacrontab, too, if anacron is installed http_proxy=http://proxysw:8080
Der name proxysw wird im Lehrer- und Schülernetz passend aufgelöst.
Nun die Einträge für unseren automatischen Logout (können hoffentlich irgendwann entfallen):
# cat >> /etc/crontab <<EOL # Cron jobs zum Ausloggen der Nutzer im Schülernetz (in der Mitte der Pausen): 15 09 * * * root schuelernetz && friendly-logout-users 05 11 * * * root schuelernetz && friendly-logout-users 55 12 * * * root schuelernetz && friendly-logout-users 40 15 * * * root schuelernetz && friendly-logout-users # Cron jobs zum Ausloggen der Nutzer im Lehrernetz (alle 20 Minuten): */20 * * * * root lehrernetz && friendly-logout-users # Cron jobs to shut down the machine: 20 17 * * * root friendly-shutdown 00 20 * * * root friendly-shutdown 00 23 * * * root friendly-shutdown 00 04 * * * root shutdown -P +10 EOL
(Kepler-spezifische Cronskripte)
(Derzeit stehen auf den LTSP-Servern keine Kepler-spezifischen Skripte in /etc/cron.{hourly,daily,weekly,monthly}.)
Devilspie
Wir benutzen devilspie, um das Logout-Fenster im Vordergrund zu halten. (Siehe #2131. Wenn der automatische Logout irgendwann entfallen kann, wird auch devilspie nicht mehr gebraucht.)
# mkdir /etc/devilspie2/
# cat > /etc/devilspie2/debug.lua <<EOF
-- the debug_print command does only print anything to stdout
-- if devilspie2 is run using the --debug option
debug_print("---------------------------------------------");
debug_print("Window Name: " .. get_window_name());
debug_print("Application name: " .. get_application_name());
debug_print("Window Type: " .. get_window_type());
debug_print("Window Role: " .. get_window_role());
debug_print("Window Class: " .. get_window_class());
EOF
# cat > /etc/devilspie2/logout-dialog.lua <<EOF
-- Keep logout dialog on top
if (get_window_class()=="Zenity" and get_window_name()=="Sicherheitsabfrage") then
make_always_on_top();
stick_window();
end
EOF
devilspie2 wird beim Einloggen in der Usersession der einzelnen Nutzer gestartet (weil es einen laufenden X-Server braucht):
# cat > /etc/xdg/autostart/devilspie2.desktop <<EOF [Desktop Entry] Type=Application Exec=devilspie2 --folder=/etc/devilspie2/ Hidden=false NoDisplay=false X-GNOME-Autostart-enabled=true Name[de_DE]=Devilspie2 Name=Devilspie2 Comment[de_DE]= Comment=Perform scripted actions on windows as they are created EOF
SMART
Vorgehen wie unter AdminSmart beschrieben.
Drucker einrichten
Die Drucker werden über den CUPS des paedml zur Verfügung gestellt. Auf dem paedml ist das "printer-sharing" aktiviert, so dass die LtspServer die verfügbaren Drucker selbst entdecken. Dabei sollen sie nur die Drucker anzeigen, die vom paedml veröffentlicht werden. Sonst erscheinen auch Drucker, die an Rechnern irgendwo im Netzwerk eingerichtet sind -- z.B. an der TGS oder am Laptop von Kollegen ("Drucker-Waschküche").
In /etc/cups/cups-browsed.conf in der Sektion "Only browse remote printers from selected servers" einfügen:
BrowseAllow 10.32.1.1 BrowseAllow 10.16.112.4
- TODO
- Auf dem alten Client steht der Eintrag
BrowseRemoteProtocols cups(stattBrowseRemoteProtocols dnssd cups. Nötig?
Kepler-Logos
Für unsere Briefpapiervorlage und andere Zwecke sollen die Kepler-Logos unter /usr/local/include liegen. Das Verzeichnis kann vom paedml kopiert werden:
# rsync -av paedml:/usr/local/include /usr/local/
- Test
- Danach sollte die LaTeX-Briefvorlage, die man per Rechtsklick auf dem Desktop erreicht, kompilieren.
Apport deaktivieren
Unsere Nutzer sollen keine Aufforderungen sehen, Fehlerreports zu schicken (denn sie haben ohnehin keine Rechte dafür):
# emacs -nw /etc/default/apport
- Ändern:
enabled=0
Soll apport später manuell einmalig gestartet werden, so geht das mit sudo service apport start force_start=1.
Epoptes-Integration
Mit Epoptes können die Schülerbildschirme kontrolliert werden. Epoptes benötigt einen netzwerkweiten Server, bei dem sich alle Clients anmelden. Von dort aus könnendaraufhin die angemeldeten Clients verwaltet werden. Unser derzeitiges Setup verwendet ltsp6 als "Ausgezeichneten Epoptes-Server"
Client konfigurieren
Das Paket edubuntu-desktop empfiehlt das Paket epoptes, so dass dieses auf unserem derzeitigen Client installiert sein dürfte. Wir benötigen es aber nicht (der Epoptes-Server läuft ja auf ltsp6). Darüber hinaus hat der Epoptes-Client die eigenwillige Eigenschaft, nicht zu starten, wenn auf dem selben Rechner auch der Server installiert ist. Über den Sinn kann man streiten, ist aber so. Also:
# apt purge epoptes
Alle Clients sollen eine Verbindung mit dem Epoptes-Daemon auf ltsp6 herstellen. Hierzu ist ein Eintrag in /etc/default/epoptes nötig.
- Hinweis
- Damit sich auch die Rechner im Lehrernetz mit dem ltsp6 verbinden können, wurd hierfür eine spezielle Route eingerichtet.
Also:
# emacs -nw /etc/default/epoptes-client
folgende Zeile einfügen:
SERVER=ltsp6
Dann müssen die ssh-Zertifikate, die Epoptes für die SSH-Verbindung verwendet, vom Server kopiert werden. Das geschieht mittels:
# epoptes-client -c
Output überprüfen, es sollte bestätigt werden, dass das Zertifikat von ltsp6 geholt wird.
pam_group aktivieren
Für die Benutzung der Bildschirmüberwachung müssen die Lehrer in der Gruppe epoptes sein. Das geht mit dem pam_group-Mechanismus, der den User beim Login in die angegebenen Gruppen zuweist.
- Eintrag in /etc/security/group.conf:
*;*;%teachers;Al0000-2400;epoptes
- dann:
# pam-auth-update # service nscd restart
Damit werden beim Login über das pam_group-Modul die fehlenden Gruppenzugehörigkeiten ergänzt - jetzt können alle Lehrer (nicht aber Schüler) Epoptes benutzen.
Passwortloser Zugang zum ltsp6
Da sich alle Clients auf dem Epoptes-Server ltsp6 registrieren, muss das Epoptes-Programm auch dort gestartet werden, um die Clients zu verwalten (wäre schön, wenn das auch remote ginge, das wird aber nicht unterstützt).
Hierfür ist auf dem ltsp6 ein nicht-priviligierter User namens "epoptes" eingerichtet. Dieser kann sich mit seinem SSH-Schlüssel passwortlos auf dem ltsp6 einloggen. Unsere Nutzer nutzen diesen Weg, um das Epoptes-Programm auf dem ltsp6 zu starten.
Damit der passwortlose Zugang zum ltsp6 als epoptes funktioniert muss die /etc/ssh/ssh_config angepasst werden (anfügen am Ende):
# cat >> /etc/ssh/ssh_config <<EOF # passwortloser Zugang zum Epoptes-Server Host epoptes_server Hostname ltsp6 User epoptes IdentityFile /etc/ssl/certs/epoptes_key ForwardX11 yes StrictHostKeyChecking no EOF
Der (private) Schlüssel des Nutzers epoptes muss dem SSH-Server als Zertifikat bekannt sein. Der Schlüssel kann vom ltsp6 kopiert werden:
# rsync -a ltsp6:/etc/ssl/certs/epoptes_key /etc/ssl/certs/
Außerdem sollte der Host-Key von ltsp6 bekannt sein, damit er nicht in die known_hosts jedes Nutzers eingetragen wird (was später Probleme verursachen kann, wenn sich der Schlüssel mal ändern sollte):
# echo -n "ltsp6,10.32.2.6 " >> /etc/ssh/ssh_known_hosts # ssh >> /etc/ssh/ssh_known_hosts ltsp6 cat /etc/ssh/ssh_host_ecdsa_key.pub
Test: Nichtpriviligierter Nutzer werden (z.B. lehrer), dann sollte ssh epoptes_server ohne Passwort funktionieren.
Starter anpassen
Die Clients melden sich beim Login eines Schülers am epoptes-Server (ltsp6) an. Damit nicht Kollegen ebenfalls überwacht werden können, muss der epoptes-Starter angepasst werden.
In /etc/xdg/autostart/epoptes-client.desktop:
[Desktop Entry] ... #Exec=/usr/sbin/epoptes-client Exec=/usr/local/sbin/kepler--epoptes-client-starter ...
Für die Kollegen gibt es die Möglichkeit, die Fernwartung per epoptes trotzdem einzuschalten.
Neue Datei /usr/share/applications/epoptes-client.desktop: (Aufruf: Fernwartung):
# cat > /usr/share/applications/epoptes-client.desktop <<EOF [Desktop Entry] Name=Überwachung meines Bildschirms erlauben Comment=Ermöglicht für die Dauer dieser Sitzung, dass Administratoren (und andere Lehrer) Ihren Bildschirminhalt sehen und ihren Rechner steuern können. Damit können die Administratoren Sie bei der Verwendung des Rechners unterstützen. Exec=bash -c "zenity --question --title 'Fernüberwachung erlauben' --text 'Erlauben Sie, dass andere Lehrer und die Administratoren Ihren Bildschirminhalt sehen und Ihren Rechner steuern können?\n(Diese Entscheidung gilt nur für die laufende Sitzung und wird mit Ihrem Logout wieder aufgehoben.)' && /usr/sbin/epoptes-client" Icon=epoptes Terminal=false Type=Application Categories=Network;Settings;Utility;RemoteAccess;DesktopSettings;Security;Accessibility; EOF
Die Kollegen können auch Schülerdesktops überwachen.
Neue Datei /usr/share/applications/epoptes-app-starter.desktop (Aufruf: Bildschirme der Schüler anzeigen`):
# cat > /usr/share/applications/epoptes-app-starter.desktop <<EOF [Desktop Entry] Name=Bildschirme der Schüler anzeigen Comment=Die Lab-Management-Software Epoptes erlaubt es, den eingeloggten Schülern auf den Bildschirm zu sehen und ihre Rechner zu steuern. Exec=/usr/local/sbin/kepler--epoptes-app-starter Icon=epoptes Terminal=false Type=Application Categories=Education;Network;Utility;Monitor;RemoteAccess; EOF
Die obigen Starter referenzieren das epoptes-Icon, das wurde aber zusammen mit dem epoptes-Paket deinstalliert. Wir können es vom ltsp6 kopieren:
# scp ltsp6:/usr/share/icons/hicolor/scalable/apps/epoptes.svg /usr/share/icons/hicolor/scalable/apps/ # gtk-update-icon-cache /usr/share/icons/hicolor
Virtualbox konfigurieren
Wir stellen derzeit zwei Virtualbox-Umgebungen zur Verfügung, eine für die TI-Emulation, eine zweite für ein allgemeines XP/InfoSys (nur im Lehrernetz).
Die Maschinen sind für alle Lehrer eingerichtet, die virtuellen Festplatten (vdi-Files) liegen aus Effizienzgründen aber lokal auf den Linuxmusterclients, und zwar in /dev/sda2, gemountet unter /usr/share/virtualbox-vdi/.
Man erhält sie durch syncen der Partition 2 über Linbo.
(Alternativ können sie von einem (geeigneten, d.h. mit gleicher Prozessorarchitektur) LtspServer kopiert werden:
# rsync -a <ltspserver>:/usr/share/virtualbox-vdi /usr/share/
)
- Erklärung
- Damit die Kollegen InfoSys und TINSpire schnell benutzen können, liegen unter /sr/share/virtualbox Speicherabbilder, so dass die VM innerhalb weniger Sekunden startet. Diese Abbilder müssen von einem Server mit der selben Prozessorarchitektur stammen. Eventuell müssen sie neu erzeugt werden, siehe AdminVirtualBox#SpeicherabbildderVirtuellenMaschineerzeugen.
Die Starter von /usr/share/virtualbox-vdi/ müssen nach /usr/share/applications/ verlinkt werden:
# ln -s /usr/share/virtualbox-vdi/{TINSpire,XP}.desktop /usr/share/applications/
Windows-Sitzung für Infosys einrichten
Neue Datei /usr/share/xsessions/kepler-virtual-windows.desktop:
# cat > /usr/share/xsessions/kepler-virtual-windows.desktop <<EOF [Desktop Entry] Name=Virtuelles Windows Comment=Diese sitzung loggt Sie in ein virtuelles Windows XP ein Exec=virtualbox --startvm XP --fullscreen TryExec= #hide this session Icon= Type=Application EOF
Neue Datei /usr/share/xsessions/kepler-virtual-windows-infosys.desktop:
# cat > /usr/share/xsessions/kepler-virtual-windows-infosys.desktop <<EOF [Desktop Entry] Name=Virtuelles Infosys Comment=Diese sitzung loggt Sie in ein virtuelles Windows XP ein und startet Infosys Exec=/usr/share/virtualbox-vdi/infosys-session TryExec= #hide this session Icon= Type=Application EOF
Damit der Dateiaustausch mit InfoSys funktioniert, muss der Ordner /home/windows/Dokumente existieren:
# su windows # cd # mkdir Dokumente # exit
Darin liegt eine Informationsdatei:
# su windows # cat > /home/windows/Dokumente/README--Dateiaustausch-mit-Infosys.txt <<EOF Dieses Verzeichnis dient dem Dateiaustausch mit Infosys. Export von Infosys: - Dateien, die von Infosys aus exportiert werden (z.B. Klassenlisten), erscheinen unter Ubuntu in diesem Verzeichnis. Import nach Infosys: - Dateien, die unter Ubuntu hier abgelegt werden (z.B. Notenlisten zum Import), sind von Infosys aus sichtbar. Hinweise (bitte beachten): - Die Dateiübergabe funktioniert nur lokal am selben Rechner. - Alle Nutzer an diesem Rechner sehen das selbe Verzeichnis, können also die Dateien lesen, die von anderen Nutzern hier erzeugt wurden. EOF
Firefox-Killer-Dienst
Firefox hat nach wie vor die schlechte Eigenschaft, sich nur einmal pro Nutzer statren zu lassen. Es legt ein Lockfile an, das einen zweiten Start verhindert -- auch über Rechnergrenzen hinweg.
In unserem Skript-Verzeichnis (ausgecheckt nach /usr/local/sbin/ und damit im Ausführungspfad) befindet sich das Skript ffkiller. Es soll beim Login des Nutzers gestartet werden und prüft alle drei Sekunden, ob die Datei ~/.killfirefox existiert. Ist das der Fall und es gibt einen lokalen Firefox-Prozess, so beendet es diesen und löscht die Datei. Ansonsten tut es nichts weiter.
Dieses Skript dient dazu, Firefox-Prozesse, die der Nutzer auf entfernten Rechnern hat laufen lassen, zu beenden. Es arbeitet zusammen mit einem angepassten Startskript firefox-remote-check (ebenfalls im Skript-Verzeichnis), das nach dem Lockfile sucht und dem Nutzer bei bedarf anbietet, einen entfernten Firefox-Prozess zu beenden, bevor es den Firefox lokal startet. Es legt dazu die Datei ~/.killfirefox an an und wartet darauf, dass der ffkiller auf dem entfernten Rechner den Prozess beendet.
Neue Datei /etc/xdg/autostart/ffkiller.desktop:
# cat > /etc/xdg/autostart/ffkiller.desktop <<EOF [Desktop Entry] Type=Application Exec=ffkiller Hidden=false NoDisplay=false X-GNOME-Autostart-enabled=true Name[de_DE]=Firefox-Killer-Dienst Name=Firefox-Killer-Dienst Comment[de_DE]=Dienst, der nach der Datei ~/.killfirefox sucht und bei Bedarf den lokalen Firefox-Prozess des Nutzers beendet. Comment=Dienst, der nach der Datei ~/.killfirefox sucht und bei Bedarf den lokalen Firefox-Prozess des Nutzers beendet. EOF
Neue Datei /usr/share/applications/firefox-remote-check.desktop:
# cat > /usr/share/applications/firefox-remote-check.desktop <<EOF [Desktop Entry] Version=1.0 Name=Firefox Web Browser (remote check) Comment=Browse the World Wide Web Comment[de]=Im Internet surfen GenericName=Web Browser Keywords=Internet;WWW;Browser;Web;Explorer Keywords[de]=Internet;WWW;Browser;Web;Explorer;Webseite;Site;surfen;online;browsen Exec=firefox-remote-check %u Terminal=false X-MultipleArgs=false Type=Application Icon=firefox Categories=GNOME;GTK;Network;WebBrowser; MimeType=text/html;text/xml;application/xhtml+xml;application/xml;application/rss+xml;application/rdf+xml;image/gif;image/jpeg;image/png;x-sch\ eme-handler/http;x-scheme-handler/https;x-scheme-handler/ftp;x-scheme-handler/chrome;video/webm;application/x-xpinstall; StartupNotify=true Actions=NewWindow;NewPrivateWindow; [Desktop Action NewWindow] Name=Open a New Window Name[de]=Ein neues Fenster öffnen Exec=firefox-remote-check -new-window OnlyShowIn=Unity; [Desktop Action NewPrivateWindow] Name=Open a New Private Window Name[de]=Ein neues privates Fenster öffnen Exec=firefox-remote-check -private-window OnlyShowIn=Unity; EOF
ERGÄNZEN: Inzwischen gibt es analog dazu auch das Skript thunderbird-remote-check mit zugehörigem desktop-file.
Logind anpassen
Seit einigen Ubuntu-Versionen nutzt Ubuntu systemd zum Managen der Daemon-Prozesse. Damit kommt auch der Login-Daemon logind. Dieser managed die User-Logins und -Sitzungen.
Unser eben eingerichteter ffkiller-Prozess wird beim Login des Nutzers automatisch gestartet, beim beenden der Sitzung aber nicht wieder beendet! Der logind kann aber dafür sorgen, dass beim Beenden der Nutzersitzung alle noch laufenden Prozesse des Nutzers beendet werden. Hierzu:
# mkdir /etc/systemd/logind.conf.d/ # cat > /etc/systemd/logind.conf.d/50-kepler--killuserprocesses.conf <<EOF # We want all user processes killed when user exits her last session. # See ticket:2342 [Login] KillUserProcesses=yes EOF
Siehe auch man logind.conf.
ab hier unbearbeitet
Die Inhalte dieser Wiki-Seite erscheinen, (wo anwendbar und nicht anderweitig angegeben), unter einer Creative-Commons-Lizenz CC BY NC SA 3.0 Germany. Urheber: Dr. Rüdiger Kupper, Kepler-Gymnasium Freudenstadt.