WebuiUpload teacher Ordner Rechte

Hallo @Arnaud
seit dem Update auf 7.1 habe ich Probleme beim Austeilen. Hier die Fehlermeldung:

Traceback (most recent call last):
  File "/usr/local/lib/python3.6/dist-packages/aj/api/endpoint.py", line 75, in wrapper
    result = fx(self, context, *args, **kwargs)
  File "/usr/lib/linuxmuster-webui/plugins/lmn_common/views.py", line 64, in handle_api_create_dir
   os.makedirs(filepath)
   File "/usr/lib/python3.6/os.py", line 210, in makedirs
   makedirs(head, mode, exist_ok)
  File "/usr/lib/python3.6/os.py", line 220, in makedirs
    mkdir(name, mode)
   PermissionError: [Errno 13] Keine Berechtigung: '/srv/webuiUpload/default-school/teacher'

Das Verzeichnis gibt es aber:

root@server:/srv# ls -la
[...]
drwxrwxrwx  3 root root  4096 Nov 22  2020 webuiUpload

root@server:/srv/webuiUpload# ls -la
drwxr-xr-x 3 root root 4096 Nov 22  2020 default-school

root@server:/srv/webuiUpload/default-school# ls -la
drwxrwxrwx 8 root root 4096 Nov 30 09:26 teachers

root@server:/srv/webuiUpload/default-school/teachers# ls -la
insgesamt 32
drwxrwxrwx 8 root     root             4096 Nov 30 09:26 .
drwxr-xr-x 3 root     root             4096 Nov 22  2020 ..
drwxrwxrwx 2 LMN\bi   LMN\role-teacher 4096 Dez 10 10:50 bi
drwxrwxrwx 2 LMN\fue  LMN\role-teacher 4096 Dez  8 14:22 fue
drwxrwxrwx 2 LMN\ne   LMN\role-teacher 4096 Nov 30 09:26 ne
drwxrwxrwx 2 LMN\re   LMN\role-teacher 4096 Nov 19 13:55 re
drwxrwxrwx 2 LMN\wb   LMN\role-teacher 4096 Sep 13 12:12 wb

Fehlt bei „default school“ noch das w? Kann ich das einfach mit chmod 777 machen?

LG
Max

Hallo Max,

Der richtige Pfad lautet /srv/webuiUpload/default-school/teacher ohne ‚s‘, ich verstehe hier nicht warum du ein ‚s‘ hast.

Auf gar keinen Fall. Es gibt mehrere Rechten-Schicht mit Samba, und das kann nur Chaos bringen. Alle Verfahren mit chmod sind uralte Verfahren die man auf einem SambaServer vergessen sollte.

Gruß

Arnaud

Hallo Arnaud,

wir sind hier zwar im Thread zur 7.1, aber ich denke, der Pfad hat sich von der 7.0 zur 7.1 nicht geändert.
Bei meiner Installation der Version 7 im Sommer 2021 gab es genau mit diesem Ordner (Existenz und Rechte) Probleme, siehe Austeilen über WebUI funktioniert nicht: This is likely a bug

Damals war die Empfehlung, den Ordner teachers zu erzeugen und ihm die Rechte 777 zu geben. Dieser Vorgehen war bei einigen Anwendern notwendig.
Wie kann ich nun prüfen, ob es in den Rechte-Schichten des Samba Probleme gibt?

Das Austeilen und Einsammeln insbesondere von Ordnern (20 SuS, je ein Ordnder mit 10 kleinen Dateien) dauert bei mir sehr lange, etwa 6min.
Ist das normal und könnte das damit zusammenhängen?

Grüße
Sven
@Moderatoren: falls das hier nicht reinpasst, bitte abspalten

Hallo Sven,

Das war, nach meiner Erfahrung, keine Empfehlung, sondern die Beschreibung von jemanden der es so „gelöst“ hat. Dieses Verfahren sollte sich nicht verbreiten.

