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 15 years ago

Closed 14 years ago

Last modified 14 years ago

#347 closed Defekt (erledigt)

immer noch kein Zugriff für Schüler auf den Taschserver

Reported by: pal Owned by: Rüdiger Kupper
Priority: bald erledigen Milestone:
Component: Ich kenne die passende Komponente nicht. Severity: beeinträchtigt den Unterricht einiger Lehrer
Keywords: Cc: bau

Description

Hallo Rüdiger,

ich habe Zugriff und das Texen funktioniert einwandfrei.

Aber die Schüler haben immernoch kein Zugriff.

Gruß Ruben

Change History (13)

comment:1 by Rüdiger Kupper, 15 years ago

Cc: bau added
Status: new → accepted

Hallo Jens, da brauch ich mal Deine Hilfe. Ich vertsh's einfach nicht.

Jeder Nutzer hat einen Link ~/__tauschen/tausch-Schule, der auf /home/share/school zeigt. Dieser Link wird offenbar auf dem paedml direkt anders interpretiert als auf einem LtspServer:

auf dem paedml

Wenn ich mich direkt auf dem paedml als Schüler anmelde, sehe ich folgendes:

12:15/0 [bischofff@paedml] ~ $ ls -l ~/__tauschen
insgesamt 4
drwxr-sr-x 2 bischofff teachers 4096 2011-03-28 09:34 POOL 2011
lrwxrwxrwx 1 root      teachers   23 2011-08-26 13:02 tausch-10c -> /home/share/classes/10c
lrwxrwxrwx 1 root      teachers   18 2008-08-27 12:22 tausch-Schule -> /home/share/school

Ich kann sowohl direkt als auch über den Link auf das Verzeichnis zugreifen:

12:16/1 [bischofff@paedml] ~ $ touch /home/share/school/test
12:17/0 [bischofff@paedml] ~ $ touch ~/__tauschen/tausch-Schule/test

auf einem LtspServer

Jetzt das gleiche auf dem LTServer128a:

bischofff@LTServer128a:~$ ls -l ~/__tauschen
total 4
drwxr-sr-x 2 bischofff teachers 4096 2011-03-28 09:34 POOL 2011
lrwxrwxrwx 1 root      teachers   23 2011-08-26 13:02 tausch-10c -> /home/share/classes/10c
lrwxrwxrwx 1 root      teachers   18 2008-08-27 12:22 tausch-Schule -> /home/share/school

Wie Du siehst sind die Links exakt genau so wie auf dem paedml.

Ich kann direkt auf das NFS-gemountete Verzeichnis /home/share/school zugreifen:

bischofff@LTServer128a:~$ touch /home/share/school/test

Über den Link, der auf dieses Verzeichnis weist, aber nicht!

bischofff@LTServer128a:~$ touch ~/__tauschen/tausch-Schule/test
touch: cannot touch `/home/students/10c/bischofff/__tauschen/tausch-Schule/test': Permission denied

Wieso??
Was übersehe ich denn da?

  • der Link ist der gleiche
  • das Zielverzeichnis ist gemountet und lesbar
  • wieso kann ich über den Link nicht zugreifen?

Hilfe!

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

Argh!!

Gerade habe ich der Schülerin einen Link eingerichtet, der genau so aussieht wie der im __tauschen-Verzeichnis:

erster Link:

bischofff@LTServer128a:~$ ls -l __tauschen/tausch-Schule
lrwxrwxrwx 1 root teachers 18 2008-08-27 12:22 __tauschen/tausch-Schule -> /home/share/school

zweiter Link:

bischofff@LTServer128a:~$ ls -l school
lrwxrwxrwx 1 root teachers 19 2011-11-22 12:35 school -> /home/share/school/

Über den einen Link kann ich zugreifen, über den anderen nicht:

bischofff@LTServer128a:~$ touch school/test
bischofff@LTServer128a:~$ touch __tauschen/tausch-Schule/test
touch: cannot touch `__tauschen/tausch-Schule/test': Permission denied

???

comment:3 by Rüdiger Kupper, 15 years ago

Ich glaube, der angemessene Kommetar wäre hier:

WTF...?

comment:4 by Rüdiger Kupper, 15 years ago

Erkenntnis: Es ist das "t"-Flag in den Berechtigungen für "andere" im übergeordneten Verzeichnis:

bischofff@LTServer128a:~$ ls -ld __tauschen
drwxr-srwt 3 administrator teachers 4096 2011-11-22 13:15 __tauschen
         ^

Das stört auf dem lokalen Filesystem überhaupt nicht, der NFS-Dämon scheint das aber nicht zu mögen. Wenn ich das t-Flag entferne, geht der Zugriff über den Link, der in diesem Verzeichnis steht!

