Benutzerverwaltung: Unterschied zwischen den Versionen

Aus CEPHALIX/CRANIX
 
(13 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
 
==Standardbenutzer==
 
==Standardbenutzer==
Während der Installation vom CRANIX werden mehrere Benutzer angelegt, die zur verschieden Funktionen des Servers notwendig sind:
+
Während der Installation vom CRANIX werden mehrere Benutzer angelegt, die für verschiedene Funktionen des Servers notwendig sind:
  
 
{|class="wikitable" style="text-align: left;"
 
{|class="wikitable" style="text-align: left;"
Zeile 17: Zeile 17:
 
| ossreader || internal || Domain User || Ausführung automatischer Arbeiten, welche nur lesende Rechte benötigen. || Passwort ist '''ossreader''' und darf nicht geändert werden.
 
| ossreader || internal || Domain User || Ausführung automatischer Arbeiten, welche nur lesende Rechte benötigen. || Passwort ist '''ossreader''' und darf nicht geändert werden.
 
|-
 
|-
| cephalix || internal || Domain Administrator || Verwaltung des Servers vom CEPHALIX-Server aus. || Der CEPHALIX-Server greift über diesen Benutzer auf den Server zu. Alle Objekten (Benutzer, Gruppen, Softwares ...) die vom '''cephalix''' erstellt werden, können nur vom dem CEPHALIX Server aus verwaltet werden. Auch der Benutzer '''Administrator''' hat keinen Zugriff auf diese Objekte.
+
| cephalix || internal || Domain Administrator || Verwaltung des Servers vom CEPHALIX-Server aus. || Der CEPHALIX-Server greift über diesen Benutzer auf den Server zu. Alle Objekte (Benutzer, Gruppen, Softwares ...), die vom '''cephalix''' erstellt werden, können nur vom dem CEPHALIX Server aus verwaltet werden. Auch der Benutzer '''Administrator''' hat keinen Zugriff auf diese Objekte.
 
|-
 
|-
 
| tteachers || teachers || Domain User, templates || Templatebenutzer für die Lehrer. || Beim Anlegen eines Lehrers wird sein Homeverzeichnis in das Homeverzeichnis des neuen Benutzers kopiert.
 
| tteachers || teachers || Domain User, templates || Templatebenutzer für die Lehrer. || Beim Anlegen eines Lehrers wird sein Homeverzeichnis in das Homeverzeichnis des neuen Benutzers kopiert.
Zeile 25: Zeile 25:
 
| tadministration || administration || Domain User, templates || Templatebenutzer für die Verwaltung. || Beim Anlegen eines Benutzers für die Verwaltung wird sein Homeverzeichnis in das Homeverzeichnis des neuen Benutzers kopiert.
 
| tadministration || administration || Domain User, templates || Templatebenutzer für die Verwaltung. || Beim Anlegen eines Benutzers für die Verwaltung wird sein Homeverzeichnis in das Homeverzeichnis des neuen Benutzers kopiert.
 
|-
 
|-
| tworkstations || workstations || Domain User, templates || Templatebenutzer für die Arbeitsplatzbenutzer || Bei der Registrierung eines Gerätes in einer Gerätekonfiguration des Typs '''FatClient''' wird ein Workstation-Benutzer mit dem Namen und Passwort des Gerätes erstellt. Dieser Benutzer kann sich nur an diesem Gerät anmelden.
+
| tworkstations || workstations || Domain User, templates || Templatebenutzer für die Arbeitsplatzbenutzer || Bei der Registrierung eines Gerätes mit einer Gerätekonfiguration des Typs '''FatClient''' wird ein Workstation-Benutzer mit dem Namen und Passwort des Gerätes erstellt. Dieser Benutzer kann sich nur an diesem Gerät anmelden.
 
|}
 
|}
  
 
==Systembenutzer vs Samba-Benutzer==
 
==Systembenutzer vs Samba-Benutzer==
Normaler weise pflegt Linux die Systembenutzer UNIX-gemäß in der Dateien /etc/passwd und /etc/shadow. Nur der Benutzer '''root''' vom CRANIX server ist in diesen Dateien zu finden. Der CRANIX-Server ist ein AD-Samba-Server und die weitere Benutzer werden in der SAMBA-LDAP-Datenbank gespeichert. Damit diese auf Linux ebene auch sichtbar sind, wird auf dem SAMBA-Server auch der '''winbind''' Dienst gestartet. Diese sorgt dafür, dass die SAMBA-Benutzer und Gruppen-SIDs in UNIX '''uidNumber''' und '''gidNumber''' umgewandelt werden. Dies geschieht durch folgende Einstellungen in der Datei '''/etc/nsswitch.conf''':
+
Normalerweise pflegt Linux die Systembenutzer UNIX-gemäß in den Dateien /etc/passwd und /etc/shadow. Nur der Benutzer '''root''' vom CRANIX-Server ist in diesen Dateien zu finden. Der CRANIX-Server ist ein AD-Samba-Server und die weiteren Benutzer werden in der SAMBA-LDAP-Datenbank gespeichert. Damit diese auf Linux-Ebene auch sichtbar sind: wird auf dem SAMBA-Server auch der '''winbind''' Dienst gestartet. Dieser sorgt dafür, dass die SAMBA-Benutzer und Gruppen-SIDs in UNIX '''uidNumber''' und '''gidNumber''' umgewandelt werden. Dies geschieht durch folgende Einstellungen in der Datei '''/etc/nsswitch.conf''':
 
   passwd: compat winbind
 
   passwd: compat winbind
 
   group:  compat winbind
 
   group:  compat winbind
  
Zwar sind die Benutzer auf dem CRANIX-Server sichtbar, die Dateien können zugeordnet werden, eine Authentisierung über Dienste die PAM-Schnittstelle abwickeln (ssh, login, sftp, ftp, cyrus ...) ist jedoch nicht möglich. Wenn Sie zum Beispiel  den SAMBA-Benutzern auch ssh Zugang zum CRANIX-Server gewähren möchten, muss dafür auch PAM konfiguriert werden:
+
Zwar sind die Benutzer auf dem CRANIX-Server sichtbar und die Dateien können zugeordnet werden, jedoch ist zunächst eine Authentifizierung für Dienste über eine PAM-Schnittstelle (ssh, login, sftp, ftp, cyrus ...) nicht möglich. Wenn Sie zum Beispiel  den SAMBA-Benutzern auch ssh Zugang zum CRANIX-Server gewähren möchten, muss dafür auch PAM konfiguriert werden:
 
   pam-config -a --winbind
 
   pam-config -a --winbind
  
 
== Benutzer einzeln anlegen ==
 
== Benutzer einzeln anlegen ==
Wählen Sie im Hauptmenü ''Administration -> Benutzer'', dann unter Benutzer den Tab ''Hinzufügen'', um einen Benutzer anzulegen.
+
Wählen Sie im Hauptmenü '''Benutzer'''. Hier erhalten Sie eine Liste der aktuellen Benutzer. Klicken Sie rechts oben auf das Pluszeichen, um einen Benutzer anzulegen.
 +
<br>
 
Folgende Felder müssen beim Anlegen eines neuen Benutzers unbedingt ausgefüllt bzw. gesetzt werden:
 
Folgende Felder müssen beim Anlegen eines neuen Benutzers unbedingt ausgefüllt bzw. gesetzt werden:
* '''Benutzername:''' Wurde kein '''Benutzerkürzel''' (UID: User-ID) angegeben, wird dieses aus dem Nach- und Vornamen ggf Geburtsjahr ermittelt. Dieser Vorgang wird durch die Systemvariable ''LOGIN_SCHEME'' unter ''Server->Konfiguration->Einstellungen'' gesteuert. Der Standardwert ist N4V4. Das bedeutet, dass der Benutzername aus den ersten vier Buchstaben des Nachnamens und den ersten vier Buchstaben des Vornamens gebildet wird. Existiert im System schon ein Benutzer mit derselben UID, wird eine Zahl an die UID angehängt, damit diese eindeutig ist. Für Geburtsjahr verwenden Sie den Buchstaben „Y“ gefolgt von den Ziffern 2 oder 4. Andere Zahlen sind für das Geburtsjahr nicht erlaubt.
+
* '''Benutzername:''' Wurde kein '''Benutzerkürzel''' (UID: User-ID) angegeben, wird dieses aus dem Nach- und Vornamen und ggf. Geburtsjahr ermittelt. Dieser Vorgang wird durch die Systemvariable ''LOGIN_SCHEME'' unter ''Server->Konfiguration->Einstellungen'' gesteuert. Der Standardwert ist N4V4. Das bedeutet, dass der Benutzername aus den ersten vier Buchstaben des Nachnamens und den ersten vier Buchstaben des Vornamens gebildet wird. Existiert im System schon ein Benutzer mit derselben UID, wird eine Zahl an die UID angehängt, damit diese eindeutig ist. Um das Geburtsjahr als Identifikator zu verwenden: müssen Sie den Buchstaben „Y“ gefolgt von den Ziffern 2 oder 4 angeben. Andere Zahlen sind für das Geburtsjahr nicht erlaubt.
* '''Kennung''' In diesem Feld kann ein externer Identifikator, zBp. Personalnummer verwendet werden.
+
* '''Kennung''' In diesem Feld kann ein externer Identifikator, zB. Personalnummer verwendet werden.
 
* '''Nachname'''
 
* '''Nachname'''
 
* '''Vorname'''
 
* '''Vorname'''
 
* '''Geburtstag'''
 
* '''Geburtstag'''
 
* '''Rolle:''' Wählen Sie eine primäre Gruppe (Rolle), der der neue Benutzer angehören soll. Weitere Gruppen können Sie später über das Menü Gruppen zuordnen. Sofern Sie noch keine Rollen angelegt haben, können Sie hier nur die Rollen Schüler, Lehrer, Verwaltung, Sysadmins oder Template Benutzer wählen.
 
* '''Rolle:''' Wählen Sie eine primäre Gruppe (Rolle), der der neue Benutzer angehören soll. Weitere Gruppen können Sie später über das Menü Gruppen zuordnen. Sofern Sie noch keine Rollen angelegt haben, können Sie hier nur die Rollen Schüler, Lehrer, Verwaltung, Sysadmins oder Template Benutzer wählen.
* '''Klasse:''': Benutzer können zu einer beliebigen Anzahl von Klassen gehören. Ist der neu angelegte Benutzer ein Schüler, muss er jedoch mind. einer Klasse zugeordnet werden. Mit CTRL+A können Sie alle Klassen auswählen, um z.B. einen Lehrer allen Klassen zuzuweisen.
+
* '''Klasse:''': Benutzer können zu einer beliebigen Anzahl von Klassen gehören. Ist der neu angelegte Benutzer ein Schüler, muss er jedoch mind. einer Klasse zugeordnet werden. Mit CTRL+A können Sie alle Klassen auswählen, um zB. einen Lehrer allen Klassen zuzuweisen.
 
* '''Passwort:''' Darf leer bleiben. In diesem Fall wird ein sicheres Passwort generiert.
 
* '''Passwort:''' Darf leer bleiben. In diesem Fall wird ein sicheres Passwort generiert.
 
* '''Mailsystem- und Festplattenquota:''' kann in MB angegeben werden. Gibt man keinen Wert an, werden die in den Systemvariablen FILE_QUOTA, FILE_TEACHER_QUOTA, MAIL_QUOTA und MAIL_TEACHER_QUOTA gesetzten Werte verwendet.
 
* '''Mailsystem- und Festplattenquota:''' kann in MB angegeben werden. Gibt man keinen Wert an, werden die in den Systemvariablen FILE_QUOTA, FILE_TEACHER_QUOTA, MAIL_QUOTA und MAIL_TEACHER_QUOTA gesetzten Werte verwendet.
[[Datei:Benutzer-Anlegen.png|400px||rahmenlos|zentriert]]
+
<gallery heights=250px widths=325px>
 +
Cocpit-Benutzer-Liste.jpeg|Liste der Benutzer
 +
Cocpit-Benuzter-Liste-MD.jpeg|Liste der Benutzer Mobiles Gerät
 +
Benutzer-Anlegen.png|Benutzer anlegen
 +
</gallery>
  
Sie können auch selbst eine UID für den neuen Benutzer angeben. Bitte beachten Sie dabei, dass die UID aus Kleinbuchstaben bestehen muss, keine Sonderzeichen oder Leerstellen enthalten darf und auf dem System eindeutig sein muss.
+
Sie können auch selber eine '''UID''' für den neuen Benutzer angeben. Bitte beachten Sie dabei, dass die UID aus Kleinbuchstaben bestehen muss, keine Sonderzeichen oder Leerstellen enthalten darf und im System eindeutig sein muss.
  
 
Für jeden neuen Benutzer wird ein eigenes Homeverzeichnis angelegt. Die Lehrer bekommen ihre Verzeichnisse unterhalb des Verzeichnisses /home/teachers/ und die Schüler unterhalb des Verzeichnisses /home/students. „Verwaltungsnutzer“ bekommen ihre Verzeichnisse unterhalb des Verzeichnisses /home/administration.
 
Für jeden neuen Benutzer wird ein eigenes Homeverzeichnis angelegt. Die Lehrer bekommen ihre Verzeichnisse unterhalb des Verzeichnisses /home/teachers/ und die Schüler unterhalb des Verzeichnisses /home/students. „Verwaltungsnutzer“ bekommen ihre Verzeichnisse unterhalb des Verzeichnisses /home/administration.
Zeile 62: Zeile 67:
  
 
*Muss UTF-8 kodiert sein.
 
*Muss UTF-8 kodiert sein.
*Die Trennzeichen zwischen den einzelnen Feldern kann Doppelpunkt, Semikolon, oder Komma sein. Andere Zeichen wie zBp. Leerzeichen und Tabulator sind nicht erlaubt. Wicht ist natürlich, sie ändern sich nicht im Verlauf der Datei. So reicht die bei vielen Schulverwaltungsprogrammen existierende Export-Funktion in eine CSV oder Textdatei meist vollkommen aus.
+
*Die Trennzeichen zwischen den einzelnen Feldern können Doppelpunkt, Semikolon, oder Komma sein. Andere Zeichen wie zB. Leerzeichen und Tabulator sind nicht erlaubt. Wichtig ist natürlich: die Trennzeichen dürfen sich nicht im Verlauf der Datei ändern. So reicht die bei vielen Schulverwaltungsprogrammen existierende Export-Funktion in eine CSV oder Textdatei meist vollkommen aus.
 
*Eine Importdatei darf nur Benutzer der gleichen Rollen enthalten. D.h. man kann auf einmal nur Schüler oder nur Lehrer importieren.
 
*Eine Importdatei darf nur Benutzer der gleichen Rollen enthalten. D.h. man kann auf einmal nur Schüler oder nur Lehrer importieren.
 
[[Datei:Benutzer-Importieren.png|400px||rahmenlos|zentriert]]
 
[[Datei:Benutzer-Importieren.png|400px||rahmenlos|zentriert]]
Zeile 80: Zeile 85:
 
* '''Passwort bei erster Anmeldung ändern:''' Benutzer werden bei ihrer ersten Anmeldung an einem Windows-Gerät aufgefordert, ihr Passwort zu ändern. Wurde '''Passwort zurücksetzen''' aktiviert, bezieht sich diese Einstellung auch auf vorhandene Benutzer.<br>Kommandozeilenparameter: --mustChange. Dieser Parameter hat keinen Wert.
 
* '''Passwort bei erster Anmeldung ändern:''' Benutzer werden bei ihrer ersten Anmeldung an einem Windows-Gerät aufgefordert, ihr Passwort zu ändern. Wurde '''Passwort zurücksetzen''' aktiviert, bezieht sich diese Einstellung auch auf vorhandene Benutzer.<br>Kommandozeilenparameter: --mustChange. Dieser Parameter hat keinen Wert.
  
* '''Importdatei enthält alle Benutzer.:''' Dieses Parameter hat nur dann einen Einfluss auf den Import, wenn Schüler importiert werden. Ist dieser Parameter gesetzt, werden Schüler, die nicht in der Liste enthalten sind, gelöscht.<br>Kommandozeilenparameter: --full Dieser Parameter hat keinen Wert.
+
* '''Importdatei enthält alle Benutzer.:''' Dieser Parameter hat nur dann einen Einfluss auf den Import, wenn Schüler importiert werden. Ist dieser Parameter gesetzt, werden Schüler, die nicht in der Liste enthalten sind, gelöscht.<br>Kommandozeilenparameter: --full Dieser Parameter hat keinen Wert.
  
* '''Importdatei enthält alle Klassen. Andere werden gelöscht.''' Dieses Parameter hat nur dann einen Einfluss auf den Import, wenn Schüler importiert werden. Wird dieses Parameter aktiviert, werden die Klassen die in der Importdatei nicht vorkommen aus dem System gelöscht.<br>Kommandozeilenparameter:  --allClasses Dieser Parameter hat keinen Wert.
+
* '''Importdatei enthält alle Klassen. Andere werden gelöscht.''' Dieser Parameter hat nur dann einen Einfluss auf den Import, wenn Schüler importiert werden. Wird dieser Parameter angegeben wird, werden die Klassen, die in der Importdatei nicht vorkommen, aus dem System gelöscht.<br>Kommandozeilenparameter:  --allClasses Dieser Parameter hat keinen Wert.
  
 
* '''Klassenverzeichnisse leeren:''' Nach dem Import werden alle Klassenverzeichnisse gelöscht und neu angelegt.<br>Kommandozeilenparameter:  --cleanClassDirs Dieser Parameter hat keinen Wert.
 
* '''Klassenverzeichnisse leeren:''' Nach dem Import werden alle Klassenverzeichnisse gelöscht und neu angelegt.<br>Kommandozeilenparameter:  --cleanClassDirs Dieser Parameter hat keinen Wert.
  
* '''Passwörter für alte Benutzer auch setzen.:''' Wird dieses Parameter aktiviert, werden auch den vorhandenen Benutzern neue Passwörter zugewiesen. Wurde im Feld '''Passwort''' eingegeben, wird dieses verwendet, sonst bekommt jeder Benutzer ein zufällig generiertes Passwort. Sie haben auch die Möglichkeit das Passwort in der Importdatei festzulegen.<br>Kommandozeilenparameter: --resetPassword Dieser Parameter hat keinen Wert.
+
* '''Passwörter für alte Benutzer auch setzen.:''' Wird dieser Parameter aktiviert, werden auch den vorhandenen Benutzern neue Passwörter zugewiesen. Wurde im Feld '''Passwort''' eingegeben, wird dieses verwendet, sonst bekommt jeder Benutzer ein zufällig generiertes Passwort. Sie haben auch die Möglichkeit das Passwort in der Importdatei festzulegen.<br>Kommandozeilenparameter: --resetPassword Dieser Parameter hat keinen Wert.
  
* '''Geburtsdatum an das Passwort anhängen.:''' Das ist ein neues Feature, das in de Version 4.1 eingeführt wurde. Ist dieses Schalter aktiv bekommen neue Benutzer, oder wenn '''Passwort zurücksetzten:''' aktiv ist, alle Benutzer das eigenen Geburtsdatum in Form JJJJ-MM-DD als Passwort gesetzt. Wird im Feld '''Passwort''' auch etwas eingetragen, wird das vor dem Geburtsdatum gesetzt.<br>Kommandozeilenparameter: --appendBirthdayToPassword Dieser Parameter hat keinen Wert.
+
* '''Geburtsdatum an das Passwort anhängen.:''' Das ist ein neues Feature, das in de Version 4.1 eingeführt wurde. Ist dieser Schalter aktiv bekommen neue Benutzer, oder wenn '''Passwort zurücksetzten:''' aktiv ist, alle Benutzer das eigene Geburtsdatum in Form JJJJ-MM-DD als Passwort gesetzt. Wird im Feld '''Passwort''' auch etwas eingetragen, wird das vor das Geburtsdatum gesetzt.<br>Kommandozeilenparameter: --appendBirthdayToPassword Dieser Parameter hat keinen Wert.
  
* '''Klassennamen an das Passwort anhängen.:''' Ist dieses Schalter aktiv bekommen neue Benutzer, oder wenn '''Passwort zurücksetzten:''' aktiv ist, alle Benutzer den eigenen Klassennamen als Passwort gesetzt. Wird im Feld '''Passwort''' auch etwas eingetragen, wird das vor dem Klassennamen gesetzt. Diese Parameter kann auch mit '''Geburtsdatum an das Passwort anhängen.''' kombiniert werden.<br>Kommandozeilenparameter: --appendClassToPassword Dieser Parameter hat keinen Wert.
+
* '''Klassennamen an das Passwort anhängen.:''' Ist dieser Schalter aktiv bekommen neue Benutzer, oder wenn '''Passwort zurücksetzten:''' aktiv ist, alle Benutzer den eigenen Klassennamen als Passwort gesetzt. Wird im Feld '''Passwort''' auch etwas eingetragen, wird das vor den Klassennamen gesetzt. Diese Parameter kann auch mit '''Geburtsdatum an das Passwort anhängen.''' kombiniert werden.<br>Kommandozeilenparameter: --appendClassToPassword Dieser Parameter hat keinen Wert.
  
 
=== Format der Import CSV-Datei ===
 
=== Format der Import CSV-Datei ===
Zeile 108: Zeile 113:
 
|-
 
|-
 
| GEBURTSTAG
 
| GEBURTSTAG
| Haben Sie als '''Identifizierungsmerkmal''' "Name + Geburtstag" gewählt ist dieser ein Pflichtfeld.
+
| Haben Sie als '''Identifizierungsmerkmal''' "Name + Geburtstag" gewählt ist dies ein Pflichtfeld.
 
| Folgende Datumformate werden erkannt:<br>JJJJ-MM-TT<br>TT-MM-JJJJ<br>JJJJ:MM:TT<br>TT:MM:JJJJ<br>JJJJ.MM.TT<br>TT.MM.JJJJ<br>JJJJMMTT
 
| Folgende Datumformate werden erkannt:<br>JJJJ-MM-TT<br>TT-MM-JJJJ<br>JJJJ:MM:TT<br>TT:MM:JJJJ<br>JJJJ.MM.TT<br>TT.MM.JJJJ<br>JJJJMMTT
 
|-
 
|-
Zeile 121: Zeile 126:
 
| BENUTZERNAME
 
| BENUTZERNAME
 
| Sie können individuelle User-IDs eingeben. Nutzen Sie diese Möglichkeit, wenn Ihnen die vom CRANIX automatisch generierten User-IDs (Anmeldenamen) nicht gefallen. Haben Sie als '''Identifizierungsmerkmal''' "Benutzername" gewählt ist dieser ein Pflichtfeld.
 
| Sie können individuelle User-IDs eingeben. Nutzen Sie diese Möglichkeit, wenn Ihnen die vom CRANIX automatisch generierten User-IDs (Anmeldenamen) nicht gefallen. Haben Sie als '''Identifizierungsmerkmal''' "Benutzername" gewählt ist dieser ein Pflichtfeld.
| Dar nur ASCII-Buchstaben, Ziffern, Punkt und Bindestich erhalten. Darf jedoch nicht mit Punkt oder Bindestich anfangen.
+
| Dar nur ASCII-Buchstaben, Ziffern, Punkt und Bindestriche enthalten. Darf jedoch nicht mit Punkt oder Bindestrich anfangen.
 
|-
 
|-
 
| KENNUNG
 
| KENNUNG
| In diesem Feld kann ein externe Identifikator, zBp. Personalnummer verwendet werden. Haben Sie als '''Identifizierungsmerkmal''' "Kennung (UUID)" gewählt ist dieser ein Pflichtfeld.
+
| In diesem Feld kann ein externer Identifikator, zB. Personalnummer verwendet werden. Haben Sie als '''Identifizierungsmerkmal''' "Kennung (UUID)" gewählt ist dies ein Pflichtfeld.
 
| Keine Begrenzung. Lediglich das Trennzeichen darf nicht vorkommen.
 
| Keine Begrenzung. Lediglich das Trennzeichen darf nicht vorkommen.
 
|-
 
|-
Zeile 137: Zeile 142:
 
|}
 
