À partir de la version 11.04, l’utilisation des montages smb devient galère, voire quasiment impossible (je n’ai pas réussi à faire quoi que ce soit depuis que j’ai réinstallé mon PC).
On peut se tourner vers FUSE, qui est prévu pour faire des montages à partir d’un login utilisateur. FUSE n’étant qu’une couche de base, il faut rajouter des outils complémentaires pour faire les montages.
Actuellement, il existe deux outils :
fusesmb, qui permet de retrouver une arborescence SAMBA du réseau. Le moins que l’on puisse dire, c’est que c’est peu performant, quand ça fonctionne...
sshfs, qui permet de réaliser des montages ssh. Pratique si vous avez des serveurs Linux et, après plusieurs semaines d’utilisation, c’est très stable.
L’identification peut être réalisée soit par mot de passe, soit par utilisation d’un certificat numérique.
Identification par mot de passe
Préparation du serveur
Vérifiez que vous avez installé les paquets adéquats :
ldap-auth-clientldap-auth-configldap-utils libaprutil1-ldaplibldap-2.4-2 libnss-ldaplibpam-ldapConfigurez également correctement d’une part le fichier /etc/ldap.conf :
base ou=agriculture,o=gouv,c=fruri ldaps://monserveur.comldap_version 3pam_password md5nss_base_passwd ou=People,ou=agriculture,o=gouv,c=fr?onenss_base_shadow ou=People,ou=agriculture,o=gouv,c=fr?onenss_base_group ou=Group,ou=agriculture,o=gouv,c=fr?onenss_base_hosts ou=Hosts,ou=agriculture,o=gouv,c=fr?onessl start_tlsssl ontls_checkpeer yestls_cacertfile /etc/ssl/certs/igca-racine-serveur.crtet le fichier /etc/nsswitch.conf :
passwd: files ldapgroup: files ldapshadow: files ldapIl faut que votre serveur soit en mesure d’accepter les connexions ssh de la part des utilisateurs. Vous devrez donc modifier les fichiers pam.
common-account :# here are the per-package modules (the "Primary" block)account [success=2 new_authtok_reqd=done default=ignore] pam_unix.so account [success=1 default=ignore] pam_ldap.socommon-password :# here are the per-package modules (the "Primary" block)password [success=2 default=ignore] pam_unix.so obscure sha512password [success=1 user_unknown=ignore default=die] pam_ldap.so use_authtok try_first_passcommon-session :# and here are more per-package modules (the "Additional" block)session required pam_unix.so session optional pam_ldap.so session optional pam_ck_connector.so nox11# end of pam-auth-update configcommon-auth :# here are the per-package modules (the "Primary" block)auth [success=2 default=ignore] pam_unix.so nullok_secureauth [success=1 default=ignore] pam_ldap.so use_first_passScript de connexion
Ce script permet de saisir le mot de passe, et de l’utiliser pour les connexions SSH sans avoir à le retaper à chaque montage :
cd ~LOGIN=eric.quintonRACINE=~/mnt#read -s -p "mot de passe : " mdpecho "Montages en cours..."mkdir -p $RACINE/serveur1/donneesmkdir -p $RACINE/serveur2/eric.quintonmkdir -p $RACINE/serveur3/wwwecho $mdp|sshfs $LOGIN@serveur1:/home/eric.quinton $RACINE/serveur1/eric.quinton -o password_stdin,allow_otherecho $mdp|sshfs $LOGIN@serveur2:/opt/donnees $RACINE/serveur2/donnees -o password_stdin,allow_otherecho $mdp|sshfs $LOGIN@serveur3:/var/www $RACINE/serveur3/www -o password_stdinIdentification par certificat
Vous avez également la possibilité d’utiliser votre certificat numérique pour vous identifier. Pour cela, dans le serveur cible, dans le dossier /home/login/.ssh, créez un fichier authorized_keys et copiez-y votre clé publique.
Votre clé privée doit être dans votre dossier /.ssh/, et porter le nom id_rsa (ou id_dsa si vous avez généré une clé dsa). Assurez-vous d’avoir protégé votre clé privée avec un mot de passe non trivial !
Script de connexion
cd ~LOGIN=eric.quintonRACINE=~/mnt#read -s -p "mot de passe : " mdpecho "Montages en cours..."mkdir -p $RACINE/serveur1/donneesmkdir -p $RACINE/serveur2/eric.quintonmkdir -p $RACINE/serveur3/wwwsshfs $LOGIN@serveur1:/home/eric.quinton $RACINE/serveur1/eric.quinton -o allow_othersshfs $LOGIN@serveur2:/opt/donnees $RACINE/serveur2/donnees -o allow_othersshfs $LOGIN@serveur3:/var/www $RACINE/serveur3/www -o allow_otherDémontage des lecteurs
Voici un script qui vous permettra de démonter vos lecteurs à la fermeture de la session graphique :
/usr/local/bin/demontage.sh#!/bin/bashfor montage in $(mount -l -t fuse.sshfs|grep $USERNAME|sed s/^.*\ on\ //|sed s/type.*$//)do fusermount -u $montagedoneet pour qu’il soit exécuté à la fermeture de la session graphique :
/etc/gdm/PostSession/Default #!/bin/sh/usr/local/bin/demontage.shexit 0