Ich war bis jetzt für die ACLs nicht zuständig, ich glaube @Till könnte vielleicht genauer antworten.

Jetzt haben alle User alle Rechte auf diesen Ordner. Ich glaube nicht, dass es wirklich problematisch wäre.

Ich glaube nicht, dass es daran liegt, aber wie ich es seit 2 Jahre sage, war ich bis jetzt nicht im SessionModul wirklich involviert.

Gruß

Arnaud

Der Pfard wird mittels der Nutzer Role zusammengebaut. Entsprechend wird auch die ACL gebaut, hier im Beispiel wie zu sehen für die Gruppe role-teacher.

Die Empfehlung die Rechte 777 zu geben haben wir nie herausgegeben. Das kann man schon machen, funktioniert ist aber wie das Haus nicht abschließen.

DIe Geschwindigkeit ist generell langsam, das steht noch auf der Todo Liste. Es wird jede Datei einzeln seriell übertragen, das muss überarbeitet werden.

Hallo Arnaud, hallo Till,

ich möchte, dass meine Installation keine „Mängel“ hat, ich will also mein falsches Vorgehen ausbessern: welche Rechte haben die Ordner in einer „ordentlichen“ Installation und welche ACLs haben sie?

Grüße
Sven

Hallo Sven,

Bei mir hat der Ordner /srv/webuiUpload/default-school/teacher/ die Rechte 770 und :

$ getfacl /srv/webuiUpload/default-school/teacher

liefert die gleiche Rechte wie hier.

Gruß

Arnaud

Hallo,

ohne das genauer durchleuchtet zu haben, bin ich da auch schon mal drübergestolpert. Hängt das vielleicht noch damit zusammen?

Viele Grüße
Klaus

Moin,
wir haben zwar derzeit kein Problem und ich hab auch keine Lösung, aber weil ich gerade aus Neugier mal nachgesehen haben: bei uns heisst der Ordner auch
..../teachers , also mit s und er hat die Rechte 777. Es ist die LML 7.0, installiert in den vergangenen Sommerferien und ich bin mir relativ (*) sicher, dass wir das nicht händisch so gesetzt haben.

Gruß
Sascha

(*) wobei ich da nochmal nachfragen muss…

Hallo,

ich wollte mal bei mir (ca. 2 Jahre alte LML 7.0 Installation) die Rechte prüfen und habe dabei festgestellt, dass es außer /srv/webuiUpload/ keine weiteren Verzeichnisse gibt. Liegt es daran, dass die KuK die Webui nicht zum Austeilen/Einsammeln benutzen oder muss ich da noch etwas nachinstallieren, wie z. B. auf git vorgeschlagen:

/usr/lib/linuxmuster-webui/etc/create_webuiUploadFolder.sh

Momentan läuft die linuxmuster-webui7 1.0.156-1 .

Viele Grüße

Wilfried

Heyho,
wissen tue ich es nicht aber vermuten: da bei uns dort nur eine Handvoll Lehrer Verzeichnisse hat, bei denen ich von den meisten weiss, dass sie den Klassenarbeitsmodus (und damit austeilen) schon verwendet haben, gehe ich davon aus, dass ein jeweiliges Unterzerzeichnisse in webuiUpload erstellt wird, wenn jemand das erste Mal etwas uploaded.Aber das müsstest Du ja ausprobieren können, einfach mal eine datei in der webui verteilen, indem du sie vorher über die webui uploadest – wenn das funktioniert und du danach ein Unterverzeichnis mit deinem Usernamen hast, hab ich recht :wink:

Gruß
Sascha

Genauso ist es.

Zur Erklärung:
Beim Upload werden die Dateien auf den Server welcher die Webui beinhaltet hochgeladen. Dies ist dann entsprechend /srv/webuiUpload/$school/$role/$username. Von da wird per sophomorix-transfer die Datei in den transfer Ordner des Lehrer verschoben.
Der Ordner wird also nur angelegt wenn ein Kollege Daten über die Webui hochgeladen hat.