|}
  
Die mit ''Pflichtfeld'' gekennzeichneten Felder sind obligatorisch. Verwenden Sie als Name für die Spalten die exakte Schreibweise wie oben in den Tabellen. Andernfalls kann der CRANIX die Spalten nicht richtig erkennen. Groß-/Kleinschreibung ist jedoch irrelevant.
+
Die mit ''Pflichtfeld'' gekennzeichneten Felder sind obligatorisch. Verwenden Sie als Namen für die Spalten die exakte Schreibweise wie oben in den Tabellen. Andernfalls kann der CRANIX die Spalten nicht richtig erkennen. Groß-/Kleinschreibung ist jedoch irrelevant.
  
 
====Abarbeiten der Importdatei====
 
====Abarbeiten der Importdatei====
Zeile 144: Zeile 149:
 
'''1. Neuer Benutzer'''
 
'''1. Neuer Benutzer'''
  
Wird ein Benutzer in der Datenbank nicht gefunden, handelt es sich um einen neuen Benutzer. In diesem Fall wird für diesen Benutzer ein neuer eindeutiger Login Name, wie unter Neu Anlegen einzelner Benutzer beschrieben, ermittelt und dieser in die Datenbank aufgenommen.
+
Wird ein Benutzer in der Datenbank nicht gefunden, handelt es sich um einen neuen Benutzer. In diesem Fall wird für diesen Benutzer ein neuer eindeutiger Login Name, wie unter ''Neu Anlegen einzelner Benutzer'' beschrieben, ermittelt und dieser in die Datenbank aufgenommen.
 
