PAM Mount einrichten
From NJH-Wiki
- 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:

