Laufwerke und Zugriffsberechtigungen
Normalerweise reichen die per Standard vorhandenen und mit Freigaben verbundenen Laufwerksbuchstaben H:
, T:
und P:
aus, um alles zu realisieren, was es an Anforderungen und Konstellationen an Schulen gibt. Der Container logosrv fungiert hierbei als Dateiserver. Von einem Client aus kann ein angemeldeter Benutzer anschließend, je nach Berechtigung, auf diese Freigaben per Dateiexplorer zugreifen und Dateien ablegen, bearbeiten und löschen.
Freigabebuchstabe | Freigabename | Beschreibung | Rechte |
---|---|---|---|
H: | Home | persönliche Dateiablage eines Benutzers | Vollzugriff des Benutzers |
T: | Tausch | Schulweiter Austausch von Dateien und Klassentausch | Nur Besitzer hat Vollzugriff, Rest nur Leserechte |
P: | Programme | Ablage für serverbasierte Software-und Programmdateien | Lesen, Ausführen |
Eine gewöhnliche Anmeldung an einer Arbeitsstation läuft im Hintwegrund nach dem folgenden Schema ab:
DC1: logon.bat (/data/samba/state/sysvol/ad.shortname.logodidact.net/scripts/)
-> logosrv: logon.bat (/home/samba/netlogon/)
-> (optional) Abarbeitung custom-Skripte
Zusätzliche Freigabe definieren
Unter Umständen kann es erforderlich sein eine zusätzliche Netzwerkfreigabe seitens des LogoDIDACT-Servers bereitzustellen, beispielsweise falls es sich um sensible Daten handelt, auf die nur ein spezfizierter Personenkreis Zugriff erhalten soll.
Allgemeine Freigabe
Hier wird nachfolgend ein zusätzliches allgemeines Netzlaufwerk für jeden Benutzer bereitgestellt.
Zunächst im Konfigurationsverzeichnis des samba eine zusätzliche Custom-Datei anlegen. Falls die Datei schon exisitiert können Einträge einfach ergänzt werden.
logosrv | |
---|---|
smb.conf.custom | |
---|---|
Danach einen leeren Ordner am Server erstellen, der dem Wert aus der Option path
entspricht. Zur Übernahme muss einmal der samba-Dienst neu gestartet werden.
Der abschließende Schritt besteht darin festzulegen, dass über ein Anmeldeskript (Batchdatei) am Schul-PC die Freigabe mit dem Laufwerksbuchstaben automatisch verbunden wird. Das geschieht über einen Eintrag in der Datei /home/samba/netlogon/settings.bat
.
logosrv | |
---|---|
Soll der Buchstabe nur für bestimmte Benutzergruppen verbunden werden, kann das über eine rollenbezogene Anmeldung erfolgen. Bei der Anmeldung wird geprüft, ob es eigene Anmeldeskripte gibt und diese zusätzlich aufgerufen. Der Ablauf ist hierbei wie folgt:
-
Gibt es
\\server\netlogon\role_%ROLE%.bat
, wird dieses ausgeführt.%ROLE%
ist hierbei die Benutzerrolle, also student, teacher, course oder admin. -
Gibt es
\\server\netlogon\group_%GROUP%.bat
, wird dieses ausgeführt. Für%GROUP%
werden hierbei nacheinander alle Gruppen eingesetzt, in denen der Benutzer Mitglied ist. -
Gibt es
\\server\netlogon\user_%USER%.bat
, wird dieses ausgeführt.%USER%
ist hierbei der Benutzername des angemeldeten Benutzers.
Info
Weiterführend Informationen zur Abarbeitung von Anmeldeskripten liegen unter \\server\netlogon\INFO.txt
Gruppenbezogene Freigabe
Hier wird nachfolgend eine zusätzliche Freigabe namens Verwaltung mit dem Laufwerksbuchstaben V:
konfiguriert. Auf die Freigabe haben nur bestimmte Gruppen Zugriff.
Alle Konfigurationen finden im Container logosrv statt.
Zunächst im Konfigurationsverzeichnis des samba eine zusätzliche Custom-Datei anlegen. Falls die Datei schon exisitiert können Einträge einfach ergänzt werden.
logosrv | |
---|---|
Nun die Freigabe verwaltung definieren. In die eckigen Klammern kommt der Freigabename. Ebenso wichtig wie der Name sind weitere Angaben wie der Freigabepfad path
und die Berechtigungen von Benutzern/Gruppen auf diesen Ordner. Im Beispiel wären das die Gruppen verwaltung-schreiben
und verwaltung-lesen
.
Tipp
Das $-Zeichen am Ende des Namens bewirkt, dass es sich um eine versteckte SMB-Freigabe handelt.
Warnung
Der Parameter invalid users
muss je nach Anforderung an die eigenen Bedürfnisse angepasst werden. Dort aufgeführte Benutzer oder Gruppen erhalten keinerlei Zugriff auf die Freigabe.
Danach einen leeren Ordner am Server erstellen, der dem Wert aus der Option path
entspricht. Zur Übernahme muss einmal der samba-Dienst neu gestartet werden.
conf-Share mit Server-Konfigurationsdateien im logosrv aktivieren
Seit Puppet-Version 1.4.0 ist das versteckte SMB-Share \\files\conf$
aus dem LXC-Container logosrv standardmäßig deaktiviert.
Diese Freigabe stellt eine Möglichkeit dar, um gewisse Konfigurationsdateien (wie z.B. die internet.conf für die Firewall-Einstellungen) in einer Netzwerkwerkfreigabe dem admin zugänglich zu machen, ohne SSH-Zugang zum Server. Damit lässt sich die Anforderung abdecken, einen Teil der Einstellungen den IT-Betreuern freizuschalten, ohne das root-Kennwort zum Server hierfür herauszugeben.
Um die Freigabe per Puppet-Einstellung zu aktivieren, mussfolgende Konfigurationsdatei um den untenstehenden Inhalt ergänzt werden:
puppeteer-g3 | |
---|---|
ldhost.yaml | |
---|---|
Zugriffsberechtigung ACLs in LogoDIDACT
Der LogoDIDACT Server unterstützt so genannte ACLs, d.h. Zugriffsberechtigungen, die auf Ordner- und Dateiebene sehr detailliert für Gruppen und Benutzer einstellbar sind. Diese Berechtigungen können grundsätzlich auch von einem Windows-Client aus auf Ordner am Server angepasst werden. Bitte bedenken Sie aber, dass es aus Gründen der Systemstabilität am Server bestimmte Ordner und dafür festgelegte Dateiberechtigungen gibt, die zwangsweise so belassen werden müssen.
Weiterhin gibt es Skripte dafür, die in einem Fehlerfall die Berechtigungen wieder korrekt zurücksetzen. Der Befehl in einer Shell im Container logosrv lautet dafür repair_permissions
und kann gezielt für bestimmte Ordner ausgeführt werden. Wenn man repair_permissions
ohne Argument angibt, erhält man eine Auflistung aller unterstützten Optionen. Die Standard-ACLs orientieren sich dabei an einer Vorlagen-Datei unter /etc/logodidact/service.conf
. In dieser sind für die gängigen Freigabe-Ordner alle Rechte grundlegend vordefiniert.
Datei und Verzeichnisrechte am Server prüfen
Bevor man die Rechte an Dateien und Ordnern ändert, sollte man sich diese am Server zunächst anschauen. Damit kann man dann konkret sowohl an Ordnern als auch an Dateien prüfen, ob sich die Rechte auch tatsächlich geändert haben. In Linux gibt es dazu den Befehl getfacl
, mit dem sich die ACL, also die Zugriffsrechte auslesen und anzeigen lassen.
Als Beispiel, wechseln Sie dazu am Server in den Lehrertauschordner und erstellen dort einen Unterordner Namens TEST. Mit dem Befehl getfacl TEST
lesen Sie die Berechtigungen an diesem Unterordner aus und erhalten in etwa folgende Ausgabe:
Ohne auf jedes Detail einzugehen, ist im unteren Bereich an den Kürzeln rwx
(r für read, w für write, x für execute) erkennbar, dass nur verschiedene administrative Gruppen schreibenden Zugriff (Flag w) auf neu erstellte Dateien und Ordner haben. Ebenfalls hat es jeder Benutzer (user::rwx) und Gruppe für genau diejenigen Dateien und Ordner, die er dort selbst angelegt hat. Das ist genau die Standardeinstellung, welche man von einem Tauschordner erwartet.
Ausgabe | |
---|---|
Vollzugriff auf Lehrer-Tausch
Per Standard haben die Lehrer im Lehrertauschlaufwerk nur lesenden Zugriff auf Dateien und Ordner
anderer Kollegen und Vollzugriff auf selbst erstellte Dateien und Ordner. Soll das geändert werden,
editieren Sie die entsprechende Stelle in /etc/logodidact/service.conf
.
Vollzugriff für alle Lehrer auf Dateien und Ordner im Lehrer-Tausch:
service.conf
Warnung
Damit die Berechtigungen an bereits bestehenden Ordnern und Dateien verändert werden, muss noch ein repair_permissions --tausch
ausgeführt werden. Damit neu erzeugte Dateien und Ordner die richtigen Rechte erhalten, muss auch der ldserver neu gestartet werden: /etc/init.d/ldserver restart
Zugriff für Lehrer auf Schüler Homelaufwerke
Per Standard hat in LogoDIDACT ein Lehrer KEINEN Zugriff auf die Homeverzeichnisse der Schüler. Abhängig von der Schulart bzw. dem Schultyp und damit auch dem Alter der Benutzer, erscheint Ihnen diese Voreinstellung logisch und richtig oder vollkommen unsinnig und nicht praktikabel.
Schüler an beruflichen Einrichtungen, die schon volljährig sind, haben ein Recht darauf, dass ihre Dateien und Daten nicht ohne Weiteres eingesehen oder gar verändert oder gelöscht werden können. Denken Sie an die Situation, dass ein elektronisches Dokument vom Lehrer bewertet wird und ein Schüler behauptet, dass das Dokument von einem Lehrer verändert und manipuliert wurde. Ebenso ist es einleuchtend, dass es bei Schülern im Grundschulalter einen anderen Maßstab für den Umgang mit Dateien geben kann.
Aus rechtlicher Sicht gibt es also verschiedene Positionen zu dem Thema, WER auf WESSEN Daten WIE zugreifen darf und im Normalfall sollte das an jeder Schule durch eine entsprechende Nutzungsordnung vor der Nutzung einmalig schriftlich geregelt werden. Ungeachtet dieser unterschiedlichen Ansichten ist jedoch klar, dass man diese verschiedenen Einstellungen in LogoDIDACT anpassen kann.
Lesender Zugriff der Lehrer auf Schüler-Homes
Die Freigabe classes$
ist in /etc/samba/smb.conf.shares
vordefiniert und muss lediglich über die Datei /home/samba/netlogon/settings.bat
zugeordnet werden
Beispiele finden Sie auch in der Datei example_settings.bat
. Kopieren Sie die Datei example_settings.bat
nach settings.bat
mit dem Befehl cp example_settings.bat settings.bat
.
Ändern Sie dann den Eintrag Eintrag folgendermaßen ab:
settings.bat
set EXTRA_SHARES=Q: wpgm
set EXTRA_SHARES=S: classes$
Vollzugriff der Lehrer auf Schüler-Homes
Auch beim Vollzugriff, muss das vordefinierte Share wie zuvor beschrieben wieder über die settings.bat
eingebunden werden.
Die Berechtigungen auf dieses Share sind definiert in /etc/samba/smb.conf.shares
. Sie sollten die Berechtigungen aber NICHT direkt in dieser Datei abändern, da sie bei einem ldupdate
überschrieben wird. Jedes Share besitzt aber eine Include-Anweisung mit konkreten Angaben zu einer benutzerdefinierten Datei:
smb.conf.shares | |
---|---|
Erstellen Sie also die entsprechende Include-Datei und tragen Sie die beiden Parameter, die „überschrieben“ werden müssen, dort ein:
Die Gruppe der Lehrer hat somit die Rechte der admin users und schreibenden Zugriff, d.h. man kann Dateien erstellen und löschen.
Vollzugriff aller Benutzer auf Schulweiter Tausch
Im Bereich Schulweiter Tausch haben sowohl Lehrer als auch Schüler per Standardeinstellung nur
lesenden Zugriff auf Dateien und Ordner anderer Benutzer und Vollzugriff auf die selbst erstellten Dateien und Ordner. Möchten Sie das anpassen, editieren Sie die entsprechende Stelle in der bereits erwähnten service.conf
.
service.conf
Entscheidend bei dieser Anpassung ist nur das so genannte Sticky Bit, d.h. die Änderung des Parameters GlobalSwapMode 01777
auf GlobalSwapMode 00777
.
Vollzugriff auf Klassen-Tauschlaufwerke
service.conf
Klassentauschlaufwerke deaktivieren
Die Klassentauschlaufwerke lassen sich in der service.conf
ebenfalls deaktivieren:
Tauschlaufwerke zyklisch löschen
Der eigentliche Grundgedanke eines Tauschlaufwerkes ist derjenige, dass Dokumente dort wirklich nur temporär eben für den Zweck des Austausches zwischengespeichert werden. Oftmals wird diese Funktion aber „missbraucht“ und das Tauschlaufwerk wird immer voller und mutiert zur zentralen Datenablage.
Ein weiteres Problem der Tauschlaufwerke besteht darin, dass die dort abgelegten Dateien die Quota des Benutzers, der sie ablegt, belasten. Ein Benutzer, der dort also viele Dateien ablegt und in seinem Homelaufwerk hingegen nur wenig speichert, kann trotzdem die Meldung erhalten, dass seine Quota erschöpft ist, was ihm in aller Regel vollkommen unerklärlich erscheinen wird. Es gibt derzeit noch keine Ansicht für den Endbenutzer, um festzustellen, wo überall Dateien liegen (außerhalb seines Homeverzeichnisses), die seiner Quota zugerechnet werden.
In der service.conf
im Abschnitt Usermanagement können folgende Parameter gesetzt werden:
Parameter | Wert | Beschreibung |
---|---|---|
ArchiveSwapMaxAge | 14d | Entfernte Dateien zur Sicherheit für X Tage (hier 14) archivieren |
GlobalSwapPrune | 1h | Dateien älter als 1 Stunde aus dem globalen Tausch entfernen, also praktisch alle Dateien. |
TeachersSwapPrune | x in d/h/w/y | Dateien im Lehrertauschlaufwerk löschen. Ist der Wert nicht gesetzt bzw. leer oder hat einen Wert < 60 Sekunden, dann wird das Verzeichnis NICHT gesäubert. |
ClassesSwapPrune | 4d | Klassentauschdateien älter als 4 Tage entfernen. |
CoursesSwapPrune | 7w | Dateien älter als 7 Wochen in Kurstauschordnern löschen. |
ProjectsSwapPrune | 1y | Dateien älter als 1 Jahr in Projekttauschordnern löschen. |
Die Parameter sollten aus optischen Gründen und zur einfacheren Erkennung am besten unter dem jeweiligen Abschnitt gesetzt werden, innerhalb dessen auch die Rechte und Berechtigungen geregelt werden.
Hier ein Beispielauszug aus der service.conf
, wobei die markierten Einträge per Standard NICHT
enthalten sind:
Die Reinigung findet automatisch nachts über /usr/lib/logodidact/nightly/prune
automatisch statt.
Man kann das ganze auch manuell anstoßen mit dem nachfolgenden Befehl:
Anpassung der Dateigröße beim Austeilen
Wenn die Dateigröße beim Austeilen über die LogoDIDACT-Console angepasst werden muss, dann können Sie dies über die folgenden beiden Werte umsetzten.