PAM Mount einrichten

From NJH-Wiki

Jump to: navigation, search
Autor 
Frank Prößdorf

Contents

Vorraussetzungen

  • Installiert ist ein SuSE Linux

Das meiste gilt aber für andere Distributionen genauso.

Vorgehensweise

Installieren

Hat man das Glück ein RPM Paket zur Hand zu haben so installiert man dieses ganz einfach über:

rpm -i pam_mount-x.y.z-a.b.ix86.rpm

Um sich zu informieren kann man nun die /usr/share/doc/packages/pam_mount/README lesen.

Es muss weiterhin sofern nicht vorhanden ein Verzeichnis /var/run/pam_mount angelegt werden, dass die selben Rechte wie die anderen Verzeichnisse hat, also 755.

Konfigurieren

In die /etc/pam.d/xdm zum Beispiel würde folgendes kommen:

auth     required       pam_mount.so
auth     sufficient     pam_ldap.so     use_first_pass
auth     sufficient     pam_unix2.so    use_first_pass
...
session  required       pam_limits.so
session  required       pam_mkhomedir.so skel=/etc/skel/ umask=0022
session  optional       pam_mount.so

Möchte man das ganze für SSH verwenden tritt ein Fehler auf zu dem man in einer eMail aus der RedHat PAM Mailingliste mehr Informationen und möglich Lösungen findet. In der FAQ findet man dazu ebenfalls eine Antwort die sich auf die vorhergehende bezieht. Keine von beiden hat bei meinen Tests mit LDAP funktioniert.

Hier nun die /etc/security/pam_mount.conf die nach Veränderung folgendermaßen aussieht:

debug 1
mkmountpoint 1
fsckloop /dev/loop7
luserconf .pam_mount.conf
options_allow *
options_require nosuid,nodev
lsof /usr/bin/lsof %(MNTPT)
ncpmount /bin/mount -t ncpfs %(SERVER) %(MNTPT) -v -o "pass-fd=0,volume=%(VOLUME)%(before=\",\" OPTIONS)"
umount /bin/umount %(MNTPT)
pmvarrun /usr/sbin/pmvarrun -u %(USER) -d -o %(OPERATION)

Und im Homeverzeichnis des Benutzers legen wir nun eine /home/benutzer/.pam_mount.conf an, die folgende Zeile enthält:

volume benutzer ncp server04/cn=benutzer.o=firma /data/benutzer 
/home/benutzer ipserver=192.168.0.1,user="cn=benutzer.o=firma" - -

Script zum automat. Erstellen der pam_mount.conf

Hier nun ein Script das die persönliche pam_mount.conf eines jeden Benutzers beim ersten einloggen automatisch erstellt, insofern sie nicht existiert. Die Daten hierfür werden aus einem eDirectory gezogen. Möchte man hier OpenLDAP Server verwenden muss man sicherlich mindestens die HOST Variable anpassen. Eventuell kann man das Erstellen des Verzeichnisses auch in das ///etc/skel//-Verzeichniss mit übernehmen.

#!/bin/sh

# Teste ob .pam_mount.conf existiert, wenn nicht lege an
if [ ! -e ~/.pam_mount.conf ]; then
        USER=`whoami`
        DN=`/usr/bin/ldapsearch -x "(uid=$USER)"|grep dn:|cut -d ' ' -f 2|sed 's/,/./g'`
        HOST=`/usr/bin/ldapsearch -x "(uid=$USER)"|grep messageServer|sed 's/messageServer: cn=//'|sed 's/,o=firma//'`
        IP=`host $HOST|cut -d ' ' -f 4`
        INHALT="volume $USER ncp $HOST/$DN /data/$USER /home/$USER ipserver=$IP,user=\"$DN\" - -"

        touch ~/.pam_mount.conf
        echo $INHALT > ~/.pam_mount.conf
fi

# Teste ob das Verzeichnis das gemountet werden soll existiert, wenn nicht lege an
if [ ! -e ~/home ]; then
        mkdir ~/home
        chmod 711 ~/home
fi

Wollen wir den ganzen Vorgang automatisieren so können wir das script verschieben und es in die /etc/profile mit eintragen.

mv create_pam_mount.sh /usr/bin/
chmod 755 /usr/bin/create_pam_mount.sh
echo "/usr/bin/create_pam_mount.sh" >> /etc/profile

Offene Fragen

Q. Warum wird der Ordner nicht ordentlich ausgemountet wenn ich mich auslogge?

A. Weil es noch Programme gibt die auf der Verzeichnis zugreifen. Diese kann man sehen wenn man Debug auf 1 setzt. Meist handelt es sich um Konsolen und ähnliches.

Q. Warum gehören nach dem mounten alle Dateien root?

A. Auszug aus einer eMail: "There appear to be some drawbacks to using a Netware home directory, file and directory permissions are immutable, and free disk space detection is affecting OpenOffice client installation. You can apparently gain symbolic link support by enabling the CONFIG_NCPFS_EXTRAS flag at kernel compile time when turning on NCPFS support in the kernel. It does look possible to automount an NFS home directory and submount the Netware directory in there, at which point Netware is not acting as the sole home directory."


Siehe auch

Quellen und weitere Informationen:

Personal tools