Falls vorhanden, wird das Feld PASSWORT wie folgt ausgewertet:  
 
Falls vorhanden, wird das Feld PASSWORT wie folgt ausgewertet:  
  
 
*‘text’ => ‘text’ wird als Passwort gesetzt.
 
*‘text’ => ‘text’ wird als Passwort gesetzt.
 
*‘*’ => Sollten Sie in ein und derselben Textdatei einigen Nutzern ein fest definiertes Passwort über ‘text’ zuweisen, für andere jedoch ein zufälliges Passwort generieren lassen wollen, so fügen Sie bei diesen Nutzern den ‘*’ ein.
 
*‘*’ => Sollten Sie in ein und derselben Textdatei einigen Nutzern ein fest definiertes Passwort über ‘text’ zuweisen, für andere jedoch ein zufälliges Passwort generieren lassen wollen, so fügen Sie bei diesen Nutzern den ‘*’ ein.
*‘kein Inhalt’ => Sollte anderen Nutzern ein Passwort über die beiden oben angegebenen Möglichkeiten (fest oder zufällig) zugewiesen worden sein, bei einem (oder mehreren) Nutzern in derselben Datei aber kein Wert im Passwortfeld enthalten sein, so bekommen diese Nutzer kein Passwort, d.h. sie können sich ohne Passwort am System anmelden.
+
*‘kein Inhalt’ => Sollten anderen Nutzern ein Passwort über die beiden oben angegebenen Möglichkeiten (fest oder zufällig) zugewiesen worden sein, bei einem (oder mehreren) Nutzern in derselben Datei, aber kein Wert im Passwortfeld enthalten sein, so bekommen diese Nutzer kein Passwort, d.h. sie können sich ohne Passwort am System anmelden.
  
 
Ist das Feld PASSWORT in der Datei nicht vorhanden, wird ein zufälliges Passwort zugewiesen.
 
