• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

webdav-Verzeichnis automatisch mounten

Olaf123

Member
Hallo!

Ich möchte eine Webdav-Freigabe beim User-Login in KDE automatisch mounten, mit den Rechten des jeweiligen Users, d.h. Username+Passwort des KDE-Logins (ohne dies erneut angeben zu müssen).
Also irgendwas in der Art von /pfad/webdav-freigabe blubb /home/gemountete-freigabe blablubb.

Mir wurde diesbzgl. pam_mount genannt, ich finde jedoch keine wirkliche Beschreibung zur Vorgehensweise zu webdav+pam_mount.

Kann mir jemand erklären, was wo definiert werden muss, oder eine andere Lösung nennen?!

Gruß
Olaf
 

Obi-Wahn

Hacker
Ich hatte hier schon mal damit herum gespielt: http://www.linux-club.de/viewtopic.php?f=4&t=100809
Bin dabei aber auch nicht zu einem perfekten Ergebnis gekommen.
 
OP
O

Olaf123

Member
Hallo!

Ja, den Beitrag hatte ich bereits gefunden/gelesen.
Um es mit Deinen Worten auszudrücken: mir ist es eigentlich auch "wumpe", womit ich das mounte, Hauptsache das funktioniert automatisch, ohne dass der User nochmal seinen Namen + Passwort eingeben muss.

Wie ist das mit dem Autostart-Script, mountet das dann mit den Rechten des Users ohne weitere Eingaben?
Falls ja, wie muss das genau aussehen? Einfach den normalen mount-Befehl in das Script?
Und wo müsste das Script hin, so dass es bei jedem User bzw. jedem neu erstellten User automatisch übernommen wird?

Gruß
Olaf
 

Obi-Wahn

Hacker
Wenn du für alle (neue) User ein Zugang haben willst, brauchst du ja jedes Mal das jeweilige Passwort. Ich weiß nicht, wie man das automatisieren kann. Oder greifen alle auf ein einziges Verzeichnis zu?
 
OP
O

Olaf123

Member
Hallo!

Ja, das gleiche Verzeichnis. Aber zur Verfügung gestellt von einer Software (egroupware). Benutzername + Passwort sind zwar identisch mit denen der User des Rechners, aber naja, ob das was für webdav bringt ..?!

Ich glaube, ich bin in einer Sackgasse gelandet. Unglaublich, dass man sich für jeden Kram immer wieder mit Benutzernamen und Passwort einloggen muss, anstatt sowas über eine einmalige Anmeldung realisieren zu können.

Gruß
Olaf
 

Obi-Wahn

Hacker
Na gut, irgendwo muss die Groupware den Benutzernamen und das Passwort ja auch speichern. Guck mal hier: Das könnte was sein: http://www.egroupware.org/index.php?page_name=wiki&wikipage=WebDav Einfach wird es dadurch aber nicht. ;)
 

tomm.fa

Administrator
Teammitglied
Als Beispiel könnte ich dir aufzeigen, wie ich auf mein GMX Mediacenter zugreife, per Eintragung in der fstab und ohne jedesmal das Passwort (welches dann aber für (fast) jeden sichtbar ist) eingeben zu müssen.
Code:
zypper in wdfs
Zugriffspunkt (Mountpoint) erstellen.
Code:
mkdir /home/Benutzer/gmx
(Der Ordner/Name gmx ist anzupassen. Mann kann den Punkt auch unter /mnt oder /media anlegen, dann sind nur die Rechte anzupassen.)

fstab:
Code:
wdfs#https://mediacenter.gmx.net /home/Benutzer/gmx fuse auto,users,rw,username=#####@gmx.eu,password=####,nonempty 0 0
(Dieses ist eine Zeile.)
Damit kann ich, nachdem ich mit dem Internet verbunden bin, sofort über den Dateiverwalter (z.B.: PCmanfm) auf mein Mediacenter bei GMX zugreifen.
 

Obi-Wahn

