[prev in list] [next in list] [prev in thread] [next in thread] 

List:       mandrake-confirme
Subject:    Re: [Confirme] Config pam_mount
From:       Stephane Boireau <steph2811 () libertysurf ! fr>
Date:       2003-05-29 18:48:53
[Download RAW message or body]

Bonsoir,

J'ai effectué quelques tests avec succès pour la mise en place de pam_mount.

Il s'agit de faire d'une machine Linux un client pour un domaine Window$/Samba 
avec montage du Home distant.

Merci à Yann CANTIN sans qui j'aurais probablement repoussé mes essais.

J'ai fait des essais en partant de l'installation d'une Mandrake9.0
Et d'autres en partant d'une Mandrake9.0 installée sans choisir 
Authentification sur un Domaine Window$ (cela m'a permis de repérer ce qui 
changeait vraiment entre ces deux différentes installations).

C'est assez long et détaillé, j'espère.
Je ne livre ici que la première solution.
Je compte remettre le tout en forme sur des pages web, mais pour clore le fil 
de cette discussion, je vous transmets le compte-rendu d'une configuration 
réussie:
==========================================================
Installation d'une Mdk9.0 avec Authentification sur le Domaine Window$.

Sur votre domaine:
Sur le serveur Samba DeepGlue, le fichier /etc/samba/smb.conf contient la 
ligne qui va permettre de créer automatiquement le compte machine pour la 
machine cliente DingDong que nous allons installer:
add user script = /usr/sbin/useradd -d /dev/null -g machines -c 'Machine 
Account' -s /bin/false -M %m$


Sur la future machine cliente DingDong, qui n'est encore qu'un amas 
d'électronique ou qui peut-être pire, héberge le virus M$Window$;o):
Effectuer une Installation en mode Expert, avec les paquetages que vous 
souhaitez (Client réseau tout de même).
Et lors de la saisie du mot de passe root, n'allez pas trop vite:
Dans le champ "Authentification", ne laissez pas "Fichiers locaux", mais 
sélectionnez "Domaine Window$" (même si votre domaine est en fait un Domaine 
Samba).
Il vous est ensuite demandé le nom du domaine, le nom du compte administrateur 
du domaine et son mot de passe.
Une fenêtre vous explique ensuite ce qui va être fait et comment faire le 
travail à la main si pour une raison ou une autre cela échouait.
Et c'est tout on passe à la suite de la configuration post-installation.
Ne jetez pas un oeil à ce stade à vos fichiers /etc/passwd, /etc/shadow et 
/etc/samba/smbpasswd sur DeepGlue, ils ne contiennent encore aucune 
information sur DingDong (ne le faites pas, vous dis-je il n'y a rien sur 
DingDong (ni dingdong), j'ai vérifié... et ce n'était pas bien malin comme 
vous allez le voir).
Dans la phase de post-installation, une étape importante est la configuration 
du réseau...
... une fois cette configuration effectuée, on a un peu plus de chance 
d'intégrer le Domaine Window$;o).
Je n'ai pas contrôlé à quel moment après cette installation, l'intégration au 
Domaine s'est produite, mais les fichiers /etc/passwd, /etc/shadow et 
/etc/samba/smbpasswd sur DeepGlue ont bien vu apparaitre une ligne concernant 
dingdong.
Est-ce juste après la configuration réseau ou au premier boot, je l'ignore.

Remarque:
Au premier démarrage, kdm n'a pas trouvé un seul utilisateur sur le Domaine.
J'ai redémarré le serveur X et tous mes utilisateurs sur le domaine sont 
apparus.

Comme j'ai eu la mauvaise idée de choisir un nom de domaine "MaMaison" avec 
des caractères en majuscules/minuscules et que le nom de domaine reconnu est 
"MAMAISON", il se pose un problème avec la ligne "template homedir = 
/home/%D/%U" dans le /etc/samba/smb.conf de DingDong.
Je me suis donc logué en root et j'ai modifié cette ligne en "template homedir 
= /home/MaMaison/%U".
"template homedir = /home/%U" aurait également convenu et c'est ce que j'avais 
fait lors de tests précédents.
J'ai ensuite redémarré winbind:
[root@DingDong root]# /etc/init.d/winbind restart