Ist das Feld PASSWORT in der Datei nicht vorhanden, wird ein zufälliges Passwort zugewiesen.
Zeile 183: Zeile 188:
  
 
==Passwortsicherheit==
 
==Passwortsicherheit==
Die Sicherheit der Passwörter wird im CRANIX auf zwei Ebenen sichergestellt. Zunächst wird jedes Passwort beim Anlegen von Benutzern bzw. beim Ändern der Passwörter durch Benutzter auf bestimmte Sicherheitsmerkmalen kontrolliert. Weiterhin kann man festlegen wie lange ein Passwort gültig ist, also nach wie vielen Tagen Benutzer ihre Passwörter ändern müssen bzw. wie mit fehlerhaften Anmeldeversuchen umgegangen werden soll.
+
Die Sicherheit der Passwörter wird im CRANIX auf zwei Ebenen sichergestellt. Zunächst wird jedes Passwort beim Anlegen von Benutzern bzw. beim Ändern der Passwörter durch Benutzter auf bestimmte Sicherheitsmerkmale kontrolliert. Weiterhin kann man festlegen wie lange ein Passwort gültig ist, also nach wie vielen Tagen Benutzer ihre Passwörter ändern müssen bzw. wie mit fehlerhaften Anmeldeversuchen umgegangen werden soll.
  
 
===Überprüfung von Passworten===
 
===Überprüfung von Passworten===
Beim Anlegen neuer Benutzer bzw. bei Ändern der Passwörter vorhandenen Benutzer wird die Qualität des Passwortes überprüft. Um die Komplexität der Passwörter besser kontrollieren bzw. beschreiben zu können, liefert der CRANIX ein eigenes Script für diesen Zweck: '''/usr/share/cranix/tools/check_password_complexity.sh''' Dieses Prüft das Passwort ob folgende Voraussetzungen erfüllt:
+
Beim Anlegen neuer Benutzer bzw. beim Ändern der Passwörter von vorhandenen Benutzern wird die Qualität des Passwortes überprüft. Um die Komplexität der Passwörter besser kontrollieren bzw. beschreiben zu können, liefert der CRANIX ein eigenes Script für diesen Zweck: '''/usr/share/cranix/tools/check_password_complexity.sh''' Dieses prüft ob das Passwort folgende Voraussetzungen erfüllt:
  
 
Technische Voraussetzungen:
 
Technische Voraussetzungen:
 
# Minimale Passwortlänge ist eingehalten. Die minimale Passwortlänge wird durch die globale Variable MINIMAL_PASSWORD_LENGTH festgelegt.
 
# Minimale Passwortlänge ist eingehalten. Die minimale Passwortlänge wird durch die globale Variable MINIMAL_PASSWORD_LENGTH festgelegt.
 
# Maximale Passwortlänge ist eingehalten. Die maximale Passwortlänge wird durch die globale Variable MAXIMAL_PASSWORD_LENGTH festgelegt.
 
# Maximale Passwortlänge ist eingehalten. Die maximale Passwortlänge wird durch die globale Variable MAXIMAL_PASSWORD_LENGTH festgelegt.
# Das Passwort darf kein '&' und '§'-Zeichen enthalten. Das kommt aus eine Restriktion von Office365 von Microsoft.
+
# Das Passwort darf kein '&' und '§'-Zeichen enthalten. Das kommt aus einer Restriktion von Office365 von Microsoft.
 
# Das Passwort darf nicht mit Bindestrich '-' beginnen.
 
# Das Passwort darf nicht mit Bindestrich '-' beginnen.
 
Sicherheitsrelevante Voraussetzungen:
 
Sicherheitsrelevante Voraussetzungen:
Zeile 200: Zeile 205:
  
 
Dieses Programm liest das Passwort aus dem STDIN. Dieses Script wurde in '''/etc/samba/smb.conf''' als ''check password script'' für Samba auch als Überprüfungsskript gesetzt.  
 