Hacker
Nach wdfs steht eine Raute #. Ist das korrekt? Die anderen fstab-Einträge sehen anders aus und auch in "meiner" alten Anleitung gab es keine Raute.
 

tomm.fa

Administrator
Teammitglied
Obi-Wahn schrieb:
Nach wdfs steht eine Raute #. Ist das korrekt?
Ja. Ohne wdfs# hat es nicht funktioniert (frag mich bitte nicht weshalb, habe auch nicht von allen Dingen eine Ahnung), ohne Raute kann ich ja noch ausprobieren. Bin auch noch verschiedene Möglichkeiten und Anleitungen am testen.
 
OP
O

Olaf123

Member
Hallo!

Obi-Wahn schrieb:
Na gut, irgendwo muss die Groupware den Benutzernamen und das Passwort ja auch speichern.)
Ja, daher authentifiziert meine (Test-)egroupware gegen den Mailserver des Servers, auf dem sie selbst auch läuft. Dadurch habe ich zumindest die Passwörter von KDE-Usern und egroupware-Usern synchron.

Obi-Wahn schrieb:
Guck mal hier: Das könnte was sein: http://www.egroupware.org/index.php?page_name=wiki&wikipage=WebDav Einfach wird es dadurch aber nicht. ;)


Mein Englisch ist nicht so besonders, aber so wie ich das sehe, steht dort gar keine Lösung. Im ersten Teil geht es -glaube ich- nicht um den egroupware-eigenen Webdav-Server, sondern um egroupware als Webdav-Client, oder wie auch immer.
Im zweiten Teil (Authentication) steht das Wichtigste im letzten Satz:
"... Ideally we would figure out a way to authenticate against eGroupware itself."

Ich schlussfolgere mit meinem miserablen Englischkenntnissen, dass das, was die Lösung sein könte, bisher nicht gefunden wurde. Vielleicht liege ich aber auch völlig daneben.


timm.fa:
Ich suche eine universelle Lösung für alle User des Rechners. Bei Deinem Vorgehen müsste ich die Passwörter der User in die fstab eintragen, was u.a. Änderungen der Passwörter der User verkomplizieren würde.

Gruß
Olaf
 

tomm.fa

Administrator
Teammitglied
Olaf123 schrieb:
tomm.fa:
Ich suche eine universelle Lösung für alle User des Rechners. Bei Deinem Vorgehen müsste ich die Passwörter der User in die fstab eintragen, was u.a. Änderungen der Passwörter der User verkomplizieren würde.
Das war meine Grundlage: http://bobpeers.com/linux/mount.php#mountingDAV
Nur hat es ohne die Eintragung des Passwortes in fstab nicht so richtig funktioniert und es wurde u.a. nicht nach diesem gefragt. Wie schon erwähnt, werde ich auch noch weiter probieren.
 

Obi-Wahn

Hacker
Olaf123 schrieb:
Ich schlussfolgere mit meinem miserablen Englischkenntnissen, dass das, was die Lösung sein könte, bisher nicht gefunden wurde. Vielleicht liege ich aber auch völlig daneben.


Nein, wohl leider nicht. Ich hatte das nicht richtig verstanden und falsche Hoffnungen...
 
OP
O

Olaf123

Member
Hallo!

Ich habe einen interessanten Beitrag gefunden, in dem jemand erklärt, wie er mit pam_mount ein Verzeichnis per cifs gemountet hat:
http://www.linux-club.de/viewtopic.php?f=6&t=100708

Ich habe dann versucht, dies für webdav anzupassen, d.h. ich habe alle beschriebenen Änderungen wie in dem Beitrag vorgenommen, aber in der /etc/security/pam_mount.conf.xml habe ich stattdessen

<volume fstype="wdfs" server="localhost" path="egroupware/webdav.php/home"
mountpoint="/home/MEIN-ACCOUNT/webdavtest"/>

eingetragen.

Funktioniert leider nicht, das Webdav-Verzeichnis wird nicht gemountete, und ich habe keine Ahnung, wo der Fehler liegt.
Die einzige Veränderung, die mir aufgefallen ist, ist die Meldung "pam_mount password:" anstatt "password:" wenn ich mich per ssh auf dem Server einlogge, demzufolge scheint pam_mount grundsätzlich zu laufen.

Gruß
Olaf

EDIT:
ich weiss nicht genau, wo ich debug-logs zu pam_mount finde, aber wenn ich mich in der lokalen Konsole per su einlogge, bekomme ich nun diverse Meldungen. Auszug:
Code:
pam_mount(pam_mount.c:314): pam_mount 1.27: entering auth stage
pam_mount password:
pam_mount(pam_mount.c:100): unknown pam_mount option "use_first_pass"
pam_mount(pam_mount.c:464): pam_mount 1.27: entering session stage   
pam_mount(misc.c:38): Session open: (uid=10001, euid=0, gid=100, egid=100)
pam_mount(mount.c:196): Mount info: globalconf, user=root <volume fstype="wdfs" server="localhost" path="/egroupware/webdav.php/home" mountpoint="/home/MEIN-ACCOUNT/webdavtest" cipher="(null)" fskeypath="(null)" fskeycipher="(null)" fskeyhash="(null)" options="" /> fstab=0
pam_mount(mount.c:169): The "server" attribute is ignored for this filesystem (wdfs).
command: [mount] [-p0] [-t] [wdfs] [/egroupware/webdav.php/home] [/home/MEIN-ACCOUNT/webdavtest]
pam_mount(misc.c:38): set_myuid<pre>: (uid=10001, euid=0, gid=100, egid=100)
pam_mount(misc.c:38): set_myuid<post>: (uid=0, euid=0, gid=100, egid=100)
pam_mount(mount.c:67): Errors from underlying mount program:
pam_mount(mount.c:71): mount: unbekannter Dateisystemtyp „wdfs“
Dateisystem   Typ    1K‐Blöcke   Benutzt Verfügbar Ben% Eingehängt auf
/dev/md0      ext3   939224516   5852328 885662360   1% /
...
pam_mount(pam_mount.c:543): mount of /egroupware/webdav.php/home failed
...
 
OP
O

Olaf123

Member
weiter gehts:

testweise habe ich den Eintrag in der /etc/security/pam_mount.conf.xml geändert auf
Code:
<volume fstype="wdfs" path="http://localhost/egroupware/webdav.php/home/" mountpoint="/home/MEIN-USERNAME/webdavtest" options="gid=users,username=MEIN-USERNAME,password=MEIN-PASSWORT" />
Das ist zwar nicht das, was ich letztendlich will (Benutzername + Passwort), aber ich will den oder die Fehler erstmal eingrenzen bzw. minimieren, und offenbar scheint "etwas mehr" zu funktionieren:

Ich teste im Moment gar nicht mehr per Login, sondern schaue mir nur noch die Meldungen an, wenn ich mich per su einlogge, dabei wird offenbar die pam_mount.conf.xml abgearbeitet.
Wenn ich mich also in der Konsole per su einlogge, kommt nun
Code:
pam_mount(pam_mount.c:314): pam_mount 1.27: entering auth stage
pam_mount password:
pam_mount(pam_mount.c:100): unknown pam_mount option "use_first_pass"
pam_mount(pam_mount.c:464): pam_mount 1.27: entering session stage
pam_mount(misc.c:38): Session open: (uid=10001, euid=0, gid=100, egid=100)
pam_mount(mount.c:196): Mount info: globalconf, user=root <volume fstype="wdfs" server="(null)" path="http://localhost/egroupware/webdav.php/home/" mountpoint="/home/MEIN-USERNAME/webdavtest" cipher="(null)" fskeypath="(null)" fskeycipher="(null)" fskeyhash="(null)" options="gid=users,username=MEIN-USERNAME,password=MEIN-PASSWORT" /> fstab=0
command: [mount] [-p0] [-o] [gid=users,username=MEIN-USERNAME,password=MEIN-PASSWORT] [-t] [wdfs] [http://localhost/egroupware/webdav.php/home/] [/home/MEIN-USERNAME/webdavtest] 
pam_mount(misc.c:38): set_myuid<pre>: (uid=10001, euid=0, gid=100, egid=100)
pam_mount(misc.c:38): set_myuid<post>: (uid=0, euid=0, gid=100, egid=100)
pam_mount(mount.c:67): Errors from underlying mount program:
pam_mount(mount.c:71): mount: unbekannter Dateisystemtyp „wdfs“
...
pam_mount(pam_mount.c:543): mount of http://localhost/egroupware/webdav.php/home/ failed
command: [pmvarrun] [-u] [root] [-o] [1]

Wie mache ich pam_mount mit wdfs bekannt?

Gruß
Olaf
 

Obi-Wahn

Hacker
Ich hatte ein ähnliches Problem mit davfs2: http://bugs.gentoo.org/102440 Vielleicht hilft diese Lösung auch bei wdfs? Also ein Symlink von /usr/bin/wdfs zu /bin/wdfs ?
 
OP
O

Olaf123

Member
Ich habe mir jetzt mal die mnpage pam_mount.conf durchgelesen und zwar nicht alles verstanden, aber doch ein paar Dinge.

pam_mount schaut offenbar nach einem File in der Art von

/sbin/mount.filetype

daher habe ich einen Symlink angelegt:

ln -s /usr/bin/wdfs /sbin/mount.wdfs

Nun kommt die Fehlermeldung bzgl. unbekannten Filesystem nicht mehr. Ob's auch tatsächlich so ist, weiss ich noch nicht, da der generierte mount-Befehl falsch ist.
In /etc/security/pam_mount.conf.xml habe ich eingetragen

<volume fstype="wdfs"
path="http://localhost/egroupware/webdav.php/home/"
mountpoint="/home/ME/webdavtest"
options="allow_other" />

was offenbar zu folgender Befehlsfolge bzw. Syntax in pam_mount führt

command: [mount] [-p0] [-o] [allow_other] [-t] [wdfs]
[http://localhost/egroupware/webdav.php/home/] [/home/ME/webdavtest]

was meiner Meinung nach übersetzt bedeuten dürfte

mount -p0 -o allow_other -t wdfs
http://localhost/egroupware/webdav.php/home/ /home/ME/webdavtest

und das gibt mir natürlich Fehlermeldungen

pam_mount(mount.c:67): Errors from underlying mount program:
pam_mount(mount.c:71): ## error: could not mount remote server
'http://localhost/egroupware/webdav.php/home/'. reason: Could not
authenticate to server: rejected Basic challenge.

denn korrekt wäre ja eigentlich

wdfs http://localhost/egroupware/webdav.php/home/ /home/ME/webdavtest -o allow_other

Die Frage ist nun also, wie man in der pam_mount.conf.xml eine korrekte mount-Zeile für wdfs / webdav erzeugt.

Gruß
Olaf
 
OP
O

Olaf123

Member
so, ich bin nun relativ fest davon überzeugt, dass pam_mount _nicht_ mit webdav funktioniert, zumindest nicht inklusive dem automatischen Einloggen mit Username + Passwort - Aber genau darum geht es doch eigentlich bei pam_mount?!

Grundsätzlich funktioniert das Mounten von webdav-Freigaben, wenn man in der
/etc/security/pam_mount.conf.xml
folgendes (in eine Zeile) einfügt, die Pfade natürlich angepasst an die eigenen Bedürfnisse:

Code:
<volume fstype="fuse" path="wdfs#http://SERVER-IP/egroupware/webdav.php/home/" mountpoint="/home/USERNAME/webdavtest" options="username=USERNAME,password=PASSWORT" />

Ohne Username + Passwort kommt jedoch
Code:
# pam_mount(mount.c:71): wdfs: webdav.c:114: ne_set_server_auth_callback: Assertion `auth_data.username && auth_data.password' failed.

wdfs nimmt also Username und Passwort nicht von pam_mount an.
Jemand in der pam_mount Liste deutete an, das könnte ein Bug in wdfs sein.
Wie dem auch sei, ich bin somit längst mit meinem Latein am Ende, google offenbar auch.
Ich gebe daher an dieser Stelle auf und deaktiviere pam in der /etc/ssh/sshd_config.

EDIT:
Ich brech ins Essen... nun funktioniert mein nx-Server nicht mehr korrekt. Normale User können sich nicht mehr einloggen, offenbar sind sie von ssh ausgeschlossen. Welche der Änderungen von/für pam könnte das verursacht haben, und wie macht man das rückgängig?
EDIT2:
ich habe wohl "PAM" deaktiviert, nicht "pam_mount", wie "stittel" mich im IRC aufgeklärt hat.
Ich habs jetzt erstmal wieder aktiviert, damit zumindest mein nx wieder läuft.

Gruß
Olaf
 
OP
O

Olaf123

Member
Stand der Dinge:
da ich ja nun fast zwangsweise ;-) doch weitertesten "musste", habe ich mit Hilfe von "stittel" aus dem IRC meine Konfigurationsdateien in /etc/pam.d/ durchgesehen und geändert.
Als erstes habe ich die über den oben genannten Link beschriebenen Änderungen rückgängig gemacht.

Danach kam in die Dateien /etc/pam.d/ ...
login
sshd
xdm

jeweils hinter dem letzten mit "auth.." beginnenden Eintrag die Zeile
auth optional pam_mount.so

und hinter die jeweils letzte Zeile in den Dateien kam die Zeile
session optional pam_mount.so

Danach funktionierte das Mounten der webdav-Freigabe aber nur, wenn das Passwort in der /etc/security/pam_mount.conf.xml fest eingetragen war:
Code:
<volume fstype="fuse" path="wdfs#http://SERVER-IP/egroupware/webdav.php/home/" mountpoint="/home/USER-X/webdavtest" options="username=USER-X,password=PASSWORT-VON-USER-X" />

Solange dort aber das Passwort drinstehen muss, ist das nicht wirklich brauchbar.
Nach einigen weiteren Tests habe ich zwei meiner vorherigen Einträge wiederhergestellt:

In die Datei /etc/pam.d/common-auth kommt als letzte Zeile
auth optional pam_mount.so

und in die Datei /etc/pam.d/session-auth kommt als letzte Zeile
session optional pam_mount.so

Danach kann in der /etc/security/pam_mount.conf.xml das Passwort rausgenommen werden und nun auch sinnvoll einige Pfade relativiert werden:

<volume fstype="fuse" path="wdfs#http://SERVER-IP/egroupware/webdav.php/home/" mountpoint="~/webdavtest" options="username=%(USER)" />

Jetzt klappt folgendes:
wenn sich USER-X (oder wer auch immer) per "su USER-X" in der Konsole einloggt, wird die webdav-Freigabe automatisch mit dem Passwort des Users gemountet.
Der funktionierende Ablauf ist also schematisch:
(ssh USER-Y@IP) -> (su USER-X -> Passwortabfrage/Eingabe)
webdav wird automatisch in /home/USER-X/webdavfreigabe gemountet.

Was aber bis jetzt noch nicht funktioniert:
weder bei (ssh USER-X@IP)
noch beim ganz normalen Login in KDE wird die webdav-Freigabe gemountet.

Kurzgesagt: das, worum es geht, funktioniert noch immer nicht.

Ich versuche es morgen (heute) nochmal bei Jan in der pam_mount userliste.

Gute Nacht
Olaf
 

chrissi86

Newbie
Hallo Olaf,

vielen Dank für deine ausführliche Beschreibung des Themas. Hast du das Problem mittlerweile lösen können????

Viele Grüße
Christian
 
Oben