Es kann natürlich sein, dass manche alte Installation noch einen alten Ordner hat wo wir nicht den Pfad dynamisch über die Rolle konstruiert haben.

Gruß,
Andreas

Hallo,

der Versuch hat zweierlei ans Tageslicht gebracht:

  1. Offensichtlich nutzen die KuK die Möglichkeiten der Webui in diesem Bereich nicht (bin selbst nicht mehr aktiv an der Schule), denn sonst hätten sie
  2. den Fehler bemerken müssen: Beim Versuch Dateien an alle Teilnehmer eines Kurses auszuteilen kommt ein Fenster, dass im Wesentlichen folgende Fehlermeldung enthält:
    PermissionError: [Errno 13] Keine Berechtigung: '/srv/webuiUpload/default-school'
    Das Fenster lässt sich schließen und man kann mit „Datei hochladen“ fortfahren. Aber nach der Dateiauswahl kommt ein weiteres Fenster mit u. a. dieser Meldung:
    FileNotFoundError: [Errno 2] Datei oder Verzeichnis nicht gefunden: '/srv/webuiUpload/default-school/teachers/lawil/test1'
    Auch dieses Fenster kann ich schließen, aber die folgende Upload-Statusanzeige bleibt und lässt sich nicht mehr abrechen. Man ist gezwungen, das Browserfenster zu schließen und die Webui neu zu starten.

Was kann ich tun, evtl. doch „/usr/lib/linuxmuster-webui/etc/create_webuiUploadFolder.sh“?

Viele Grüße

Wilfried

Hi Andreas,
ok, dass heisst eigentlich wird der Unterordner
/srv/webuiUpload/teacher
erst angelegt, wenn das erste mal ein Lehrer (-> Gruppe teacher) einen webui-upload macht ?

Und „früher“ war das „vielleicht“ mal anders ? So viel früher kann das nicht gewesen sein, unsere Installation ist gerade mal 8 Monate alt und bei uns heisst der Ordner noch „…/teachers“
Was ich mich dann aber frage, wenn „jetzt“ (also nach der Umstellung von 7.0 auf 7.1 ?) auch der Ordner „/srv/webuiUpload/teacher“ dynamisch erzeugt wird, dann müsste das ja einfach klaglos passieren und der „alte“ Ordner teachers müsste überflüssig werden (und in Zukunft selig vor sich hinschimmeln)…
Dieser Thread hat aber mit der Fehlermeldung begeonnen, dass beim Anlegen eines Ordners dafür die Berechtigungen fehlen…

   PermissionError: [Errno 13] Keine Berechtigung: '/srv/webuiUpload/default-school/teacher'

…also ist da möglicherweis ein Bug drin. Der Ordner /srv/webuiUpload/default-school/ ist ja nur für root beschreibbar, hat die Webui die entsprechenden Rechte, wenn sie den Ordner „teacher“ anlegen will ?

Entschuldigt, wenn ich hier so penetrant reingrätsche, aber ich will auch auf Webui 7.1 umsteigen (weil schon linbo auf 7.1 hochgezogen) und da möchte ich mir nicht sehenden Auges Probleme einfangen.

Gruß
Sascha

Naja so ganz stimmt das wohl nicht. Der Ordner webuiUpload sollte durch das poistinstall der Webui angelegt werden. Das macht /usr/lib/linuxmuster-webui/etc/create_webuiUploadFolder.sh

Hierbei müssen natürlich auch die Rechte entsprechend der ntacl Datei gesetzt werden, also Lehrern hier schreibrechte geben.

Die Dateioperationen laufen im Kontext des angemeldeten Nutzers, deswegen gibt es hier warscheinlich ein Permission Denied.

Mach doch bitte mal ein getfacl /srv/webuiUpload/

Moin

Mach doch bitte mal ein getfacl /srv/webuiUpload/

