close Warning: Can't synchronize with repository "keplertools" (/srv/svn/keplertools does not appear to be a Subversion repository.). Look in the Trac log for more information.

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 Rüdiger Kupper)

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 Rüdiger Kupper, 9 years ago

Description: modified (diff)

comment:2 by Rüdiger Kupper, 9 years ago

Component: sonstiges → Linuxmusterlösung
Owner: changed from netzwerk to bau
Severity: normal → kritisch
Status: new → assigned

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-repair von Hand aufruft, oder?

comment:3 by Rüdiger Kupper, 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 Rüdiger Kupper, 9 years ago

Owner: changed from bau to Rüdiger Kupper
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 Rüdiger Kupper, 9 years ago

Cc: bau added

comment:6 by Rüdiger Kupper, 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!

Last edited 9 years ago by Rüdiger Kupper (previous) (diff)

comment:7 by Rüdiger Kupper, 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 Rüdiger Kupper, 9 years ago

Okay, nochmal eine Analyse:

Verzeichnis /home/teachers/

  • /home/teachers/ gehört Besitzer root und Gruppe www-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 Gruppe www-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 das public_html vom 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_html gehö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.

Last edited 9 years ago by Rüdiger Kupper (previous) (diff)

comment:9 by Rüdiger Kupper, 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

Note: See TracTickets for help on using tickets.