Dieses Programm liest das Passwort aus dem STDIN. Dieses Script wurde in '''/etc/samba/smb.conf''' als ''check password script'' für Samba auch als Überprüfungsskript gesetzt.  
Wer eigene Passwortüberprüfung erstellen möchte kann ein Script namens '''/usr/share/cranix/tools/custom_check_password_complexity.sh''' erstellen. Dieses Script muss folgende Bedingungen erfüllen:
+
Wer eine eigene Passwortüberprüfung erstellen möchte kann ein Script namens '''/usr/share/cranix/tools/custom_check_password_complexity.sh''' erstellen. Dieses Script muss folgende Bedingungen erfüllen:
 
* muss ausführbar sein.
 
* muss ausführbar sein.
 
* muss das zu evaluierende Passwort aus der Standardeingabe lesen.
 
* muss das zu evaluierende Passwort aus der Standardeingabe lesen.
Zeile 213: Zeile 218:
 
* Wird die Komplexität des Passworts überprüft?
 
* Wird die Komplexität des Passworts überprüft?
 
* Minimale Passwortlänge. Dies kann über die globale Variable MINIMAL_PASSWORD_LENGTH gesetzt werden.
 
* Minimale Passwortlänge. Dies kann über die globale Variable MINIMAL_PASSWORD_LENGTH gesetzt werden.
* Maximale Passwortlänge. Das ist kein Standard Samba/Windows Passworteinstellung. In der Praxis hatte es sich jedoch als sinnvoll erwiesen, die Länge der Passwörter zu begrenzen. Dies kann über die globale Variable MAXIMAL_PASSWORD_LENGTH
+
* Maximale Passwortlänge. Das ist keine Standard Samba/Windows Passworteinstellung. In der Praxis hat es sich jedoch als sinnvoll erwiesen, die Länge der Passwörter zu begrenzen. Dies kann über die globale Variable MAXIMAL_PASSWORD_LENGTH eingestellt werden.
 
* Mindestalter des Passworts
 
* Mindestalter des Passworts
 
* Maximales Passwortalter
 
* Maximales Passwortalter
Zeile 237: Zeile 242:
 
Bei der Installation wird für die Passwörter ein Jahr als Gültigkeit gesetzt. Mit folgendem Befehl werden alle Benutzer dazu gezwungen, die Passwörter halbjährlich  zu ändern:
 
Bei der Installation wird für die Passwörter ein Jahr als Gültigkeit gesetzt. Mit folgendem Befehl werden alle Benutzer dazu gezwungen, die Passwörter halbjährlich  zu ändern:
 
   samba-tool domain passwordsettings set --max-pwd-age=182
 
   samba-tool domain passwordsettings set --max-pwd-age=182
Möchte man, dass einzelne Benutzer ihre Passwörter nie ändern müssen, muss man folgenden Befehl verwenden:
+
Mit dem Wert '''0''' für '''--max-pwd-age''' erreicht man, dass die Passwörter nie ihre Gültigkeit verlieren. Möchte man, dass einzelne Benutzer ihre Passwörter nie ändern müssen, muss man folgenden Befehl verwenden:
 
   samba-tool user  setexpiry --noexpiry <uid>
 
   samba-tool user  setexpiry --noexpiry <uid>
  
 
== Benutzer über cranix-api verwalten ==
 
== Benutzer über cranix-api verwalten ==
  
Man kann von der Kommandozeile über das cranix-api die Benutzer auch verwalten.
+
Man kann von der Kommandozeile über die cranix-api die Benutzer auch verwalten.
  
 
===Benutzer auflisten===
 
===Benutzer auflisten===
 
   crx_api.sh GET users/all listet alle Benutzer in JSON List auf.
 
   crx_api.sh GET users/all listet alle Benutzer in JSON List auf.
 
   crx_api.sh GET users/byRole/{role} listet alle Benutzer einer Rolle in JSON List auf.
 
   crx_api.sh GET users/byRole/{role} listet alle Benutzer einer Rolle in JSON List auf.
   crx_api_text.sh GET users/byUid/{uid}/{parameter} Mit diesem Call kann man ein Parameter eines Benutzers abfragen.
+
   crx_api_text.sh GET users/byUid/{uid}/{parameter} Mit diesem Call kann man die Parameter eines Benutzers abfragen.
 
   crx_api_text.sh GET text/{userName}/classes Listet alle Klassen auf in der der Benutzer Mitglied ist
 
   crx_api_text.sh GET text/{userName}/classes Listet alle Klassen auf in der der Benutzer Mitglied ist
 
   crx_api_text.sh GET text/{userName}/grousp Listet alle Gruppen auf in der der Benutzer Mitglied ist
 
   crx_api_text.sh GET text/{userName}/grousp Listet alle Gruppen auf in der der Benutzer Mitglied ist
Zeile 261: Zeile 266:
 
  }
 
  }
  
Dieser muss in einer Datei gespeichert werden und kann nun mit folgendem Call der Benutzer erstellt werden:
+
Dieser muss in einer Datei gespeichert werden und kann nun mit folgendem Call den Benutzer erstellen:
  
 
   crx_api_post_file.sh users/add <Pfad zur JSON-Hash-File>
 
   crx_api_post_file.sh users/add <Pfad zur JSON-Hash-File>
  
 
===Benutzer löschen===
 
===Benutzer löschen===
Man kann einen Benutzer anhand sein uid oder Datenbank-ID löschen:
+
Man kann einen Benutzer anhand seiner uid oder Datenbank-ID löschen:
 
   crx_api.sh DELETE users/text/{uid}
 
   crx_api.sh DELETE users/text/{uid}
 
   crx_api.sh DELETE users/{Datenbank Id}
 
   crx_api.sh DELETE users/{Datenbank Id}

Aktuelle Version vom 14. Oktober 2024, 17:46 Uhr

1 Standardbenutzer

Während der Installation vom CRANIX werden mehrere Benutzer angelegt, die für verschiedene Funktionen des Servers notwendig sind:

Benutzername Rolle Berechtigung / Gruppenzugehörigkeit Funktion Bemerkung
root -- darf alles machen Systemadministration von der Linuxkonsole Nur direkte Anmeldung am CRANIX oder Fernwartung per ssh.
Administrator sysadmins Domain Administrator Verwaltung der Domäne, Webadministration Keine direkte Anmeldung am Server. Passwort nach der Installation identisch mit dem vom root . Ersetzt den Benutzer admin von OSS-3.4.2
register internal Administrators Ausführung automatischer Domänenadministration ( z.B. Domainbeitritt nach dem Klonen ) Erhält ein zufälliges Passwort während der Installation, welches in /opt/cranix-java/conf/cranix-api.properties gespeichert wird. Setzt man die Systemvariable RESET_REGISTER_PASSWORD auf yes, wird sein Passwort jeden Tag neu generiert um die Sicherheit des Systems zu erhöhen. Standardeinstellung ist no .
ossreader internal Domain User Ausführung automatischer Arbeiten, welche nur lesende Rechte benötigen. Passwort ist ossreader und darf nicht geändert werden.
cephalix internal Domain Administrator Verwaltung des Servers vom CEPHALIX-Server aus. Der CEPHALIX-Server greift über diesen Benutzer auf den Server zu. Alle Objekte (Benutzer, Gruppen, Softwares ...), die vom cephalix erstellt werden, können nur vom dem CEPHALIX Server aus verwaltet werden. Auch der Benutzer Administrator hat keinen Zugriff auf diese Objekte.
tteachers teachers Domain User, templates Templatebenutzer für die Lehrer. Beim Anlegen eines Lehrers wird sein Homeverzeichnis in das Homeverzeichnis des neuen Benutzers kopiert.
tstudents students Domain User, templates Templatebenutzer für die Schüler. Beim Anlegen eines Schülers wird sein Homeverzeichnis in das Homeverzeichnis des neuen Benutzers kopiert.
tadministration administration Domain User, templates Templatebenutzer für die Verwaltung. Beim Anlegen eines Benutzers für die Verwaltung wird sein Homeverzeichnis in das Homeverzeichnis des neuen Benutzers kopiert.
tworkstations workstations Domain User, templates Templatebenutzer für die Arbeitsplatzbenutzer Bei der Registrierung eines Gerätes mit einer Gerätekonfiguration des Typs FatClient wird ein Workstation-Benutzer mit dem Namen und Passwort des Gerätes erstellt. Dieser Benutzer kann sich nur an diesem Gerät anmelden.

