#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 , 15 years ago
| Cc: | added |
|---|---|
| Status: | new → accepted |
comment:2 by , 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:4 by , 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 , 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-Verzeichnisgehö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 , 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 , 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 , 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-Schulezugreifen 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.studentauch beim Einrichten eines neuen Nutzers abgearbeitet, oder steht das dann in einer anderen Datei?
comment:9 by , 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 , 14 years ago
| Resolution: | erledigt |
|---|---|
| Severity: | → normal |
| Status: | closed → reopened |
Das Problem tritt wieder auf.
comment:11 by , 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:
- Änderung aus changeset 198 wiederherstellen.
- dann
sophomorix-repair --repairhome --studentsausführen
comment:12 by , 14 years ago
| Resolution: | → erledigt |
|---|---|
| Status: | reopened → closed |
Erledigt. Aber das gleiche Problem blüht uns sicher beim nächsten Upgrade wieder.
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/schoolzeigt. 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:
Ich kann sowohl direkt als auch über den Link auf das Verzeichnis zugreifen:
auf einem LtspServer
Jetzt das gleiche auf dem LTServer128a:
Wie Du siehst sind die Links exakt genau so wie auf dem paedml.
Ich kann direkt auf das NFS-gemountete Verzeichnis
/home/share/schoolzugreifen:Über den Link, der auf dieses Verzeichnis weist, aber nicht!
Wieso??
Was übersehe ich denn da?
Hilfe!