Opened 9 years ago
Closed 9 years ago
#2745 closed Defekt (erledigt)
Rechte der Homeverzeichnisse "richtig" korrigieren
| Reported by: | Rüdiger Kupper | Owned by: | Rüdiger Kupper |
|---|---|---|---|
| Priority: | schnell erledigen | Milestone: | Schuljahr 2017/18 |
| Component: | Webdienst: Linuxmusterlösung | Severity: | beeinträchtigt den Unterricht vieler Lehrer |
| Keywords: | Cc: | bau |
Description (last modified by )
Hallo Rüdiger,
die LML "repariert" mit einem Script die Rechte.
Das müssen wir unbedingt regelmäßig korrekt setzen.
Ich packe das mal in ein Script rein.
Grüße
Jens
Change History (9)
comment:1 by , 9 years ago
| Description: | modified (diff) |
|---|
comment:2 by , 9 years ago
| Component: | sonstiges → Linuxmusterlösung |
|---|---|
| Owner: | changed from to |
| Severity: | normal → kritisch |
| Status: | new → assigned |
comment:3 by , 9 years ago
Die LML hat ein Config-File, in dem steht, was wie "repariert" werden soll: /usr/share/sophomorix/devel/repair.directories. Darin steht jede Zeile für ein Verzeichnis. Der betreffende Eintrag war:
$homedir_teacher::administrator::teachers::0751
Das steht doch aber für
rwx:r-x:--x
Also "others" können NICHT lesen. Wenn ich auf dem paedml nachsehe, steht dort aber eindeutig heute schon wieder
rws:r-x:r-x
Liest die LML ihr eigenes Config-File also nicht richtig?!
comment:4 by , 9 years ago
| Owner: | changed from to |
|---|---|
| Status: | assigned → accepted |
Doch, liest es. Ich habe eben "sophomorix-repair --permissions" aufgerufen, und siehe da, /home/teachers hat jetzt, genau wie in der Config angegeben
rwx:r-x:--x
Was auch immer also die Rechte immer wieder "falsch" setzt, es ist nicht "sophomorix-repair"!
-> Was ist es also dann?
comment:5 by , 9 years ago
| Cc: | added |
|---|
comment:6 by , 9 years ago
| Priority: | normal → hoch |
|---|---|
| Severity: | kritisch → normal |
Die Einstellungen in den Config-Files sind für uns dennoch nicht geeignet, denn es wird zwar /home/teachers auf nicht-Gruppen-lesen gesetzt, aber die einzelnen Homeverzeichnisse der Lehrer dennoch.
- derzeit gehören die Lehrerhomes der Gruppe "www-data" (vermutlich, wegen der public_html-Verzeichnisse)
- Rechte sind
rwx:r-x:r-x
"others" dürfen also lesen, das ist dazu da, damit Lehrer untereinander in ihre Verzeichnisse schauen können (warum eigentlich --?)
Obwohl ein Schüler "other" also das Verzeichnis /home/teachers selbst nicht listen kann, kann er doch mit /home/teachers/<lehrerkürzel> die Lehrerverzeichnisse lesen! Und die Kürzel sind ja nun kein Geheimnis.
Ich habe daher in der LML-Config nun die Zeile gändert.
Von
$homedir_teacher::administrator::teachers::0751
auf
$homedir_teacher::administrator::teachers::0750
Also von rwx:r-x:--x auf rwx:r-x:---. "others" haben jetzt also auch keine Rechte mehr, in die Unterverzeichnisse von /home/teachers zu wechseln. Damit können Schüler die Lehrerdaten keinesfalls mehr sehen.
Jetzt müssen wir nur schauen, dass die Rechte auf so bleiben. Was auch immer die LML da regelmäßig macht, wenn sie dazu "sophomorix-repair" aufruft, ist eigentlich alles sicher.
-> beaobachten!
comment:7 by , 9 years ago
| Severity: | normal → kritisch |
|---|
Oh nein, der letzte Schritt war keine gute Idee :-/.
Weil /home/teachers" der Gruppe www-data` gehört, sind die Lehrer dort selbst natürlich "others". Wenn man "others" nun die Wechselrechte nimmt, können sie nicht mehr in ihr eigenes Homeverzeichnis wechseln. Daher konnten sich heute Morgen die Lehrer nicht anmelden.
-> Habe das jetzt rückgängig gemacht. Damit besteht aber das alte Problem wieder. Momentan ist mir auch nicht klar, wie wir das lösen sollen. Nochmal nachdenken!
comment:8 by , 9 years ago
Okay, nochmal eine Analyse:
Verzeichnis /home/teachers/
/home/teachers/gehört Besitzerrootund Gruppewww-data.- Damit sind die Lehrer selbst dort "others" und benötigen das Wechselrecht (
x), sonst können sie nicht in ihr Homeverzeichnis wechseln. - Leserecht (
r) in/home/teachers/brauchen sie dafür nicht. - Schüler sind dort aber auch "others", können also ins Verzeichnis
/home/teachers/wechseln.
Verzeichnisse /home/teachers/<Kürzel>/
- Die einzelnen Lehrerhomeverzeichnisse
/home/teachers/<Kürzel>/gehören Besitzer<Kürzel>und Gruppewww-data. - Da die Lehrer ihre Verzeichnisse selbst besitzen, brauchen sie dort eigentlich nur Schreib-Lese-Wechsel-Rechte für "user".
- Die Gruppe (
www-data) hat Lese-Wechsel-Rechte (-> vermutlich, damit daspublic_htmlvom Webserver gelesen werden kann?) - "others" haben dort derzeit aber ebenfalls Lese-Wechsel-Rechte! -- Warum eigentlich? Vermutlich, damit Lehrer sich untereinander in ihre Ordner schauen können. Warum aber das? Das widerspricht doch ebenfalls dem Datenschutz, oder? Und wollen das die Kollegen überhaupt (ich denke mal, eher nicht...)
- Schüler sind ebenfalls "others" und können damit ebenfalls in die Lehrer-Homes wechseln und Dateien lesen.
Dateien und Verzeichnisse unterhalb von /home/teachers/<Kürzel>/
- Alle Dateien und Verzeichnisse innerhalb der Lehrerhomeverzeichnisse gehören dem jeweiligen Lehrer und der Gruppe "teachers".
- einzige Ausnahme:
public_htmlgehört Gruppe "www-data" (Grund siehe oben) - Nutzer haben die umask
rwx:r-x:r-x. Dateien und Ordner werden also defaultmäßig mit Leserecht für "others" versehen.
Fazit
Der ganze Murks kommt meiner Ansicht nach aus zwei Gründen zustande:
- Es gibt in der LML keine Gruppe "students", so dass Schüler immer "others" sind. Wer hat sich dieses Design eigentlich ausgedacht?
- Eine Gruppe "teachers" gibt es zwar, sie wird aber dadurch ausgehebelt, dass
/home/teachers/und alle Unterverzeichnisse der Gruppe "www-data" gehören.
Ich sehe folgende Lösungsmöglichkeiten:
- Die Verzeichnisse
/home/teachers/<Kürzel>/brauchen meiner Ansicht nach keine Leserechte für others. - Die umask für Lehrer sollte defaultmäßig Leserechte für "others" verbieten.
Beide Maßnahmen würden meiner Ansicht nach das Problem lösen. Einziger Nebeneffekt wäre, dass Lehrer untereinander sich nicht mehr in die Verzeichnisse schauen können.
Bitte um Rückmeldung, ob ich das richtig analysiert habe -- nicht, dass ich nochmal aus versehen falsche Rechte setze.
comment:9 by , 9 years ago
| Resolution: | → erledigt |
|---|---|
| Status: | accepted → closed |
Sophomorix macht tatsächlich alles richtig und die Rechte werden sinnvoll gesetzt. Das Problem ist wohl eher die umask der Nutzer und das Skript deploy-skeleton, weil das die Identität der Nutzer annimmt und dann mit deren umask arbeitet.
-> Folgeticket: #2750
Argh -- das kommt davon, wenn zu viel automatisch passiert...
Das Skript sollte dann mit dem Skript der LML gekoppelt sein (da gibt es nicht zufällig so ein "*.d/"-Verzeichnis)
Denn wahrscheinlich passiert das auch, wenn man
sophomorix-repairvon Hand aufruft, oder?