comment:5 by Rüdiger Kupper, 15 years ago

Puh, bin fündig geworden. Offenbar gibt es eine Sicherheitslücke, die man ausnutzen kann, wenn ein Link in einem welt-schreibbaren Verzechnis mit "t"-Bit über NFS exportiert wird.

Ich verstehe zwar die Sicherheitslücke nicht, doch macht der NFS-Dämon anscheinend folgende Restriktionen, um die Lücke zu vermeiden:

Zitat von ​https://lkml.org/lkml/2010/5/30/144
The solution is to permit symlinks to only be followed when outside a sticky
world-writable directory, or when the uid of the symlink and follower match,
or when the directory owner matches the symlink's owner.

Der NFS-Dämon verbietet also, solchen Links zu folgen. Mögliche Kobinationen sind aber:

  • das t-Bit ist nicht gesetzt (fällt für uns weg, denn sonst können andere Schüler die Dateien löschen, die ein Schüler im Tauschverzeichnis anlegt)
  • das Verzeichnis ist nicht Welt-schreibbar (fällt für uns auch weg, denn Schüler sind "andere" und können nur dann ins Tauschverzeichnis schreiben)
  • der Nutzer, der dem Link folgt ist der gleiche, der den Link angelegt hat (fällt für uns ebenfalls weg, denn die Schüler folgen dem Link)
  • das übergeordnete __tauschen-Verzeichnis gehört dem gleichen Nutzer wie der Link darin.

Der letzte Fall ist bei uns nicht erfüllt, denn der __tauschen-Ordner gehört administrator, der Link darin gehört aber root. Hier können wir vielleicht ansetzen!

Frage: Welche Bedeutung hat eigentlich der Nutzer "administrator"? Ist das so eine Art root für die Linuxmusterlösung? Würde es etwas ausmachen, wenn der Link z.B. auch administrator gehören würde, oder das __tauschen-Verzeichnis root?

Bestätigt
Wenn ich den Link dem Nutzer administrator übereigne, geht der Zugriff!

comment:6 by Rüdiger Kupper, 15 years ago

Hm, warum ist das ~/__tauschen-Verzeichnis überhaupt welt-schreibbar? Sollen die Schüler in diesem Verzeichnis Dateien anlegen können?

comment:7 by Rüdiger Kupper, 15 years ago

@bau: sophomorix-repair richtet das Verzeichnis ~/__tauschen ein. Es legt aber nicht die Links darin an. Weißt Du, wer dafür zuständig ist?

comment:8 by Rüdiger Kupper, 15 years ago

Resolution: → fixed
Status: accepted → closed

Ich habe die sophomorix-Konfiguration unter Versionsverwaltung gestellt: source:keplertools/sophomorix/trunk.

Dann habe ich die Konfigurationsdatei repairhome.student geändert, so dass das __tauschen-Verzeichnis in den Schülerverzeichnissen dem Nutzer root gehört: changeset:198/keplertools.

Dann habe ich

sophomorix-repair --repairhome --students

ausgeführt, das die Besitzrechte des __tauschen-Verzeichnisses im Home aller Schüler entsprechend abgeändert hat.

Jetzt sollte der NFS-Dämon den Schülern erlauben, den Link zum Schultauschverzeichnis zu benutzen.

@pal
Bitte bestätigen, dass Schüler jetzt auf den Schultauschordner über den Link __tauschen/tausch-Schule zugreifen können.
@bau
Zu bestätigen bleibt, ob auch neu eingerichtete Schülernutzer das Verzeichnis mit den geänderten Rechten erhalten (d.h., wird die Konfigurationsdatei repairhome.student auch beim Einrichten eines neuen Nutzers abgearbeitet, oder steht das dann in einer anderen Datei?

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

Bestätigt durch Anlegen eines neuen Testschülers: Auch neu angelegte Schülernutzer erhalten die geänderten Rechte auf dem __tauschen-Ordner.

comment:10 by Rüdiger Kupper, 14 years ago

Resolution: erledigt
Severity: → normal
Status: closed → reopened

Das Problem tritt wieder auf.

comment:11 by Rüdiger Kupper, 14 years ago

Bingo: Meine Änderung in changeset:198/keplertools wurde beim Update der Linuxmusterlösung auf PädML5 wieder rückgängig gemacht.
-> Todo:

  1. Änderung aus changeset 198 wiederherstellen.
  2. dann sophomorix-repair --repairhome --students ausführen

comment:12 by Rüdiger Kupper, 14 years ago

Resolution: → erledigt
Status: reopened → closed

Erledigt. Aber das gleiche Problem blüht uns sicher beim nächsten Upgrade wieder.

Note: See TracTickets for help on using tickets.