Vorlagen im Klassenarbeitsmodus: //10.16.1.1/tasks wird nicht gemountet

Ok danke, so sieht es aus :

~ # getfacl /var
# file: var
# owner: root
# group: root
user::rwx
group::r-x
other::r-x

~ # getfacl /var/cache/
# file: var/cache/
# owner: root
# group: root
user::rwx
group::r-x
other::r-x

~ # getfacl /var/cache/sophomorix/
# file: var/cache/sophomorix/
# owner: root
# group: root
user::rwx
group::r-x
other::r-x

~ # getfacl /var/cache/sophomorix/tasks/
# file: var/cache/sophomorix/tasks/
# owner: root
# group: root
# flags: --t
user::rwx
group::rwx
other::--x

Gruß

Arnaud

Hallo Arnaud!

Sieht auch gut aus.

Jetzt ist mir in der log-Datei von Arnaud noch etwas aufgefallen:
XXX-profilecopy wird zweimal ausgeführt, einmal mit 001-profilecopy und
dann mit 010-profilecopy.
Steht da zweimal das gleiche drin? (siehe in
/etc/linuxmuster-client/pre-mount.d/ ). Ich vermute eines davon kann man
löschen, dann geht zumindest die Anmeldung schneller.

Wenn das für das Vorlagen-share nichts gebracht hat …

Das Vorlagenverzeichnis ist bei den Betroffenen nur im
Klassenarbeitsmodus nicht verfügbar?
Mit der Fehlermeldung aus /var/log/syslog vom client, die Arnaud am
04.12.17, 14:03 gepostet hat:

lightdm[1214]: (Pam_mount.c.76): mount error(13): Permission denied
(…)
lightdm[1214]: (pam_mount.c.522): mount of tasks failed

Dann wäre auszuprobieren, ob das Script, dass das Passwort des
KA-Benutzers beim Anmelden zurücksetzt, die Ursache ist.
Dazu bitte vorübergehend im Script “/usr/sbin/samba-userlog” auf dem
Server den Teil zum Passwort setzen auskommentieren. Sollte danach so
aussehen:

# change host password if user is a host (more security for exams, see #88)
# if [ -n “$EXAMMODE” -a “$log” = “in” ]; then
# password="$(pwgen -s 24 1)"
# sophomorix-passwd -u “$username” --pass “$password” &> /dev/null
# [ “$hostname” != “$username” ] && sophomorix-passwd -u “$hostname”
–pass “$password” &> /dev/null
#fi

Damit nochmals einen KA-Benutzer (=Rechnername) anmelden und
Vorlagenverzeichnis überprüfen.

Gruß - Rainer

Danke Rainer, ich werde es alles am Montag probieren, und melde ich mich zurück.

Viele Grüße

Arnaud

Hi Rainer

ja, das ganze passiert nur im Klassenarbeitsmodus.

Und es ist nicht nur der Ordner /tasks der nicht eingebunden wird, sondern alle außer /home - ich habe noch zwei selbstdefinierte Ordner daten und linuxopt (siehe unten), die kommen auch nicht „rein“.
Und wie schonmal beschrieben, ich tippe stark auf irgendwas mit Passwort - siehe meine alte Mail: ich kann die Shares von Hand mounten (mit mount -t cifs //10.16… /… -o user=…) wenn ich als user irgendeinen anderen User nehme (meinen eigenen Account, einen Testschüler oder einen workstation-account aus dem gleichen Raum, der sich noch nicht angemledet hat (!), oder sogar den account des betroffenen rechners, wenn ich an der schulkonsole das passwort nach der anmeldung nochmal neu setze)

Gruß
Sascha

Unsere pam_mount.conf.xml

<?xml version="1.0" encoding="UTF-8"?>
<pam_mount>
<debug enable="0" />
<mkmountpoint enable="1" />
<lsof>/usr/bin/lsof %(MNTPT)</lsof>
<fsck>/sbin/fsck -p %(FSCKTARGET)</fsck>
<cifsmount>/usr/sbin/linuxmuster-pam-mount %(SERVER) %(VOLUME) %(MNTPT) %(USER) "user=%(USER),%(OPTIONS)"</cifsmount>
<umount>/usr/sbin/linuxmuster-pam-umount %(SERVER) %(VOLUME) %(MNTPT) %(USER)</umount>
<mntcheck>/bin/mount</mntcheck>
<pmvarrun>/usr/sbin/pmvarrun -u %(USER) -d -o %(OPERATION)</pmvarrun>

<volume options="rw,nosuid,nodev,nobrl" user="*" mountpoint="~/Home_auf_Server" path="%(USER)" server="10.16.1.1" fstype="cifs" />
<volume options="rw,nosuid,nodev" user="*" mountpoint="/home/students" path="students" server="10.16.1.1" fstype="cifs" />
<volume options="rw,nosuid,nodev" user="*" mountpoint="/home/share" path="shares" server="10.16.1.1" fstype="cifs" />
<volume options="rw,nosuid,nodev" user="*" mountpoint="/home/samba/progs" path="pgm" server="10.16.1.1" fstype="cifs" />
<volume options="rw,nosuid,nodev" user="*" mountpoint="/home/samba/daten" path="daten" server="10.16.1.1" fstype="cifs" />
<volume options="rw,nosuid,nodev" user="*" mountpoint="/optServer" path="linuxopt" server="10.16.1.1" fstype="cifs" />
<volume options="rw,nosuid,nodev," user="*" mountpoint="/home/samba/cds" path="cdrom" server="10.16.1.1" fstype="cifs" />
<volume options="rw,nosuid,nodev" user="*" mountpoint="/var/cache/sophomorix/tasks" path="tasks" server="10.16.1.1" fstype="cifs" />
</pam_mount>

Hallo Sascha,

ja, das ganze passiert nur im Klassenarbeitsmodus.

Und es ist nicht nur der Ordner /tasks der nicht eingebunden wird,
sondern alle außer /home - ich habe noch zwei selbstdefinierte Ordner
daten und linuxopt (siehe unten), die kommen auch nicht “rein”.
Und wie schonmal beschrieben, ich tippe stark auf irgendwas mit Passwort

  • siehe meine alte Mail:

im post-exec-Script /usr/sbin/samba-userlog
wir das Passwort, wenn es sich um einen Klassenarbeitsnutzer handelt,
geändert.

# change host password if user is a host (more security for exams, see #88) if [ -n "$EXAMMODE" -a "$log" = "in" ]; then password="$(pwgen -s 24 1)" sophomorix-passwd -u "$username" --pass "$password" &> /dev/null [ "$hostname" != "$username" ] && sophomorix-passwd -u "$hostname" --pass "$password" &> /dev/null fi

Um fest zu stellen, ob das das Problem bei dir ist, dann kommentier das
doch mal aus.

LG

Holger

Hi Holger,
mache ich morgen mal, hat Rainer weiter oben ja auch schon vorgeschlagen. Bin mir fast sicher, dass das helfen wird.

Gruß
Sascha

Guten Morgen,
also, das auskommentieren des “change-password”- Teils in der
/usr/sbin/samba-userlog
behebt das Problem tatsächlich…

Also wird wohl irgendeines der neueren Pakete dafür sorgen, dass der samba-Dienst schneller von der Anmeldung erfährt als das früher der Fall war und deswegen ist das Passwort schon umgesetzt, bevor alles gemountet ist. Oder so.

Ich hab’s für mich jetzt erstmal auskommentiert, ansonsten fällt mir als workaround noch ein (scheint mir aber ein fieser hack zu sein):
(sleep 120 && sophomorix-passwd -u "$username" --pass "$password" &> /dev/null ) &

[ "$hostname" != "$username" ] && (sleep 120 && sophomorix-passwd -u "$hostname" --pass "$p$ ) &

Gruß
Sascha

Hallo alle,

Das gleiche bei uns.

Gruß

Arnaud

Hi.
Ich habe das Problem auch. Und auch bei mir geht es, wenn ich sophomorix-passwd auskommentiere (beide zeilen).

Zudem: Ist das jetzt eigentlich offiziell, dass __austeilen nicht mehr verwendet wird und durch vorlagen_auf_Server ersetzt wurde?
Das sollte mal jemand den Doku-Typen sagen !
VG, Tobias

Hallo nochmal,

jetzt etwas ausführlicher debugged:
für pam_mount.xml

<?xml version="1.0" encoding="UTF-8"?>
<pam_mount>
<debug enable="1" />
<mkmountpoint enable="1"/>
<lsof>/usr/bin/lsof %(MNTPT)</lsof>
<fsck>/sbin/fsck -p %(FSCKTARGET)</fsck>
<cifsmount>/usr/sbin/linuxmuster-pam-mount-cifs %(SERVER) %(VOLUME) %(MNTPT) %(USER) "user=%(USER),%(OPTIONS)"</cifsmount>
<lclmount>/usr/sbin/linuxmuster-pam-mount %(SERVER) %(VOLUME) %(MNTPT) %(USER) "%(OPTIONS)" "%(FSTYPE)" </lclmount>
<umount>/usr/sbin/linuxmuster-pam-umount %(SERVER) %(VOLUME) %(MNTPT) %(USER)</umount>
<mntcheck>/bin/mount</mntcheck>
<pmvarrun>/usr/sbin/pmvarrun -u %(USER) -d -o %(OPERATION)</pmvarrun>

<volume options="rw,nosuid,nodev,nobrl" user="*" mountpoint="~/Home_auf_Server" path="%(USER)" server="10.16.1.1" fstype="cifs" />
<volume options="rw,nosuid,nodev" user="*" mountpoint="/var/cache/sophomorix/tasks" path="tasks" server="10.16.1.1" fstype="cifs" />
</pam_mount>

erhalte ich:

Dec 19 12:11:55 r202-pc01 linuxmuster-pam-mount-cifs: Invoked with: SERVER 10.16.1.1, VOLUME r202-pc01, MNTPT /home/workstations/r202/r202-pc01/Home_auf_Server, USER r202-pc01 OPl
Dec 19 12:11:55 r202-pc01 linuxmuster-pam-mount-cifs: pre-mount sequence: run_hookdir /etc/linuxmuster-client/pre-mount.d r202-pc01 r202-pc01 /home/workstations/r202/r202-pc01/Hol
Dec 19 12:11:56 r202-pc01 crontab[7211]: (root) REPLACE (root)
Dec 19 12:11:56 r202-pc01 linuxmuster-pam-mount-cifs: Executing mount: mount -t cifs //10.16.1.1/r202-pc01 /home/workstations/r202/r202-pc01/Home_auf_Server -o "user=r202-pc01,rw"
Dec 19 12:11:57 r202-pc01 linuxmuster-pam-mount-cifs: post-mount sequence: run_hookdir /etc/linuxmuster-client/post-mount.d r202-pc01 r202-pc01 /home/workstations/r202/r202-pc01/l
Dec 19 12:11:57 r202-pc01 linuxmuster-pam-mount-cifs: Invoked with: SERVER 10.16.1.1, VOLUME tasks, MNTPT /var/cache/sophomorix/tasks, USER r202-pc01 OPTIONS user=r202-pc01,rw,nov
Dec 19 12:11:57 r202-pc01 linuxmuster-pam-mount-cifs: pre-mount sequence: run_hookdir /etc/linuxmuster-client/pre-mount.d r202-pc01 tasks /var/cache/sophomorix/tasks 10.16.1.1 usv
Dec 19 12:11:58 r202-pc01 linuxmuster-pam-mount-cifs: Executing mount: mount -t cifs //10.16.1.1/tasks /var/cache/sophomorix/tasks -o "user=r202-pc01,rw,nosuid,nodev"

und auf der konsole (weil ich su auch mit pam-mount ausgestattet habe):

root@r202-pc01:~# su - r202-pc01
(pam_mount.c:568): pam_mount 2.14: entering session stage
reenter password for pam_mount:
(mount.c:267): Mount info: globalconf, user=r202-pc01 <volume fstype="cifs" server="10.16.1.1" path="r202-pc01" mountpoint="/home/workstations/r202/r202-pc01/Home_auf_Server" cip0
(mount.c:664): Password will be sent to helper as-is.
command: '/usr/sbin/linuxmuster-pam-mount-cifs' '10.16.1.1' 'r202-pc01' '/home/workstations/r202/r202-pc01/Home_auf_Server' 'r202-pc01' 'user=r202-pc01,rw,nosuid,nodev,nobrl'
(mount.c:558): 18 24 0:17 / /sys rw,nosuid,nodev,noexec,relatime shared:7 - sysfs sysfs rw
[snip]
(mount.c:558): 91 24 0:42 / /home/workstations/r202/r202-pc01/Home_auf_Server rw,nosuid,nodev,relatime shared:71 - cifs //10.16.1.1/r202-pc01 rw,vers=1.0,cache=strict,username=r21
(mount.c:267): Mount info: globalconf, user=r202-pc01 <volume fstype="cifs" server="10.16.1.1" path="tasks" mountpoint="/var/cache/sophomorix/tasks" cipher="(null)" fskeypath="(n0
(mount.c:664): Password will be sent to helper as-is.
command: '/usr/sbin/linuxmuster-pam-mount-cifs' '10.16.1.1' 'tasks' '/var/cache/sophomorix/tasks' 'r202-pc01' 'user=r202-pc01,rw,nosuid,nodev'
(mount.c:72): Messages from underlying mount program:
(mount.c:76): mount error(13): Permission denied
(mount.c:76): Refer to the mount.cifs(8) manual page (e.g. man mount.cifs)
(mount.c:558): 18 24 0:17 / /sys rw,nosuid,nodev,noexec,relatime shared:7 - sysfs sysfs rw
[snip]
(mount.c:558): 91 24 0:42 / /home/workstations/r202/r202-pc01/Home_auf_Server rw,nosuid,nodev,relatime shared:71 - cifs //10.16.1.1/r202-pc01 rw,vers=1.0,cache=strict,username=r21
(pam_mount.c:522): mount of tasks failed
command: '/usr/sbin/pmvarrun' '-u' 'r202-pc01' '-d' '-o' '1'
(pmvarrun.c:258): parsed count value 0
(pam_mount.c:441): pmvarrun says login count is 1
(pam_mount.c:660): done opening session (ret=0)

Mir ist nicht klar, wie der Klassenabeitsmodus früher hat funktionierenkönnen, wenn bei Home_auf_Server mount das passwort zurückgesetzt wird. Vllt. war das auf dem Server mal ein prozess, jetzt sind es mehrere? Und bei einem Prozess auth. samba noch mt dem alten Passwort, obwohl es schon geändert wurde?

VG, Tobias

hallo @roesslerrr,

Ich habe den Sinn und Zweck von

# no pammount for second login of domain-user                                                                                                                                      
if [ "`mount | grep /var/cache/sophomorix/tasks`" != "" ]; then exit 0; fi

in /usr/sbin/linuxmuster-pam-mount-cifs und linuxmuster-pam-mount nicht verstanden:

Ist das die policy, dass man sich nicht zweimal anmelden kann oder geht es darum zu verhindern, dass man sich am selben Rechner zweimal anmeldet, oder geht es darum schaden mit weiteren mount-befehlen zu verhindern, falls das doch mal passiert.

Wenn ich die Zeilen auskommentiere und dann mein Home_auf_server mount ans Ende in pam_mount.xml setze, dann tut das mounten wieder wie gehabt.
(Zumindest in meinem Testbetrieb)
Was dann nicht tut, ist das Verlinken von Vorlagen_auf_Server…
scheinbar wird dann das post-mount -script nicht ordentlich ausgeführt. k.A. warum, im log taucht

run_hookdir /etc/linuxmuster-client/post-mount.d r202-pc01 tasks

noch auf, dann passiert aber nichts mehr, manuell kann ich dann den Link als user setzen:

r202-pc01@r202-pc01:~$ ln -s /var/cache/sophomorix/tasks/rooms/r202/ Vorlagen_auf_Server

Aber irgendwie hat es mit Home_auf_Server auch nicht alles gemacht, was es sollte, jedenfalls kann ich trotz o+rwx-Rechten nicht in Home_auf_Server schreiben.

VG, Tobias

Hallo Tobias,

Zudem: Ist das jetzt eigentlich offiziell, dass |__austeilen| nicht mehr
verwendet wird und durch |vorlagen_auf_Server| ersetzt wurde?
Das sollte mal jemand den Doku-Typen sagen !

die bindmount in den home: __austeilen usw. wurden mit 6.2 abgeschafft.
Wie man die Abschaltet steht in der Anleitung zum Upgrade.

LG

Holger

Hallo zusammen,

@alois hat das netterweise mal für die 6.2 (an heilig Abend!) dokumentiert:
http://docs.linuxmuster.net/de/latest/classroom/conduct-test/index.html

(löst natürlich nicht das Problem, was vermutlich ein Bug ist)

VG, Tobias

Hallo!

@Alois, @Holger!

Kann das jemand mal bitte überprüfen, ob das schon an @jeffbeck (in Github) gemeldet wurde. Sitze momentan im Zug und die Verbindung reißt andauernd ab.

Liebe Grüße

Thorsten

Hallo Thorsten,

Kann das jemand mal bitte überprüfen, ob das schon an @jeffbeck
https://ask.linuxmuster.net/u/jeffbeck (in Github) gemeldet wurde.
Sitze momentan im Zug und die Verbindung reißt andauernd ab.

ich schreib es an Rüdiger.

LG

Holger

Hallo!

Ich habe jetzt den Zusammenhang des Problems verstanden und es hängt tatsächlich direkt mit

zusammen.

Wegen der meltdown- und spectre-Problematik habe ich auf den clients einen neuen Kernel installiert indem ich den hold entfernt habe
(aptitude unhold linux-generic linux-headers-generic linux-image-generic)
und einen dist-upgrade durchgeführt habe.

Mit den Kernel ab 4.4.0-87 werden die shares auf dem Server nicht mehr in einem samba-Prozess auf den clients verbunden, sondern jedes share hat einen eigenen Prozess. Dadurch wird vor dem Verbinden des letzten shares schon ein post-mount-Script gestartet, das bei Klassenarbeitsbenutzern das Passwort auf einen Zufallswert setzt und damit alle weiteren Verbindungen fehlschlagen.
Tatsächlich habe ich den Vorschlag von Sascha Mertens aufgegriffen und damit das Script auf dem Server
/usr/sbin/samba-userlog angepasst von:
„sophomorix-passwd -u „$username“ --pass „$password“ &> /dev/null“
zu:
„( sleep 30 && sophomorix-passwd -u „$username“ --pass „$password“ &> /dev/null ) &“
Den zweiten Teil der Passwortänderung mit „$hostname“ != „$username“ hab ich gelassen, da dann eh der falsche Benutzer angemeldet ist.

Meine Tests waren erfolgreich und ich denke das löst das Problem.

Bleibt das Problem, dass die Schulkonsole mit der Ausgabe von „smbstatus -b“ offensichtlich an ein paar Stellen auch nicht zurecht kommt. Ist dafür der alias-Vorschlag von Arnaud eine Lösung?

Gruß - Rainer

Hallo Rainer,

Was für eine Arbeit nur wegen ein Kernel-Update, aber Glückwunsch für deine Arbeit :slight_smile:

Mein Alias ist gedacht für eine schnelle Kontrolle auf die Serverkonsole, d.h. mit einem “angenehmen” Layout. Für eine Nutzung in der Schulkonsole, um Parameter zu holen, soll es noch angepasst werden. Es kommt darauf an, in welche Form die Schulkonsole die Daten verarbeitet, das weiß ich nicht.

Nur so als Info : ich musste auch in Nagios die max Anzahl aller Prozesse erhöhen ( jetzt 450 ), ansonstens mit der Anzahl von Samba-Prozesse kriege ich alle Stunde ein Warning.

Gruß

Arnaud

Hallo Arnaud!

Die Anzahl der maximalen Prozesse hab ich in nagios auch hochgestellt - von 450 auf 2100.
Mal sehen ob es reicht.

Wegen der Schulkonsole:
Ich denke dort wird ebenso “smbstatus -b” aufgerufen und verarbeitet.
So wird im aktuellen Raum für den Rechner an dem ich angemeldet bin mein account 7x angezeigt (macht 7 Zeilen). Das entspricht der Anzahl der Einträge die “smbstatus -b” für meinen account ausgibt.
Bei einem Schüleraccount hat “smbstatus -b” 6 Einträge und in der Schulkonsole kommt für den Schülerrechner der Schüleraccount 6x (6 Zeilen).

Außerdem steht am Anfang der Seite “aktueller Raum”:
“Aktueller Raum: j1009
Nutzung: Rainer Roessler, Rainer Roessler, Rainer Roessler, Rainer Roessler, Rainer Roessler, Rainer Roessler, Rainer Roessler ist in Raum j1009 angemeldet, kein Unterricht.”

Nicht schön. :frowning:

Gruß - Rainer

Hallo,

Nur so als Info : ich musste auch in Nagios die max Anzahl aller
Prozesse erhöhen ( jetzt 450 ), ansonstens mit der Anzahl von
Samba-Prozesse kriege ich alle Stunde ein Warning.

ich musste in Nagios auch mit der Prozessanzahl hoch, weil Nagios immer
meckerte.

Ich habe aber keinen Kernel 4.4.0-87 am Linuxclient, weil ich noch immer
auf 12.04 bin (duck und wech). Hm…

Anderer Effekt bei mir:
Das Doppelanmeldungsskript von Jesko, das ja auch über den smbstatus
geht, meldet in letzter Zeit immer wieder seltsame Doppelanmeldungen,
die ich so nicht glauben kann. (Gleichzeitig in mehreren PC-Räumen an
dort jeweils mehreren PCs). Leider kam ich noch nicht dazu, das mal über
die Userlogins nachzuschauen.

Viele Grüße
Steffen

Hi Rainer,

finde das wie Sascha auch, eher „hässlich“. Du vertraust darauf, dass innerhalb von 30 Sekunden die 2-3 mount-Vorgänge funktionieren. Das schreit ja nach scheinbar willkürlichem Verhalten, sobald jemand ein „schlechtes Netz“ hat, z.B. WLAN?
Aber gut „Schönheit“ liegt im auge des Betrachters, ich habe ja auch keinen besseren Vorschlag.
Zumindest das S-Team sollte Bescheid wissen, dass sporadisches „Nicht-mounten“ von Vorlagen im Klassenarbeitsmodus bei ganz mieser Netzwerkverbindung passieren könnte.

Danke, dass du es geklärt hast!
Wird es ein neues Paket geben? Oder müssen wir auf anderem Wege „known bugs“ den workaround verbreiten?

VG, Tobias