De retour à l'interface graphique: KDM
J'ai pu me loguer sans problème avec un compte défini sur le Domaine MaMaison 
(c'est-à-dire un utilisateur Linux/Samba défini sur le serveur DeepGlue).


Reste à mettre en oeuvre pam_mount.
Création d'un point de montage pour accueillir le montage du Home distant.
[root@DingDong root]# mkdir "/etc/skel/Mes Documents"

Récupération et désarchivage de pam-mount.tar.gz.
<<<Adresse sur internet à retrouver>>>
Le fichier pam-mount.tar.gz récupéré sur DeepGlue, j'ai dû renseigner le 
/etc/hosts de DingDong pour qu'il parvienne à effectuer le montage smb 
nécessaire à la récupération de l'archive pam-mount.tar.gz sur DingDong.
[root@DingDong root]# echo "192.168.52.182 DeepGlue" >> /etc/hosts
[root@DingDong root]# smbmount //DeepGlue/public /mnt/disk
Password:
Anonymous login successful
[root@DingDong root]# cp /mnt/public/pam_mount.tar.gz ./

[root@DingDong root]# tar -xvzf pam-mount.tar.gz

[root@DingDong root]# cd pam_mount-0.5.14

[root@DingDong pam_mount-0.5.14]# ./configure
Et des erreurs sont apparues lors de la tentative de compilation.
J'ai donc procédé à des installations de paquetages pour satisfaire 
dépendances et présence des outils de compilation.

[root@DingDong pam_mount-0.5.14]# urpmi gcc
Cela m'a aussi installé:
binutils-2.12.90.0.15-1mdk.i586
gcc-3.2-1mdk.i586
glibc-devel-2.2.5-16mdk.i586
kernel-headers-2.4.18-41mdk.i586
libbinutils2-2.12.90.0.15-1mdk.i586

Il me manquait alors encore le fichier pam_modules.h
Une recherche m'a indiqué plusieurs paquetages proposant ce fichier.
[root@DingDong pam_mount-0.5.14]# urpmi pam-devel

Tout est là, on passe à la compilation et à l'installation:
[root@DingDong pam_mount-0.5.14]# ./configure
...
[root@DingDong pam_mount-0.5.14]# make
...
[root@DingDong pam_mount-0.5.14]# make install
...

[root@DingDong pam_mount-0.5.14]# cp ./config/pam_mount.conf /etc/security/
[root@DingDong pam_mount-0.5.14]# vi /etc/security/pam_mount.conf
Et modification du fichier de façon à n'avoir pour seules lignes non 
commentées que:
==================
#debug 1
mkmountpoint 1
lsof /usr/sbin/lsof

options_require	nosuid,nodev

smbmount /bin/mount -t smbfs
umount   /bin/umount

volume * smb DeepGlue & ~/Mes\ Documents uid=&,gid=&,fmask=0650,dmask=0750 - -
==================
La ligne "debug 1" est à commenter une fois que cela fonctionne bien.

Edition de /etc/pam.d/system-auth:
De:
==================
#%PAM-1.0

auth        required      /lib/security/pam_env.so
auth        sufficient    /lib/security/pam_winbind.so
auth        sufficient    /lib/security/pam_unix.so likeauth nullok 
use_first_pass
auth        required      /lib/security/pam_deny.so

account     sufficient    /lib/security/pam_winbind.so
account     required      /lib/security/pam_unix.so

password    required      /lib/security/pam_cracklib.so retry=3 minlen=2  
dcredit=0  ucredit=0
password    sufficient    /lib/security/pam_unix.so nullok use_authtok md5 
shadow
password    required      /lib/security/pam_deny.so

session     required      /lib/security/pam_mkhomedir.so skel=/etc/skel/ 
umask=0022
session     required      /lib/security/pam_limits.so
session     required      /lib/security/pam_unix.so
==================

Passer à:
==================
#%PAM-1.0

auth        required      /lib/security/pam_env.so
auth        sufficient    /lib/security/pam_unix.so likeauth nullok
auth        requisite     /lib/security/pam_winbind.so use_first_pass
auth        sufficient    /lib/security/pam_mount.so use_first_pass
auth        required      /lib/security/pam_deny.so

account     sufficient    /lib/security/pam_winbind.so
account     required      /lib/security/pam_unix.so

password    required      /lib/security/pam_cracklib.so retry=3 minlen=2  
dcredit=0  ucredit=0
password    sufficient    /lib/security/pam_unix.so nullok use_authtok md5 
shadow
password    required      /lib/security/pam_deny.so

session     required      /lib/security/pam_mkhomedir.so skel=/etc/skel/ 
umask=0022
session     required      /lib/security/pam_limits.so
session     required      /lib/security/pam_unix.so
session     required      /lib/security/pam_mount.so
==================

On veille à donner la priorité à l'authentification locale pam_unix pour 
permettre à root de se loguer quoi qu'il arrive avec pam_winbind et 
pam_mount.
Le module pam_winbind récupére le mot de passe saisi à l'étape précédente 
comme l'indique le paramètre use_first_pass.
De la même façon le mot de passe pour pam_mount est récupéré de la saisie 
précédente.

Attention aux fautes de frappes dans /etc/pam.d/system-auth
Et dans toute votre phase de tests, conservez une console root ouverte et 
faites des essais de login dans d'autres consoles.
Il peut arriver qu'un "su" ne fonctionne plus, ne vous contentez donc pas 
d'une console avec un utilisateur non root.
Si toutefois vous rencontriez une situation de blocage, démarrez Lilo avec 
l'option: "linux single"
Vous pourrez vous loguer sans mot de passe et corriger vos bêtises;o).

Ceci étant fait, vous devez pouvoir vous loguer et obtenir votre home distant 
dans "~/Mes Documents".

Remarques:
Si cela ne se passe pas comme prévu, depuis la console où vous êtes root (vous 
en avez bien une, n'est-ce pas?) lancez les commandes suivantes:

[root@DingDong root]# tail /var/log/auth.log
Et
[root@DingDong root]# tail /var/log/syslog

Vous pourriez obtenir des informations sur la cause du problème.
==========================================================

Encore merci à tous et plus particulièrement à Yann.
-- 
Stephane Boireau




["message.footer" (text/plain)]

Vous souhaitez acquerir votre Pack ou des Services MandrakeSoft?
Rendez-vous sur "http://www.mandrakestore.com"


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic