Fehler beim Mounten der Windows-Freigabe (CIFS) mit pam_mount

Fehler beim Mounten der Windows-Freigabe (CIFS) mit pam_mount

Ich habe einen Ubuntu 21.10-PC, der mit einem Samba AD-Domänencontroller verbunden ist. Alles funktioniert einwandfrei – Kerberos funktioniert (ich kann Tickets mit kinit abrufen), Winbind funktioniert (ich kann Informationen über Benutzer und Gruppen abrufen), ich kann mich mit Domänenanmeldeinformationen beim System anmelden.

Und das manuelle Mounten von Freigaben funktioniert auch, sowohl mit Kerberos- als auch mit ntlmssp-Autorisierung:

sudo mount -t cifs //server/path /mount/point -o username=USER,domain=DOMAIN,sec=ntlmssp
sudo mount -t cifs //server/path /mount/point -o username=USER,domain=DOMAIN,sec=krb5

Das Festlegen des Benutzernamens wie Benutzername=USER@DOMAIN funktioniert auch.

Das Problem ist, dass ich pam_mount nicht zum Laufen bekomme, wenn sich ein Benutzer über Gnome anmeldet!

Verwenden von krb5 in pam_mount.conf.xml wie folgt

<volume
      fstype="cifs"
      server="server"
      path="path"
      mountpoint="mount/point"
      options="sec=krb5"
  />

Gibt einen Fehler in auth.conf aus

(mount.c:72): mount error(126): Required key not available

Verwenden von ntlmssp in pam_mount.conf.xml wie folgt

<volume
      fstype="cifs"
      server="server"
      path="path"
      mountpoint="mount/point"
      options="sec=ntlmssp"
  />

Gibt einen anderen Fehler in auth.conf aus

(pam_mount.c:173): conv->conv(...): Conversation error 

Nachdem ich das Debuggen in pam_mount aktiviert habe, kann ich auch den genauen Mount-Befehl sehen, den es in auth.log ausführt, und er ist identisch mit den oben genannten, die funktionieren, wenn ich sie manuell ausführe.

Ich habe Folgendes versucht:

  • habe mit Mount-Optionen in verschiedenen Kombinationen gespielt: vers=3.0, _netdev,user,sec
  • Kerberos wurde gezwungen, Tickets in Dateien in /tmp/krb5cc_%u mit pam_winbind-Konfiguration zu speichern
  • habe eine Menge Foren gelesen

Irgendwelche Ideen?

Antwort1

Ich habe es endlich herausgefunden. Hier ist eine funktionierende pam_mount-Volume-Konfiguration:

<volume sgrp="DOMAIN\domain users" fstype="cifs" server="my.server.com" path="path/to/share" mountpoint="/mount/point" options="sec=krb5,cruid=%(USERUID),noexec,rw,nofail" />

Die entscheidenden Anforderungen schienen zu sein:

  • Serverdomänenname. Kerberos kann keine Tickets für IPs ausstellen, daher müssen Sie einen Domänennamen angeben.
  • cruid=%(BENUTZER-ID)Option. Mount wird als Root ausgeführt und sucht standardmäßig nach einer Ticketdatei, die Root gehört. Daher müssen wir die Benutzer-ID des tatsächlichen Ticketbesitzers festlegen.
  • sgrp="DOMAIN\Domänenbenutzer"Attribut. pam_mount wird bei jeder neuen Authentifizierungssitzung ausgeführt, einschließlich Systembenutzern wie gdm. Sobald beim Mounten der Freigabe ein fehlgeschlagener Anmeldeversuch erfolgt, scheint dieser zwischengespeichert zu werden und schlägt sogar für einen autorisierten Benutzer fehl. Daher müssen wir die Benutzer, für die die Freigabe gemountet werden soll, explizit definieren. Dies kann mit einer Reihe von Benutzersteuerungsattributen erfolgen, die in pam_mount verfügbar sind.

verwandte Informationen