2 Systembenutzer vs Samba-Benutzer

Normalerweise pflegt Linux die Systembenutzer UNIX-gemäß in den Dateien /etc/passwd und /etc/shadow. Nur der Benutzer root vom CRANIX-Server ist in diesen Dateien zu finden. Der CRANIX-Server ist ein AD-Samba-Server und die weiteren Benutzer werden in der SAMBA-LDAP-Datenbank gespeichert. Damit diese auf Linux-Ebene auch sichtbar sind: wird auf dem SAMBA-Server auch der winbind Dienst gestartet. Dieser sorgt dafür, dass die SAMBA-Benutzer und Gruppen-SIDs in UNIX uidNumber und gidNumber umgewandelt werden. Dies geschieht durch folgende Einstellungen in der Datei /etc/nsswitch.conf:

 passwd: compat winbind
 group:  compat winbind

Zwar sind die Benutzer auf dem CRANIX-Server sichtbar und die Dateien können zugeordnet werden, jedoch ist zunächst eine Authentifizierung für Dienste über eine PAM-Schnittstelle (ssh, login, sftp, ftp, cyrus ...) nicht möglich. Wenn Sie zum Beispiel den SAMBA-Benutzern auch ssh Zugang zum CRANIX-Server gewähren möchten, muss dafür auch PAM konfiguriert werden:

 pam-config -a --winbind

3 Benutzer einzeln anlegen

Wählen Sie im Hauptmenü Benutzer. Hier erhalten Sie eine Liste der aktuellen Benutzer. Klicken Sie rechts oben auf das Pluszeichen, um einen Benutzer anzulegen.
Folgende Felder müssen beim Anlegen eines neuen Benutzers unbedingt ausgefüllt bzw. gesetzt werden:

  • Benutzername: Wurde kein Benutzerkürzel (UID: User-ID) angegeben, wird dieses aus dem Nach- und Vornamen und ggf. Geburtsjahr ermittelt. Dieser Vorgang wird durch die Systemvariable LOGIN_SCHEME unter Server->Konfiguration->Einstellungen gesteuert. Der Standardwert ist N4V4. Das bedeutet, dass der Benutzername aus den ersten vier Buchstaben des Nachnamens und den ersten vier Buchstaben des Vornamens gebildet wird. Existiert im System schon ein Benutzer mit derselben UID, wird eine Zahl an die UID angehängt, damit diese eindeutig ist. Um das Geburtsjahr als Identifikator zu verwenden: müssen Sie den Buchstaben „Y“ gefolgt von den Ziffern 2 oder 4 angeben. Andere Zahlen sind für das Geburtsjahr nicht erlaubt.
  • Kennung In diesem Feld kann ein externer Identifikator, zB. Personalnummer verwendet werden.
  • Nachname
  • Vorname
  • Geburtstag
  • Rolle: Wählen Sie eine primäre Gruppe (Rolle), der der neue Benutzer angehören soll. Weitere Gruppen können Sie später über das Menü Gruppen zuordnen. Sofern Sie noch keine Rollen angelegt haben, können Sie hier nur die Rollen Schüler, Lehrer, Verwaltung, Sysadmins oder Template Benutzer wählen.
  • Klasse:: Benutzer können zu einer beliebigen Anzahl von Klassen gehören. Ist der neu angelegte Benutzer ein Schüler, muss er jedoch mind. einer Klasse zugeordnet werden. Mit CTRL+A können Sie alle Klassen auswählen, um zB. einen Lehrer allen Klassen zuzuweisen.
  • Passwort: Darf leer bleiben. In diesem Fall wird ein sicheres Passwort generiert.
  • Mailsystem- und Festplattenquota: kann in MB angegeben werden. Gibt man keinen Wert an, werden die in den Systemvariablen FILE_QUOTA, FILE_TEACHER_QUOTA, MAIL_QUOTA und MAIL_TEACHER_QUOTA gesetzten Werte verwendet.

Sie können auch selber eine UID für den neuen Benutzer angeben. Bitte beachten Sie dabei, dass die UID aus Kleinbuchstaben bestehen muss, keine Sonderzeichen oder Leerstellen enthalten darf und im System eindeutig sein muss.

Für jeden neuen Benutzer wird ein eigenes Homeverzeichnis angelegt. Die Lehrer bekommen ihre Verzeichnisse unterhalb des Verzeichnisses /home/teachers/ und die Schüler unterhalb des Verzeichnisses /home/students. „Verwaltungsnutzer“ bekommen ihre Verzeichnisse unterhalb des Verzeichnisses /home/administration.

Es wird kein Windows-Profil-Verzeichnis für die neuen Benutzer angelegt. Diese werden bei der ersten Abmeldung an von einem Windows-Client erstellt. Die Windowsprofile liegen im /home/profiles/ und haben das Format <uid>.<Windowsversion>.

4 Benutzer importieren

Da es sehr mühsam wäre, die Schüler bzw. die Lehrer jedes Jahr von Hand einzutragen, bietet der Open School Server die Möglichkeit, die Liste der Schüler (und Lehrer) aus einer Datei zu importieren.

Die Datei sollte dazu folgende Voraussetzungen erfüllen:

  • Muss UTF-8 kodiert sein.
  • Die Trennzeichen zwischen den einzelnen Feldern können Doppelpunkt, Semikolon, oder Komma sein. Andere Zeichen wie zB. Leerzeichen und Tabulator sind nicht erlaubt. Wichtig ist natürlich: die Trennzeichen dürfen sich nicht im Verlauf der Datei ändern. So reicht die bei vielen Schulverwaltungsprogrammen existierende Export-Funktion in eine CSV oder Textdatei meist vollkommen aus.
  • Eine Importdatei darf nur Benutzer der gleichen Rollen enthalten. D.h. man kann auf einmal nur Schüler oder nur Lehrer importieren.
Benutzer-Importieren.png

4.1 Importparameter

