[gelöst] Gruppen-Shares mit pam_mount (Active Directory)

Probleme mit Samba, NFS, FTP und Co.
Antworten
chmeyer
Beiträge: 96
Registriert: 03.02.2010 21:09:12
Wohnort: RLP

[gelöst] Gruppen-Shares mit pam_mount (Active Directory)

Beitrag von chmeyer » 22.11.2015 19:00:22

Hallo zusammen,

ich mache mir gerade einen Knoten ins Hirn.
Mein zentraler Server ist ein Windows Active Directory, der sowohl die Benutzerauthentifizierung meiner Jessie-Rechner erledigt, als auch verschiedenste Netzwerk-Shares hostet.
Die lokalen /home/* Verzeichnisse werden beim Anmelden angelegt und nach dem Abmelden wieder gelöscht.
Die Shares der Benutzer mounte ich mit pam_mount, was mit den statischen und den %(USER)-Shares tadellos funktioniert. (z.B. User: *, Path: %(USER), Mountpoint: ~/%(USER) )

Die Benutzer sind aber je nach Funktion und Aufgabe verschiedenen LDAP-Gruppen zugewiesen. Für (fast) jede dieser ca. 50 Gruppen gibt es ein "Tauschlaufwerk" mit dem jeweiligen (sekundären) Gruppennamen als Share-Namen. (z.B. Gruppe: gruppe_a, Path: Gruppe_A, Mountpoint: ~/Gruppe_A )
Jetzt könnte ich dies 50 Shares fest in die pam_mount.conf.xml eintragen und den Zugriff (user="*") jeweils mit z.B. sgrp="gruppe_a" beschränken.
Abgesehen davon, das mir das reichlich "unelegant" vorkommt werden auch immer wieder neue Gruppen erstellt bzw. alte gelöscht. Deshalb ist es schlecht möglich, diese 50 Einträge adäquat zu pflegen.

Bei den Windows-Maschinen im Netz erledigt dies ein (NETLOGON) Skript, das zuerst die LDAP-Gruppen des Benutzers abfragt und dann die Gruppen-Shares mit "net use ..." einbindet.

Kann mir jemand einen Tipp geben, wie das auch mit pam_mount zu machen ist?

Viele Grüße

Christian
Zuletzt geändert von chmeyer am 26.06.2016 15:32:49, insgesamt 1-mal geändert.

chmeyer
Beiträge: 96
Registriert: 03.02.2010 21:09:12
Wohnort: RLP

Re: Gruppen-Shares mit pam_mount (Active Directory)

Beitrag von chmeyer » 26.06.2016 15:32:28

pam_mount kann nicht mit solchen Gruppenlaufwerken umgehen. Punkt.

Im Moment verwende ich gvfs-mount in einem Gnome-Anmeldeskript. Das klappt "soweit" auch ganz gut, allerdings bin ich mit gvfs-mount auch nicht ganz glücklich: Es funktioniert nur bei GUIs (und dann noch nicht einmal bei allen) und die automatisch angelegten Einhängepunkte (und damit die der angezeigte Name) sind in lowercase geschrieben. Außerdem lassen sie sich (zu) leicht aushängen und der Pfad ist in der Shell nur verzwickt zu finden.

Wenn ich nochmal irgendwann zu viel Zeit habe, dann probiere ich, libpam_script vor pam_mount aufzurufen und damit dann die Konfigurationsdatei von pam_mount (pam_mount.conf.xml) für den jeweiligen Benutzer anzupassen.

Benutzeravatar
ThorstenS
Beiträge: 2875
Registriert: 24.04.2004 15:33:31

Re: [gelöst] Gruppen-Shares mit pam_mount (Active Directory)

Beitrag von ThorstenS » 26.06.2016 20:27:31

Das interessiert mich, wie machts du das mit dem gvfs Anmeldescript genau? Welche Datei, wie schaut die bei dir aus?

Mit pam_mount gehe ich tatsächlich den Weg und trage alle Gruppenlaufwerke einzeln ein: viewtopic.php?p=1093778#p1093778
Die XML Datei dafür kann man eigentlich auch automatisiert anlegen über z.B. Debianansible und den jinja2 Templating Mechanismus. Ich bin mir recht
sicher, dass sich dafür schon was fertiges im Netz finden läßt. Du mußt prinzipiell ja nur sowas hier auswerten getent group| awk -F: '$3>1000{print $1}'

chmeyer
Beiträge: 96
Registriert: 03.02.2010 21:09:12
Wohnort: RLP

Re: [gelöst] Gruppen-Shares mit pam_mount (Active Directory)

Beitrag von chmeyer » 27.06.2016 21:26:13

Oh, es spricht jemand mit mir ;)

Mhhhm, das genaue Skript habe ich gerade nicht greifbar.

Erst wollte ich ein Gnome-Autostart-Skript verwenden, dann wollte ich aber, dass es bei anderen GUIs auch funktioniert und auch im Terminal. Deshalb rufe ich per systemd einen User-Anmeldeserveice auf (/etc/systemd/user/*.service), der wiederum beim An- und Abmelden ein Skript aufruft.

Dieses Skript erledigt eine ganze Menge Aufgaben, wird aber nur mit user-Rechten ausgeführt. Deshalb ging pam_mount nicht mehr und ich musste auf gvfs-mount ausweichen - mit den genannten Nachteilen.
Der Aufruf ist leicht: gvfs-mount smb://Server/Share

In dem Skript lasse ich mir erst alle Shares auflisten (mit smbclient -L oder smbtree) und prüfe dann Gruppen, Berechtigungen und strukturelle Besonderheiten (mit LDAP-Abfragen).
Wie auch immer, letztlich landen die entsprechenden Shares in einer temporären (versteckten) Datei, die dann zeilenweise abgearbeitet und mit gvfs-mount eingehängt werden.
Beim Abmelden verwendet das Skript die noch vorhandene Datei und hängt die Shares wieder aus.
Ein Problem, das ich mit dieser Lösung noch habe ist, das nach längerer Inaktivität die Shares nicht mehr reagieren und die Verbindung erst wieder reaktiviert werden muss. Hier wollte ich noch regelmäßige Keep-alives einbauen.

Samba, Winbind, Kerberos und Konsorten sind übrigens nach den üblichen HowTos eingerichtet, ich weiss nicht, ob das für gfvfs-mount eine Rolle spielt.

Für den Moment ist das eine akzeptable Lösung, ich bin noch an anderen Baustellen zu beschäftigt. Allerdings liebäugele ich längerfristig wieder mit libpam_mount. Hier sind mir die über 50 Gruppen noch zu unhandlich für die . Jinja2 ist da neben libpam_script sicher ein interessanter Ansatz, wobei ich für das "bisschen" xml noch mit awk, perl und dash gut zurecht komme.
Ansible scheint ein Deployment und Konfigurations-Werkzeug zu sein. Bei mir tut FAI (Fully Automatic Installation) gute Dienste.

Benutzeravatar
ThorstenS
Beiträge: 2875
Registriert: 24.04.2004 15:33:31

Re: [gelöst] Gruppen-Shares mit pam_mount (Active Directory)

Beitrag von ThorstenS » 28.06.2016 12:29:09

hmm, systemd User-Anmeldeservice… hört sich sehr interessant an. Vllt. sollte ich mich doch mal endlich mit dem Thema beschäftigen.

Wenn du dein Script wiedergefunden hast, würde ich das gerne mal als Inspirationsquelle anschauen. Vllt. auch per PN, wenn du es nicht
öffentlich posten magst.

Meine Shares sind nach einigen Stunden oder Tagen Inaktivität auch mal ausgehangen. Das scheint nicht nur ein Problem von gvfs-mount zu sein.

Wenn du schon FAI einsetzt, dann ist dein Leidensdruck für ein weiteres config-management Werkzeug natürlich nicht sehr groß.
Wobei ich ein großer Fan von ansible bin und die breite Basis an fertigen Rollen sehr schätze, die du unter https://galaxy.ansible.com/explore#/ findest. Sämtliche Rollen dort findest du öffentlich auf github und kannst sie demzufolge auch als Inspirationsquelle für deine eigenen Rollen benutzen - oder du läßt sie unverändert für dich arbeiten.

chmeyer
Beiträge: 96
Registriert: 03.02.2010 21:09:12
Wohnort: RLP

Re: [gelöst] Gruppen-Shares mit pam_mount (Active Directory)

Beitrag von chmeyer » 28.06.2016 23:13:56

systemd User-Anmeldeservice… hört sich sehr interessant an
Im Prinzip ist es nicht schwer, ich habe im Archwiki gute Informationen dazu gefunden:
In /etc/systemd/system liegen die System services und in /etc/systemd/user die der Benutzer.
Nehmen wir die Datei Anmeldung.service unter /etc/systemd/user

Code: Alles auswählen

# man systemd.service
# http://www.freedesktop.org/software/systemd/man/systemd.service.html#Examples

[Unit]
Description=Startscript für die Benutzeranmeldung

[Service]
Type=oneshot
# Bei "Type=simple" wird das Ende des Skripts nicht abgewartet.
ExecStart=/usr/bin/anmeldung.sh option1 option2

[Install]
WantedBy=multi-user.target
Wenn du dein Script wiedergefunden hast, würde ich das gerne mal als Inspirationsquelle anschauen
Ja, es liegt auf dem Server. Hier habe ich keine Backups. Es war aber eher ein schneller ugly Hack und nicht besonders elegant. Ich schaue mal nach.
Wobei ich ein großer Fan von ansible bin und die breite Basis an fertigen Rollen sehr schätze
Ja, FAI macht das mit Klassen ("CLASS") und bringt auch einiges mit. Das war mir aber zu komplex, undurchsichtig und wenig passend für meine speziellen Bedürfnisse. Deshalb habe ich lieber bei Null angefangen und jetzt macht das System, was ich will ;)

Benutzeravatar
ThorstenS
Beiträge: 2875
Registriert: 24.04.2004 15:33:31

Re: [gelöst] Gruppen-Shares mit pam_mount (Active Directory)

Beitrag von ThorstenS » 29.06.2016 11:57:12

Ich danke dir für die Infos. Selber machen ist auch mein Ding.
Sobald aber noch ein bis zwei Kollegen bei der Administration hinzukommen, wird eine vollständige Dokumentation unentbehrlich. Wer da zu faul zu ist, oder nicht die Zeit investieren kann/will, setzt lieber auf fertige Lösungen.

chmeyer
Beiträge: 96
Registriert: 03.02.2010 21:09:12
Wohnort: RLP

Re: [gelöst] Gruppen-Shares mit pam_mount (Active Directory)

Beitrag von chmeyer » 29.06.2016 19:17:19

... eine vollständige Dokumentation unentbehrlich. Wer da zu faul zu ist, oder nicht die Zeit investieren kann/will, setzt lieber auf fertige Lösungen.
ACK
Dummerweise gibt es nix fertiges, das ist halt meine (selbst gestellte) Aufgabe. So lange es nur mein "Hobby" ist, ist alles gut, aber spätestens, wenn andere es nutzen [s|w]ollen, ist eine gute Doku Pflicht.

Bei FAI gibt es natürlich auch genug fertig vorkonfigurierte Beispiele, Vorlagen und klassenbasierte Musterinstallationen: Server, Client, Proxy, GUI, mit/ohne DHCP, etc.
"Meine" Windows-Domain hat aber einige "Spezialitäten" und bevor ich jetzt vielen ungenutzten Code habe, der mir irgendwann unerwartet dazwischen funkt, ...
Aber natürlich mache ich Anleihen bei FAI, bei Debian-LAN und auch Argonaut. Und auch bei den diversen VBS-Skripten der Domain.
Positiv gesehen: Interessant ist es und gelernt habe ich auch eine Menge - okay, ich bin immer noch dabei. :)

Antworten