Das müsste jetzt letzendlich Max machen, der hatte den Fehler gepostet…ich bin ja noch gar nicht umgezogen…aber ja, wenn ich mir das /usr/lib/linuxmuster-webui/etc/create_webuiUploadFolder.sh (auf git) ansehe dann müsste das den evtl. vorhandenen alten Ordner wegmachen und den neuen anlegen (mit anderen Rechten als vorher, siehe unten).

Das würde dafür sprechen, das bei Max das postinst ebendieses Skript nicht oder nicht richtig ausgeführt hat…ein beherztes händisches ausführen von
/usr/lib/linuxmuster-webui/etc/create_webuiUploadFolder.sh
müsste da abhelfen, oder ?

Gruß
Sascha

P.S. Rechte bei uns ( webui 7 version 1.0.156-1)

getfacl: Entferne führende '/' von absoluten Pfadnamen
# file: srv/webuiUpload/
# owner: root
# group: root
user::rwx
group::r-x
other::r-x

und

getfacl: Entferne führende '/' von absoluten Pfadnamen
# file: srv/webuiUpload/default-school/
# owner: root
# group: root
user::rwx
group::r-x
other::r-x

Hi Wilfried,
wenn Du die 1.0.156-1 hast, dann gibt es bei Dir das Skript create_webui usw gar nicht. Außerdem sagt Deine Fehlermeldung, dass es nach einem Unterordner „teachers“ sucht, das genannte Skript würde aber sowieso nur eine Verzeichnis „teacher“ anlegen, und Dir nicht helfen…Flucht nach vorne wäre die neue Webui zu installieren und zu schauen, ob dabei alles „geradegezogen“ wird.
Wenn Du das nicht willst, würde ich mal schaeuen, ob Du srv/webuiUpload/default-school/teachers hast…wenn nicht, leg es an. Dann mach ein chmod 777 auf /srv/webuiUpload/default-school/teachers, dann sieht es so aus wie bei uns (gleiche linbo version) und bei uns funktionierts :wink:
Und sobald Du auf die aktuellere Version der webui umsteigst sollte dieses Skript (das du noch gar nicht hast) den webui-Ordner sowieso löschen und neu anlegen, dann sind alle dreckigen hacks beseitigt.

Gruß
Sascha

Hallo Sascha,

letztendlich habe ich deinen Ratschlag umgesetzt und es funktioniert.

Viele Grüße

Wilfried

N’Abend,
ich habe jetzt auch mal das Upgrade gemacht und da ich vorgewarnt war, habe ich direkt nachgesehen…

…und der ursprüngliche Ordner /srv/webuiUpload/default-school/teachers ward unangetastet!

Dementsprechend habe ich auch den „permission denied“ Fehler beim austeilen bekommen. Nach einem händischen Aufruf von create_webuiUploadFolder.sh war der Ordner webuiUpload dann neu erstellt und leer. Nach dem ersten Austeilen gab es dann auch den Unterordner default-school/teacher. Kleiner Schönheitsfehler dabei - die beiden Ordner gehörten dem Lehreraccount, mit dem ich ausgeteilt habe – funktionierent tut es (auch für andere lehrer), aber root wäre da als besitzer sinnvoller.

Ich würde also diagnostizieren, dass der Aufruf von create_webuiUploadFolder.sh im postinst nicht stattfindet oder nicht funktioniert. Ich hätte gerne direkt im .deb nachgeschaut, aber unter /var/cache/apt/archives war das irgendwie nicht.

Wenn die fragliche postinst-Datei aber diejenige ist, die man hier auf github findet - da habe ich keinen (direkten) Aufruf des besagten Skripts finden können…

Gruß
Sascha

Hallo Max,

ich habe auch gerade ein update gemacht und das gleiche problem, war aber durch diesen thread vorbereitet.
Lass einmal das Skript
/usr/lib/linuxmuster-webui/etc/create_webuiUploadFolder.sh
laufen, dann funktioniert das Austeilen wieder.

Gruß
Sascha