1 / 12 Partage de données et imprimantes pour les clients Windows
2 / 12 Copyright 2010 Thierry Machet Licence Ce matériel est distribué sous les termes de la GNU Free Documentation License. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled "GNU Free Documentation License".
3 / 12 INDEXATION DU DOCUMENT TITRE : REFERENCE : Partage de données et imprimantes pour les clients Windows ACTION NOM DATE SIGNATURE RÉDIGÉ PAR Thierry Machet 11 juin 2010 SUIVI DU DOCUMENT INDICE DATE MODIFICATIONS NOM 1.1 18 mars 2005 Passage au format xml et mise à jour pour Mandrake 10.1. 1.2 6 février 2006 Ajout partage imprimante PDF, passage ubuntu 6.06 1.3 28 août 2008 Modif pour Ubuntu 8.04 Hardy 1.4 26 mai 2010 Modif pour Ubuntu 10.04 Lucid Lynx
4 / 12 Table des matières 1 Cahier des charges, objectifs, solutions retenues, fonctionnalités, explications 6 1.1 Cahier des charges, objectifs............................................. 6 1.1.1 Publier les ressources locales vers les machines virtuelles.......................... 6 1.1.2 Publier les ressources d une station sur le réseau intranet local....................... 6 1.2 Solutions retenues / principe de fonctionnement................................... 6 2 A savoir 6 3 Pré-requis matériel et logiciel. 7 4 Versions, maturité. 7 5 Procédure 7 5.1 Paquetages...................................................... 7 5.1.1 Ubuntu 10.04 Lucid Lynx:.......................................... 7 5.2 Configuration générale de samba........................................... 8 5.3 Si des clients de technologie antérieurs à Windows NT (i.e. windows 98) doivent avoir accès au partages..... 8 5.4 Créer les partages de volumes............................................ 8 5.4.1 Partage des données............................................. 8 5.4.1.1 Partage des sources de logiciels et du volume de sauvegardes.................. 8 5.5 Configurer les utilisateurs............................................... 9 5.5.1 Ajout a la main................................................ 9 5.5.2 Ajout par script................................................ 9 5.6 Appliquer les changements.............................................. 9 5.7 Partage des imprimantes............................................... 9 5.8 Précautions avec les machines virtuelles....................................... 9 6 Procédure détaillée 10 6.1 Observer le fonctionnement de smbd et nmbd.................................... 10 6.2 Problème partage home disparu............................................ 10 6.3 Problèmes avec inetd................................................. 10 6.4 Tester......................................................... 10 6.4.1 Tests sous linux................................................ 10 7 Anciennes procédures 11 7.1 Paquetages...................................................... 11 7.1.1 Versions égales ou antérieures a Ubuntu 8.04 Hardy............................ 11 7.1.2 Xinetd (avant Gutsy seulement)....................................... 11 7.2 Configuration générale de samba........................................... 11
5 / 12 8 TODO / Roadmap / Buglist / Q&A. 11 8.1 Ajout des utilisateurs par copie d une autre installation............................... 11 8.1.1 Données de l exemple............................................ 12 8.1.2 Procédure................................................... 12 9 GNU Free Documentation License 12
6 / 12 1 Cahier des charges, objectifs, solutions retenues, fonctionnalités, explications 1.1 Cahier des charges, objectifs 1.1.1 Publier les ressources locales vers les machines virtuelles Des nombreux logiciels s appuyant sur des technologies d il y a vingt ans sont encore en service. Par exemple des logiciels de comptabilité, ou encore des logiciels de gestion de machines outils. La solution la plus aisée est d installer ces outils dans une machine virtuelle windows. Les motivations précises d utilisation de machines virtuelles sortent du cadre de cette procédure. Ces machines requièrent des ressources de données et imprimantes, tâche dévolue à samba. Le cahier des charges principal est donc de disposer de partages windows même si la station est autonome et non connectée au réseau. Les natures et modalités de mise en place de ces réseaux sort du cadre de cette procédure. Seul importe le fait que les partages de volumes et d imprimantes doivent être actifs sur tous les réseaux physiques, boucles locales et autres virtuels. 1.1.2 Publier les ressources d une station sur le réseau intranet local 1.2 Solutions retenues / principe de fonctionnement Samba est utilisé avec les fonctionnalités suivantes: Samba écoute toutes les interfaces réseau. Accès par mot de passe crypté. Pour les éventuels windows antérieurs a 98 et DOS il faudra donc ajouter des outils a la config standard. Le backend d authentification est tdbsam. C est celui configuré par défaut sur Ubuntu, sauf erreur a partir de Ubuntu 8.04. Les clients windows installent toutes les imprimantes visibles avec un même pilote postscript couleur. Ils peuvent, a leur discrétion installer un pilote spécifique à une imprimante pour en exploiter toutes les fonctionnalités. Sur chaque station une imprimante PDF est disponible, toujours en utilisant un pilote postscript couleur coté windows. De cette manière chaque utilisateur peux générer un pdf qu il trouvera dans le dossier PDF de son répertoire utilisateur Linux. Il pourra ainsi imprimer ce fichier a partir de Linux si d aventure une imprimante physique venait a ne plus fonctionner depuis windows, ce qui est arrivé pas mal de fois. 2 A savoir De la documentation officielle The Official Samba 3.5.x HOWTO and Reference Guide il faut au moins garder à l esprit ce qui suit: Il y a un smbpasswd méthode d autentification et un smbpasswd utilitaire de configuration des utilisateurs Samba. Le smbpasswd méthode d autentification Smbpasswd est une des méthodes de stockage des identifiants et des autentifications parmi d autres: smbpasswd, tdbsam, ldapsam et d autres encore. La méthode utilisée ici n est pas basée sur smbpasswd mais sur tdbsam, tdb pour "Trivial Data Base". Les éléments d authentification sont stockés dans une base de donnée a /var/lib/samba/passdb.tdb. Le smbpasswd outil de configuration des utilisateurs. Il existe aussi pdbedit, destiné si j ai bien compris a remplacer smbpasswd. Smbpasswd peut être utilisé au même titre que bdbedit pour ajouter et configurer les utilisateurs quelle que soit le backend choisit. A partir de Samba 3 on utilise une seule et unique méthode d authentification a choisir parmi celles disponibles. Ayant tdbsam installé par défaut par Ubuntu, créer ou modifier /etc/samba/smbpasswd ne sert donc a rien. pdbedit permet de récupérer les information d un backend pour en installer un autre.
7 / 12 L outil de création et de modification des utilisateurs Unix passwd permet de créer un utilisateur ou changer un mot de passe en lui en fournissant un mot de passe crypté. Cela permet de renseigner un fichier avec tous les mot de passe cryptés affin de créer tous les utilisateurs à la fois (voir procédure création utilisateurs), sans prendre le risque inconsidéré d avoir un fichier contenant tous les mots de passe en clair. Malheureusement cette possibilité n est offerte ni pas smbpasswd, ni par pdbedit. Il faut donc saisir manuellement les mots de passe un par un. Cependant, le fichier smbpassw est lisible par un être humain et pdbedit permet d en importer le contenu. C est la méthode qu on utilisera pour créer les utilisateurs Samba par lot. 3 Pré-requis matériel et logiciel. Liste de ce qui est nécessaire au préalable au niveau du hardware et du software pour utiliser cette procédure. Les imprimantes sont installées et accessibles par le réseau. Note cependant que celles qui seront ajoutées ultérieurement seront automatiquement disponibles pour les utilisateurs windows. Le volume data est monté (bind mount) dans /export/[computername]_data. Idem pour les autres volumes éventuels à exporter pour les environnements windows. SSH en service vers la machine qui nous servira a récupérer les comptes samba (optionnel mais recommandé pour gagner du temps). 4 Versions, maturité. Liste des versions validées. Niveaux de fonctionnalité atteintes, ou manquantes. Résumé Ce chapitre donne des appréciations générales ainsi que les numéros des versions logicielles validées. Pour les descriptions détaillées, bugs et autre, voir le chapitre approprié. Nature Version Maturité smbd 3.4.7 OK Partages volumes OK Partages imprimantes OK Distribution des pilotes Je suis pas encore parvenu a faire fonctionner ce dispositif. 5 Procédure 5.1 Paquetages 5.1.1 Ubuntu 10.04 Lucid Lynx: Les fonctionnalités clientes sont présentes par défaut. Seul est donc a jouter le serveur. Install serveur: sudo aptitude install samba Install configurateursudo aptitude install swat Optionnellement des outils supplémentaires si ceux disponibles de base ne plaisent pas: sudo aptitude install pyneighborhood komba2 smbc
8 / 12 5.2 Configuration générale de samba 1. Sauvegarder le fichier de config samba: sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.ori.original-from-rpminstall 2. ouvrir http://localhost:901 dans un navigateur. Saisir les nom et mots de passe de l administrateur. 3. sélectionner l onglet Wizard 4. Renseigner comme suit: Server type: StandAlone WINS: Not Used ("ne pas descendre" depuis Ubuntu Hardy). Expose Home: Yes 5. Valider (commit ou "rewrite smb config file") 6. Choisir l onglet Globals Renseigner comme suit (seuls sont indiqués les paramètres différents des valeurs par défaut): workgroup: PROFILE netbios name: le nom de l ordinateur security: USER 7. Valider (commit changes) 8. Cliquer su l onglet Shares (normal view). 5.3 Si des clients de technologie antérieurs à Windows NT (i.e. windows 98) doivent avoir accès au partages 1. Choisir l onglet Globals 2. Choisir le menu détail. 3. Renseigner comme suit (seuls sont indiqués les paramètres différents des valeurs par défaut): lanman auth: yes 4. Valider 5.4 Créer les partages de volumes 5.4.1 Partage des données 1. Dans le champs de saisie "créer un partage", saisir DATA puis cliquer sur créer un partage 2. Cliquer sur Vue détaillée 3. Renseigner ensuite comme suit (seules les valeurs différant des valeurs par défaut figurent): comment: Données de travail path: /export/data read only: no browsable: yes create mask: 0770 directory mask: 0770 available: Yes 4. Appliquer les changements 5.4.1.1 Partage des sources de logiciels et du volume de sauvegardes Procédure idem pour /export/src et /export/backups. En cas de partages multiples ne différant que par le nom, créer le premier selon instruction ci-dessus, vérifier que cela fonctionne, puis ajouter les suivants par copier coller dans le fichier /etc/samba/smb.conf.
9 / 12 5.5 Configurer les utilisateurs 5.5.1 Ajout a la main Pour chaque utilisateur: sudo smbpasswd -a user 5.5.2 Ajout par script Créer un script sur le modèle suivant: #! /bin/bash echo "";\ echo "Ajout-des-utilisateurs-samba"; \ echo "v1.0.100527 by TMA"; \ echo "This script execute in two lines to let use bash history"; \ echo ""; \ echo "La commande avec passwd en clair est:"; \ echo echo -e "password\password" (smbpasswd -a -s user) ; \ echo ""; \ echo "Définition de la fonction en une ligne:"; \ set -x; \ set -e; \ function mysmbpasswd \ { \ smbpasswd -x $1; \ ( echo $2 ; echo $2) (smbpasswd -a -s $1); \ } mysmbpasswd user1 passwuser1; \ mysmbpasswd user2 passwuser2; \ set +x; \ set +e; \ Observer que l utilisateur est dans un premier temps supprimé. J ai eu des soucis d attribus incorrects et la solution a été de supprimer d abord l utilisateur. Pas de solution simple pour le moment sans montrer les mots de passe en clair. 5.6 Appliquer les changements Sous Ubuntu 10.04: sudo service smbd restartsudo service nmbd restart 5.7 Partage des imprimantes Les imprimantes sont automatiquement partagées. Pour les détails, pièges et bugs, voir la procédure d installation et partage d imprimantes. 5.8 Précautions avec les machines virtuelles Lors des tests sous windows, si ceux-ci fonctionnent dans une machine virtuelle, penser à configurer la carte réseau de type bridged pour voir les autres machines du réseau.
10 / 12 6 Procédure détaillée 6.1 Observer le fonctionnement de smbd et nmbd Lors de problèmes de connections, exécuter smbd et nmbd dans une console en tache frontale pour voir interactivement leurs fonctionnements 1. arrêter samba: sudo /etc/init.d/samba stop 2. dans une console saisir: nmbd -FSi -d2 3. Dans une autre console saisir: smbd -FSi -d2. 4. après les manipulations redémarrer samba: sudo /etc/init.d/samba stop. 6.2 Problème partage home disparu Observé le 2 août 2009 sur la station t2400 Rajouter le partage en collant le texte suivant dans /etc/samba/smb.conf [homes] comment = Home Directories valid users = %S read only = No create mask = 0660 directory mask = 0770 Redémarrer samba: /etc/init.d/samba restart 6.3 Problèmes avec inetd La connexion à swat (http://localhost:901) échoue Passer xinetd en tache avant pour observer son travail: sudo service xinetd stop; sudo xinetd -d -dontfork. Le nombre de services lancés est indiqué ainsi que leur nature. Si smbd n y figure pas c est que le service est mal configuré ou que inetd est aussi configuré. Si inetd est configuré, soit le dévalider avec la commande sysv-rc-conf soit le désinstaller si les dépendances le permettent. Une fois que le service smbd apparaît dans la liste des services de xinetd, essayez de vous connecter à swat. Xinetd montrera les éventuelles erreurs. 6.4 Tester 6.4.1 Tests sous linux Utiliser komba2 ou pyneighborhood pour voir si les partages sont présents. Monter et explorer le partage pour confirmer que les droits d accès sont OK. TUYAU Ne pas oublier de saisir un nom d utilisateur et son mot de passe pour tester la navigation. Dans Komba, cliquer droit sur un groupe de travail puis choisir "set password" Dans pyneighborhood, aller dans Édit / Préférences. Dans l onglet général, AVERTISSEMENT BUG: FIXME: Sur la station t2400, sous Ubuntu 8.04 Hardy, komba2 plante.
11 / 12 AVERTISSEMENT BUG: FIXME: Sur la station t2400, impossible d afficher ou de monter les partages avec pyneighborhood, bien que ceux-ci fonctionnent sous windows. 7 Anciennes procédures Méthodes devenues obsolètes du fait de l évolution des logiciels ou du changement de politique NOTE A conserver tant que les anciennes version de logiciel sont encore maintenues. 7.1 Paquetages 7.1.1 Versions égales ou antérieures a Ubuntu 8.04 Hardy Avant Ubuntu 8.04 Hardy: sudo aptitude install xinetd linneighborhood linpopup komba2 samba samba-common smbc smbclient smbfs swat Ubuntu 8.04 Hardy: sudo aptitude install xinetd pyneighborhood linpopup komba2 samba samba-common smbc smbclient smbfs swat 7.1.2 Xinetd (avant Gutsy seulement) Requis pour swat. 1. Confirmer que le fichier /etc/default/xinetd contient bien la ligne XINETD_OPTS="-inetd_compat" 2. redémarrer xinetd sudo /etc/init.d/xinetd restart 7.2 Configuration générale de samba En plus de la procédure principale, exécuter ce qui suit: 1. Pour versions antérieures a Ubuntu 10.04 seulement Sélectionner le partage "print$" / choose chare. Dans le chapitre "Browse options" sélectionner browsable: YES puis valider (bouton "commit changes") 8 TODO / Roadmap / Buglist / Q&A. Fonctionnalités a améliorer, non installés ou insatisfaisantes. 8.1 Ajout des utilisateurs par copie d une autre installation AVERTISSEMENT BUG-FIXME: Cette procédure fonctionne tellement mal que finalement ça va beaucoup plus vite de saisir tous les utilisateurs à la main. Pour la mettre au point, étudier les techniques d authentification windows actuelles et antérieures. La technique proposée consiste a extraire (exporter) la configuration d une machine pour la stocker dans un fichier au format smbpasswd pour configurer ensuite une nouvelle station (importer) avec tous les utilisateurs a l identique.
12 / 12 8.1.1 Données de l exemple La station a5600 est le serveur Samba principal. On souhaite installer une nouvelle machine p1600 avec tous les utilisateurs Samba à l identique de a5600. 8.1.2 Procédure 1. FAIRE LE MÉNAGE Sur la station a5600, ajouter les utilisateurs manquants, enlever les utilisateurs qui n existent plus sur linux, vérifier que tous les mots de passe sont saisis ( voir man pdbedit). 2. EXPORTER LA CONFIGURATION pdbedit -d 1 -e smbpasswd:/data/elec/admin/procedures/informatique/install-config/linux /2502_Donnees_Partages-donnees-et-imprimantes-Windows_Samba_ooo/Configs/a5600l/ hardy_100526/smbpassw_on-a5600_distrib-hardy-100526 NOTE BUG-FIXME: les comptes que j ai fraîchement créés avec smbpasswd et pdbedit provoquent l erreur "build_sam_pass: Failing attempt to store user with non-uid based user RID". Ils fonctionnent cependant depuis windows 98. "RID" est un identifieur windows relatif construit a partir des SID user et machine. Tentatives correction infructueuses: suppression et recréation alternativement depuis smbpasswd et pdbedit. Impossible de trouver une solution sur internet Tentative correction fructueuse: supprimer les comptes samba concernés, les régénérer a partir de webmin a partir des comptes Unix, saisir leurs mots de passe dans webmin. NOTE BUG-FIXME: Certains comptes ont des UID incorrects du style 1 au lieu de 1000 ou 7 au lieu de 1003. Pourtant ces numéros sont correct lorsque listé avec pdbedit -L. Probablement lié au bug précédent en relation avec le paramètre par défaut "algorithmic rid base" qui vaut "1000". Correction: éditer le fichier généré et saisir les bons n 3. IMPORTER LA CONFIGURATION Récupérer le fichier généré précédemment. Exemple pour la commande qui suit a partir d un montage NFS. pdbedit -i smbpasswd:/media/a5600/a5600_data/elec/admin/procedures/informatique/install -Config/Linux/2502_Donnees_Partages-donnees-et-imprimantes-Windows_Samba_ooo/ Configs/a5600l/hardy_100526/smbpassw_on-a5600_Distrib-Hardy-100526 Corriger les erreurs. Dans mon cas certains utilisateurs et groupes manquaient. Par exemple smbguest. Les ajouter. Il est très rentable de prendre le temps d ajuster le script de la procédure d ajout utilisateurs et de l exécuter ensuite a nouveau. NOTE BUG-FIXME: L import ne fonctionne pas pour plus de la moitié des comptes. La commande pdbedit -L montre des séries de "XXXXX" pour le SID. Correction: saisir les mots de passe à la main avec sudo smbpasswd [user]. 9 GNU Free Documentation License GNU Free Documentation License