Beim Start des Imports kann, bzw. muss man verschiedene Parameter angeben:

  • Rolle: Die Rolle der zu importierenden Benutzer.
    Kommandozeilenparameter: --role [administration,students,sysadmins,teachers,templates]
  • Sprache: legt die Sprache fest, in der die Kopfzeile der Importdatei geschrieben ist.
    Kommandozeilenparameter: --lang [DE,EN]
  • Identifizierungsmerkmal: legt fest wie die Benutzer identifiziert werden. Dafür gibt es 3 Möglichkeiten: Durch Nachname, Vorname und Geburtstag oder durch das Benutzerkürzel, womit man sich am CRANIX anmeldet oder durch einen externen Identifikator. WICHTIG hat man Benutzerkürzel oder Kennung (uuid) gewählt, muss dieser auch in der Importdatei vorhanden sein.
    Kommandozeilenparameter: --identifier [sn-gn-bd,uid,uuid]
  • Als Test ausführen: Es werden keine Änderungen durchgeführt, es wird nur dargestellt, was bei einem Import gemacht werden würde. Welche Benutzer werden neu angelegt, welche gelöscht, welchen Klassen werden die Benutzer zugeordnet.
    Kommandozeilenparameter: --test. Dieser Parameter hat keinen Wert.
  • Passwort: Hier kann man ein Passwort für die Benutzer festlegen. Dieses wird in erster Linie nur für die neu angelegten Benutzer verwendet.
    Kommandozeilenparameter: --password PASSWORD
  • Passwort bei erster Anmeldung ändern: Benutzer werden bei ihrer ersten Anmeldung an einem Windows-Gerät aufgefordert, ihr Passwort zu ändern. Wurde Passwort zurücksetzen aktiviert, bezieht sich diese Einstellung auch auf vorhandene Benutzer.
    Kommandozeilenparameter: --mustChange. Dieser Parameter hat keinen Wert.
  • Importdatei enthält alle Benutzer.: Dieser Parameter hat nur dann einen Einfluss auf den Import, wenn Schüler importiert werden. Ist dieser Parameter gesetzt, werden Schüler, die nicht in der Liste enthalten sind, gelöscht.
    Kommandozeilenparameter: --full Dieser Parameter hat keinen Wert.
  • Importdatei enthält alle Klassen. Andere werden gelöscht. Dieser Parameter hat nur dann einen Einfluss auf den Import, wenn Schüler importiert werden. Wird dieser Parameter angegeben wird, werden die Klassen, die in der Importdatei nicht vorkommen, aus dem System gelöscht.
    Kommandozeilenparameter: --allClasses Dieser Parameter hat keinen Wert.
  • Klassenverzeichnisse leeren: Nach dem Import werden alle Klassenverzeichnisse gelöscht und neu angelegt.
    Kommandozeilenparameter: --cleanClassDirs Dieser Parameter hat keinen Wert.
  • Passwörter für alte Benutzer auch setzen.: Wird dieser Parameter aktiviert, werden auch den vorhandenen Benutzern neue Passwörter zugewiesen. Wurde im Feld Passwort eingegeben, wird dieses verwendet, sonst bekommt jeder Benutzer ein zufällig generiertes Passwort. Sie haben auch die Möglichkeit das Passwort in der Importdatei festzulegen.
    Kommandozeilenparameter: --resetPassword Dieser Parameter hat keinen Wert.
  • Geburtsdatum an das Passwort anhängen.: Das ist ein neues Feature, das in de Version 4.1 eingeführt wurde. Ist dieser Schalter aktiv bekommen neue Benutzer, oder wenn Passwort zurücksetzten: aktiv ist, alle Benutzer das eigene Geburtsdatum in Form JJJJ-MM-DD als Passwort gesetzt. Wird im Feld Passwort auch etwas eingetragen, wird das vor das Geburtsdatum gesetzt.
    Kommandozeilenparameter: --appendBirthdayToPassword Dieser Parameter hat keinen Wert.
  • Klassennamen an das Passwort anhängen.: Ist dieser Schalter aktiv bekommen neue Benutzer, oder wenn Passwort zurücksetzten: aktiv ist, alle Benutzer den eigenen Klassennamen als Passwort gesetzt. Wird im Feld Passwort auch etwas eingetragen, wird das vor den Klassennamen gesetzt. Diese Parameter kann auch mit Geburtsdatum an das Passwort anhängen. kombiniert werden.
    Kommandozeilenparameter: --appendClassToPassword Dieser Parameter hat keinen Wert.

4.2 Format der Import CSV-Datei

In der ersten Zeile werden die Spalten und das Trennzeichen der Datei definiert.Zur Zeit sind folgende Schlüsselwörter erlaubt, Pflichtfelder sind als solche vermerkt:

Feldname Pflichtfeld/Bedeutung Syntax
NACHNAME Pflichtfeld Keine Begrenzung. Lediglich das Trennzeichen darf nicht vorkommen.
VORNAME Pflichtfeld Keine Begrenzung. Lediglich das Trennzeichen darf nicht vorkommen.
GEBURTSTAG Haben Sie als Identifizierungsmerkmal "Name + Geburtstag" gewählt ist dies ein Pflichtfeld. Folgende Datumformate werden erkannt:
JJJJ-MM-TT
TT-MM-JJJJ
JJJJ:MM:TT
TT:MM:JJJJ
JJJJ.MM.TT
TT.MM.JJJJ
JJJJMMTT
KLASSE Neue Klasse(n) des Benutzers. Aus den aktuellen Klassen wird der Benutzer entfernt. Wird der Benutzer mehreren Klassen zugeordnet, müssen diese durch Leerzeichen getrennt werden.
PASSWORT Hier können Sie das Passwort eines jeden Benutzers optional, individuell bestimmen. Siehe Passwortsicherheit
BENUTZERNAME Sie können individuelle User-IDs eingeben. Nutzen Sie diese Möglichkeit, wenn Ihnen die vom CRANIX automatisch generierten User-IDs (Anmeldenamen) nicht gefallen. Haben Sie als Identifizierungsmerkmal "Benutzername" gewählt ist dieser ein Pflichtfeld. Dar nur ASCII-Buchstaben, Ziffern, Punkt und Bindestriche enthalten. Darf jedoch nicht mit Punkt oder Bindestrich anfangen.
KENNUNG In diesem Feld kann ein externer Identifikator, zB. Personalnummer verwendet werden. Haben Sie als Identifizierungsmerkmal "Kennung (UUID)" gewählt ist dies ein Pflichtfeld. Keine Begrenzung. Lediglich das Trennzeichen darf nicht vorkommen.
GRUPPE Wird der Benutzer mehreren Gruppen zugeordnet, müssen diese durch Leerzeichen getrennt werden.
MAIL-QUOTA Mailsystemquota in MB
FESTPLATTENQUOTA Filesystemquota in MB

Die mit Pflichtfeld gekennzeichneten Felder sind obligatorisch. Verwenden Sie als Namen für die Spalten die exakte Schreibweise wie oben in den Tabellen. Andernfalls kann der CRANIX die Spalten nicht richtig erkennen. Groß-/Kleinschreibung ist jedoch irrelevant.

4.2.1 Abarbeiten der Importdatei

Es bestehen drei Möglichkeiten, wie mit Benutzerdaten nach dem Einlesen der Benutzerdatei weiter verfahren wird.

1. Neuer Benutzer

Wird ein Benutzer in der Datenbank nicht gefunden, handelt es sich um einen neuen Benutzer. In diesem Fall wird für diesen Benutzer ein neuer eindeutiger Login Name, wie unter Neu Anlegen einzelner Benutzer beschrieben, ermittelt und dieser in die Datenbank aufgenommen. Falls vorhanden, wird das Feld PASSWORT wie folgt ausgewertet:

  • ‘text’ => ‘text’ wird als Passwort gesetzt.
  • ‘*’ => Sollten Sie in ein und derselben Textdatei einigen Nutzern ein fest definiertes Passwort über ‘text’ zuweisen, für andere jedoch ein zufälliges Passwort generieren lassen wollen, so fügen Sie bei diesen Nutzern den ‘*’ ein.
  • ‘kein Inhalt’ => Sollten anderen Nutzern ein Passwort über die beiden oben angegebenen Möglichkeiten (fest oder zufällig) zugewiesen worden sein, bei einem (oder mehreren) Nutzern in derselben Datei, aber kein Wert im Passwortfeld enthalten sein, so bekommen diese Nutzer kein Passwort, d.h. sie können sich ohne Passwort am System anmelden.

Ist das Feld PASSWORT in der Datei nicht vorhanden, wird ein zufälliges Passwort zugewiesen.

2. Vorhandene Benutzer ändern

Steht ein Benutzer sowohl in der Datenbank als auch in der Benutzerliste, handelt es sich um einen alten Benutzer.

Bei vorhandenen Benutzern wird das Feld PASSWORT nicht ausgewertet. Die Benutzer werden lediglich aus der alten Klasse aus- und in die neue Klasse eingetragen.

3. Benutzer löschen

Hinweis: Diese Funktion funktioniert nur, wenn sie eine vollständige Liste der Schüler einlesen.

  • Steht ein Benutzer in der Datenbank, jedoch nicht in der Benutzerliste, bedeutet das, dass dieser Benutzer die Schule verlassen hat.
  • Also werden seine Daten aus der Datenbank gelöscht, sein Heimatverzeichnis wird in ein Archiv zusammengefasst und unter /home/archiv/<benutzername>-<datum>.tgz gespeichert.

Ergebnis
Nach dem Abarbeiten der eingelesenen Datei wird die neue, aktuelle Benutzerliste pro Klasse in der Datei /home/groups/SYSADMINS/userimports/<datum>.<uhrzeit>/userlist.<KLASSE>.txt im Gruppenverzeichnis der Systemadministratoren gespeichert. In dieser Datei stehen die Passwörter im Klartext und muss dementsprechend mit Vorsicht behandelt werden.

Hier ist eine Beispieldatei für das erste Laden des Systems mit unterschiedlichen Passwort-Vergaben:

GEBURTSTAG:NACHNAME:VORNAME:PASSWORT:KLASSE 
11.10.1986:Klein:Aladar:12345:9A 
4.08.1986:Micuc:Emil::9A
09.11.1986:Groß:Evelyn:*:9A 
17.04.1986:Müller:Helmuth:*:9A 10A: 
29.9.1987:Klein:Aladar:*:10A

Die resultierenden Dateien:

  • /home/groups/SYSADMINS/userimports/<datum>.<uhrzeit>/userlist.9A.txt
  • /home/groups/SYSADMINS/userimports/<datum>.<uhrzeit>/userlist.10A.txt

5 Passwortsicherheit

Die Sicherheit der Passwörter wird im CRANIX auf zwei Ebenen sichergestellt. Zunächst wird jedes Passwort beim Anlegen von Benutzern bzw. beim Ändern der Passwörter durch Benutzter auf bestimmte Sicherheitsmerkmale kontrolliert. Weiterhin kann man festlegen wie lange ein Passwort gültig ist, also nach wie vielen Tagen Benutzer ihre Passwörter ändern müssen bzw. wie mit fehlerhaften Anmeldeversuchen umgegangen werden soll.

5.1 Überprüfung von Passworten

Beim Anlegen neuer Benutzer bzw. beim Ändern der Passwörter von vorhandenen Benutzern wird die Qualität des Passwortes überprüft. Um die Komplexität der Passwörter besser kontrollieren bzw. beschreiben zu können, liefert der CRANIX ein eigenes Script für diesen Zweck: /usr/share/cranix/tools/check_password_complexity.sh Dieses prüft ob das Passwort folgende Voraussetzungen erfüllt:

Technische Voraussetzungen:

  1. Minimale Passwortlänge ist eingehalten. Die minimale Passwortlänge wird durch die globale Variable MINIMAL_PASSWORD_LENGTH festgelegt.
  2. Maximale Passwortlänge ist eingehalten. Die maximale Passwortlänge wird durch die globale Variable MAXIMAL_PASSWORD_LENGTH festgelegt.
  3. Das Passwort darf kein '&' und '§'-Zeichen enthalten. Das kommt aus einer Restriktion von Office365 von Microsoft.
  4. Das Passwort darf nicht mit Bindestrich '-' beginnen.

Sicherheitsrelevante Voraussetzungen:

  1. Das Passwort muss mindestens einen Großbuchstaben enthalten.
  2. Das Passwort muss mindestens einen Kleinbuchstaben enthalten.
  3. Das Passwort muss mindestens eine Ziffer enthalten.
  4. Das Passwort muss die Prüfung durch cracklib-check bestehen.

Dieses Programm liest das Passwort aus dem STDIN. Dieses Script wurde in /etc/samba/smb.conf als check password script für Samba auch als Überprüfungsskript gesetzt. Wer eine eigene Passwortüberprüfung erstellen möchte kann ein Script namens /usr/share/cranix/tools/custom_check_password_complexity.sh erstellen. Dieses Script muss folgende Bedingungen erfüllen:

  • muss ausführbar sein.
  • muss das zu evaluierende Passwort aus der Standardeingabe lesen.
  • muss beim Erfolg mit einem Exitwert von 0 sonst ein Wert größer als 0 aufhören.
  • muss beim fehlerhaften Passwort den Grund auf die Standardausgabe liefern.

Bitte beachten Sie, dass dieses Script nur die Sicherheitsrelevante Überprüfung ersetzt. Die technische Überprüfung bleibt nach wie vor erhalten.

Mit der globalen Variable CHECK_PASSWORD_QUALITY kann man die Überprüfung der sicherheitsrelevanten Voraussetzungen ausschalten. Die technische Voraussetzungen müssen jedoch immer erfüllt werden. Das gilt auch, wenn Lehrer die Passwörter von Schüler zurücksetzen. Zwar wird in diesem Fall automatisch CHECK_PASSWORD_QUALITY auf no gesetzt, die technische Voraussetzungen müssen trotzdem erfüllt werden.

5.2 SAMBA Passwortrichtlinien (Password Policies)

Sie können die folgenden Passworteinstellungen mit CRANIX-4 konfigurieren:

  • Wird die Komplexität des Passworts überprüft?
  • Minimale Passwortlänge. Dies kann über die globale Variable MINIMAL_PASSWORD_LENGTH gesetzt werden.
  • Maximale Passwortlänge. Das ist keine Standard Samba/Windows Passworteinstellung. In der Praxis hat es sich jedoch als sinnvoll erwiesen, die Länge der Passwörter zu begrenzen. Dies kann über die globale Variable MAXIMAL_PASSWORD_LENGTH eingestellt werden.
  • Mindestalter des Passworts
  • Maximales Passwortalter
  • Die Anzahl ungültiger Anmeldeversuche, die vor dem Sperren des Kontos zulässig sind.
  • Die Zeitspanne, in der ein Konto gesperrt wird, nachdem das Limit für fehlerhafte Anmeldeversuche überschritten wurde.

Grundsätzlich können diese Werte von der Kommandozeile mit samba-tool Befehl abgefragt bzw. gesetzt werden.

 Abfrage der aktuellen Werte:
 samba-tool domain passwordsettings show
 Password complexity: on
 Store plaintext passwords: off
 Password history length: 24
 Minimum password length: 7
 Minimum password age (days): 1
 Maximum password age (days): 365
 Account lockout duration (mins): 30
 Account lockout threshold (attempts): 0
 Reset account lockout after (mins): 30
 WICHTIG das sind die Standardwerten
 Auflisten der Befehlsoptionen
 samba-tool domain passwordsettings set -h

Bei der Installation wird für die Passwörter ein Jahr als Gültigkeit gesetzt. Mit folgendem Befehl werden alle Benutzer dazu gezwungen, die Passwörter halbjährlich zu ändern:

 samba-tool domain passwordsettings set --max-pwd-age=182

Mit dem Wert 0 für --max-pwd-age erreicht man, dass die Passwörter nie ihre Gültigkeit verlieren. Möchte man, dass einzelne Benutzer ihre Passwörter nie ändern müssen, muss man folgenden Befehl verwenden:

 samba-tool user  setexpiry --noexpiry <uid>

6 Benutzer über cranix-api verwalten

Man kann von der Kommandozeile über die cranix-api die Benutzer auch verwalten.

6.1 Benutzer auflisten

  crx_api.sh GET users/all listet alle Benutzer in JSON List auf.
  crx_api.sh GET users/byRole/{role} listet alle Benutzer einer Rolle in JSON List auf.
  crx_api_text.sh GET users/byUid/{uid}/{parameter} Mit diesem Call kann man die Parameter eines Benutzers abfragen.
  crx_api_text.sh GET text/{userName}/classes Listet alle Klassen auf in der der Benutzer Mitglied ist
  crx_api_text.sh GET text/{userName}/grousp Listet alle Gruppen auf in der der Benutzer Mitglied ist

6.2 Benutzer erstellen

Zuerst muss man eine Datei mit einem JSON-Hash der Benutzerdaten erstellen. Diese muss mindestens die obligatorische Felder erhalten:

{
   "sn" : "Mouse",
   "givenName" : "Micky",
   "birthDay" : "2007.04-17",
   "role" : "students"
}

Dieser muss in einer Datei gespeichert werden und kann nun mit folgendem Call den Benutzer erstellen:

 crx_api_post_file.sh users/add <Pfad zur JSON-Hash-File>

6.3 Benutzer löschen

Man kann einen Benutzer anhand seiner uid oder Datenbank-ID löschen:

  crx_api.sh DELETE users/text/{uid}
  crx_api.sh DELETE users/{Datenbank Id}

6.4 Gruppenmitgliedschaft von Benutzer ändern

  crx_api_text.sh PUT users/text/{userName}/groups/{groupName}
  crx_api_text.sh DELETE users/text/{userName}/groups/{groupName}
  crx_api_text.sh PUT users/text/{userName}/allClassess
  crx_api.sh PUT users/allTeachersInAllClasses