Explorer les Livres électroniques
Catégories
Explorer les Livres audio
Catégories
Explorer les Magazines
Catégories
Explorer les Documents
Catégories
html
SAMBA
GLOSSAIRE
smb.conf
Exemple de configuration minimum
swat Samba Web Administration Tool
OUTILS DE DIAGNOSTIC
testparm test de configuration
testparm
testparam -s
testparam -v
nmblookup résolution de noms NetBios
findsmb Affichage machines samba sur uen segment de réseau
smbclient Client samba accès ressources partagées
smbstatus Affichage des connexions samba
smbtree Affichage du voisinage réseau
nbtscan Analyse réseau des machines netbios
OUTILS DIVERS
mount.cifs Montage de répertoire partagé
smb://nom_serveur Navigateur Web
DEPANNAGE SAMBA
EXEMPLES DE CONFIGURATION
SAMBA COMME CONTROLEUR PRINCIPAL DE DOMAINE
Administration domaine net
Administration utilisateurs pdbedit
Outils Samba TDB (Trivial DataBase) tdb-tools
Table d'index
On y trouvera :
Des exemples très simples de ce que l'on peut faire avec samba.
Des commentaires sur SWAT l'interface de configuration de samba.
Des exemples d'outils de diagnostic.
Des exemples d'outils autour de samba.
Les utilisateurs de samba sont souvent pressés d'obtenir le résultat attendu, mais oublient souvent qu'il vaut mieux commencer par des utilisations simples avant de réaliser des configurations complexes.
SERVEUR SAMBA Un serveur samba est une machine (la plupart du temps non windows) qui propose des ressources partagées à des clients windows ou à des clients samba (sur des machines non windows).
CLIENT SAMBA Le client samba est typiquement une machine non windows qui veut accéder à des ressources partagées par des serveurs ou des stations windows, ou par des serveurs samba non windows.
Encore que pour les machines non windows entre elles, il existe des moyens bien plus performants de partages de ressources.
POSTE DE TRAVAIL Le poste de travail (windows ou non windows) d'un utilisateur pourra être à la fois client s'il accède à des ressources partagées ailleurs mais aussi serveur s'il partage ses données avec d'autre utilisateurs.
[nom_section1]
mot_cle = valeur
.........
.......
[nom_section2]
mot_cle = valeur
.........
.......
Si l'on modifie une ou plusieurs valeurs il est nécessaire de redémarrer et rechercher le démon smb et/ou nmb pour la prise en compte de ces modifications.
IMPORTANT : Ne pas oublier de tester la syntaxe de votre fichier avec la commande testparm .
En effet si une ligne non indispensable n'est pas correcte, elle ne sera pas prise en compte, et avec les valeurs par défaut prise en compte, vous n'aurez peut-être pas le résultat attendu à cause d'une simple faute de frappe.
EXEMPLE :
Dans votre fichier smb.conf
securite = share
au lieu de
security = share
n'entrainera pas d'erreur au démarrage, mais celui-ci se fera avec la valeur par défaut security = user.
1.2.1 : Exemple de configuration minimum Début Précédent Suivant Sommaire Préc.page.lue Accueil
┌────────────────────────────┐
│ [global] │
│ security = share │ Par défaut smb prendrait user ce qui demande une authentification.
│ [public] │ Nom de la ressource
│ path = /public │ Il faut définir ici le répertoire que l'on désire partager sous le nom de la section
│ guest ok = yes │ Par défaut smb prendrait guest ok = no.
│ writable = yes │ Par défaut smb prendrait read only = yes.
└────────────────────────────┘
Vérification
$ testparm -s
Load smb config files from /etc/samba/smb.conf
Processing section "[public]"
Loaded services file OK.
Server role: ROLE_STANDALONE
[global]
workgroup = WORKGROUP
security = SHARE
[public]
path = /public
read only = No
guest ok = Yes
reload ::= Rechargement de la nouvelles configuration sans interruptions des connexions déjà établies (mais qui travaillent avec
l'ancienne configuration.
restart ::= Arrêt du service avec interruption des connexions déjà établies, et re-démarrage avec la nouvelle configuration.
Si la configuration ne modifie que des valeurs sur les partages ou globales non NetBios, le rechargement/re-démarrage de nmb
peut être considéré comme facultatif.
Workgroup Master
--------- -------
WORKGROUP LOCALHOST
PREMIERS PROBLEMES
Le groupe de mes stations windows n'est pas WORKGROUP mais MONGROUPE.
J'ai plusieurs serveurs samba qui ont pour nom LOCALHOST.
Il suffit d'ajouter ces paramètres dans la section globale.
┌────────────────────────────┐
│ workgroup = MONGROUPE │ Par défaut nmb prend WORKGROUP
│ netbios name = SERVEUR1 │ Par défaut nmb prendrait le hostname, nom d'hôte (uname -n), qui, par défaut, sur un système installé est localhost
└────────────────────────────┘
Puis il faudra recharger ou redémarrer les deux services smb ET nmb. En effet les modifications entrainent le redémarrage des deux services.
Ce qui n'est pas toujours le cas. Exemple : Si l'on ne modifie que les options d'un partage seul smb doit être rechargé/redémarré.
A propos du nom LOCALHOST qui pourrait être commun à plusieurs machines, samba permet de résoudre le problème avec netbios name, mais il vaut mieux, dès le départ, nommer toutes les machines de façon différente.
Si le serveur est sous Linux avec SELinux vérifiez les messages d'erreur SELinux dans /var/log/messages.
Sous root :
# cd /var/log/smaba
# ls -lrt Affiche des fichiers par date de dernière modification
drwx------ 4 root root 4096 déc 7 06:26 cores
drwx------ 2 root root 4096 déc 7 08:27 old
-rw-r--r-- 1 root root 7021 déc 9 11:48 log.nmbd Trace des commandes de recherche des noms NetBios
-rw-r--r-- 1 root root 6011 déc 9 11:42 log.smbd Trace des commandes principales effectuées par samba.
-rw-r--r-- 1 root root 6011 déc 9 11:42 log.monpc Trace des requêtes en provenance d'un client «monpc».
1.2.2 : swat Samba Web Administration Tool Début Précédent Suivant Sommaire Préc.page.lue Accueil
À cause des multiples usages de Samba, une configuration complète est en dehors du champ du livre BLFS. En fait, beaucoup de livres complets ont été écrits sur ce seul thème. La documentation inclue, un livre populaire publié par O'Reilly, peut être lu avec votre navigateur web sur file:///usr/share/samba/swat/using_samba/toc.html.
L'outil intégré SWAT (Samba Web Administration Tool, c'est-à-dire outil web d'administration samba) est utilisé pour une configuration basique. Néanmoins, avant d'utiliser SWAT, vous devez une entrée dans /etc/services et faire vos modifications dans la configuration d'inetd/xinetd.
Si vous installez swat à partir d'une distribution récente, il est vraisemblable que l'installation du paquet prendra en charge la configuration du démarrage de swat.
SWAT n'est pas un service avec démon tourant au démarrage de la machine, mais un programme qui démarre si une requête sur le port 901 arrive sur la machine surlaquelle swat est installé.
Pour cela, il doit y avoir :
Une entrée swat 901/tcp dans le fichier service.
ET
Une entrée swat stream tcp nowait.400 root /usr/sbin/swat swat dans le fichier /etc/inetd.conf.
OU
Une entrée service swat { ....... } dans /etc/xinetd.conf
OU
Un fichier swat (contenant une entrée service swat { ...... }) dans le répertoire /etc/xinetd.d
SWAT peut être lancé en utilisant l'URL http://localhost:901 dans votre navigateur préféré.
Si vous avez fait une installation manuelle ou si l'installation du paquet n'a pas fait correctement le paramétrage :
Lancez la commande killall -HUP inetd pour relire le fichier inetd.conf modifié.
Si xinetd est utilisé, la commande suivante ajoutera l'entrée swat dans /etc/xinetd.conf :
2.1 : testparm test de configuration Début Précédent Suivant Sommaire Préc.page.lue Accueil
La commande «testparm» permet de tester la syntaxe des éléments contenus dans le smb.conf.
Il s'agit d'un contrôle syntaxique, qui permet de garantir une compréhension des mots-clés, mais ne vérifie pas les valeurs associées à ces mots-clés.
Donc un testparm sans erreur est nécessaire mais pas suffisant pour garantir un bon fonctionnement.
Exemple :
Dans «guest = nom_utilisateur» nom_utilisateur n'est pas vérifié comme étant un utilisateur réel dans etc/passwd Les valeurs discrètes d'un paramètre comme §security§ (SHARE, USER, ...) incorrectes ne sont pas affichées par testparm et c'est donc la valeur par défaut USER qui sera prise en compte mais sans message d'erreur ou d'alerte.
La commande «testparm» sans option teste les valeurs des paramètres et affiche les valeurs explicites (et pas les commentaires) de smb.conf.
L'options «-s» permet de ne pas avoir d'arrêt pour la demande de «validation pour continuer» (pratique pour faire des sauvegardes des valeurs dans un smb.conf.backup.
L'option «-v» permet de voir quelles sont les options réellement prises par samba :
Options explicites définies dans le smb.conf.
Options non spécifiées dans le smb.conf et prises par défaut.
2.2 : nmblookup résolution de noms NetBios Début Précédent Suivant Sommaire Préc.page.lue Accueil
nmblookup est un outil de résolution de nom NetBios que l'on pourrait comparer à nslookup ou dig et DNS
┌────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
│ nbmlookup options arguments │
│ nbmlookup -dx options arguments Niveau de débug donc détail sur le fonctionnement │
│ nbmlookup nom_netbios [ nom_netbios ... ] Recherche d'un (plusieurs) noms netbios sur le réseau │
│ nbmlookup '*' Recherche de tous les noms netbios sur le réseau │
│ nbmlookup -A adresse_ip Recherche d'un nom pour une adresse précise │
│ œnbmlookup -M nom_groupe Recherche des machines d'un groupe │
│ œnbmlookup -M nom_domaine Recherche des machines d'un domaine │
│ nbmlookup -S adresse_ip Recherche du détail des services pour une adresse précise │
│ nbmlookup -S '*' Recherche du détail des services pour tous les netbios du réseau │
└────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
───────────────────────────────────────────────────
nmblookup -A adresse_ip
Looking up status of 192.168.1.101
MON-XP <00> - B <ACTIVE>
MONGROUPE <00> - <GROUP> B <ACTIVE>
MON-XP <20> - B <ACTIVE>
MONGROUPE <1e> - <GROUP> B <ACTIVE>
MONGROUPE <1d> - B <ACTIVE>
..__MSBROWSE__. <01> - <GROUP> B <ACTIVE>
───────────────────────────────────────────────────
nmblookup "*"
192.168.1.100 *<00>
192.168.1.101 *<00>
───────────────────────────────────────────────────
nmblookup -S "*"
querying * on 192.168.1.255
192.168.1.100 *<00>
Looking up status of 192.168.1.100
PATMAR <00> - B <ACTIVE>
PATMAR <03> - B <ACTIVE>
PATMAR <20> - B <ACTIVE>
..__MSBROWSE__. <01> - <GROUP> B <ACTIVE>
WORKGROUP <1d> - B <ACTIVE>
WORKGROUP <1e> - <GROUP> B <ACTIVE>
WORKGROUP <00> - <GROUP> B <ACTIVE>
192.168.1.101 *<00>
Looking up status of 192.168.1.101
VM_F10 <00> - B <ACTIVE>
VM_F10 <03> - B <ACTIVE>
VM_F10 <20> - B <ACTIVE>
MONGROUPE <1e> - <GROUP> B <ACTIVE>
MONGROUPE <00> - <GROUP> B <ACTIVE>
───────────────────────────────────────────────────
2.3 : findsmb Affichage machines samba sur uen segment de réseau Début Précédent Suivant Sommaire Préc.page.lue Accueil
findsmb est un script perl permettant de chercher sur un segment de réseau les machines qui répondent à une requête de type samba.
findsmb
IP ADDR NETBIOS NAME WORKGROUP/OS/VERSION
---------------------------------------------------------------------
192.168.35.10 MINESET-TEST1 [DMVENGR]
192.168.35.55 LINUXBOX *[MYGROUP] [Unix] [Samba 2.0.6]
192.168.35.56 HERBNT2 [HERB-NT]
192.168.35.63 GANDALF [MVENGR] [Unix] [Samba 2.0.5a for IRIX]
192.168.35.65 SAUNA [WORKGROUP] [Unix] [Samba 1.9.18p10]
192.168.35.71 FROGSTAR [ENGR] [Unix] [Samba 2.0.0 for IRIX]
192.168.35.78 HERBDHCP1 +[HERB]
192.168.35.88 SCNT2 +[MVENGR] [Windows NT 4.0] [NT LAN Manager 4.0]
2.4 : smbclient Client samba accès ressources partagées Début Précédent Suivant Sommaire Préc.page.lue Accueil
smbclient est un outil permettant un accès aux répertoires partagés NetBios en mode texte (d'une façon présentant des analogies avec un client «ftp».
Même si l'on utilise que des interfaces graphiques pour naviguer sur des ressources partagées, il faut se souvenir de la commande smbclient et surtout de son mode de déboguage qui permettra peut-être de localiser un problème, y compris avec un «smbclient 127.0.0.1» pour tester le(s) partage(s) du serveur samba.
┌─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
│ smbclient nom_de_service [ mot_de_passe ] [ -b <taille_de_buffer> ] [ -d niveau_de_deboggage ] [ -D repertoire ] [ -U utilisateur ] │
│ [ -W groupe_de_travail ] [ -M <nom_netbios> ] [ -m maxprotocol ] [ -A fichier_d_autorisations ] [ -N ] [ -l fichier_de_log ] │
│ [ -L <nom_netbios> ] [ -I IP_de_destination ] [ -E <code_de_terminal> ] [ -c <ligne_de_commande> ] [ -i scope ] │
│ [ -O <options_de_socket> ] [ -p port ] [ -R <ordre_de_résolution_de_noms> ] [ -s <fichier_de_configuration_smb> ] │
│ [ -T<c|x>IXFqgbNan ] │
└─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
smbclient -N -L //adresse_ip
ou
smbclient -N -L //nom_netbios
Domain=[MONGROUPE] OS=[Unix] Server=[Samba 3.2.8-0.26.fc10]
Server Comment
--------- -------
PATMAR samba
Workgroup Master
--------- -------
MONGROUPE PATMAR
2.5 : smbstatus Affichage des connexions samba Début Précédent Suivant Sommaire Préc.page.lue Accueil
La commande smbstatus affiche les connexions en cours sur le serveur où la commande est exécutée.
# smbstatus
Samba version 3.2.8-0.26.fc10
PID Username Group Machine
-------------------------------------------------------------------
Locked files:
Pid Uid DenyMode Access R/W Oplock SharePath Name Time
--------------------------------------------------------------------------------------------------
14804 500 DENY_NONE 0x100001 RDONLY NONE /public . Sat Feb 7 09:49:27 2009
2.6 : smbtree Affichage du voisinage réseau Début Précédent Suivant Sommaire Préc.page.lue Accueil
2.7 : nbtscan Analyse réseau des machines netbios Début Précédent Suivant Sommaire Préc.page.lue Accueil
nbtscan ne fait pas partie de la suite officielle samba, mais est fourni très souvent par un paquet nbtscan.
Il existe aussi un «nbtscan.exe» pour utilisation sous windows.
3.1 : mount.cifs Montage de répertoire partagé Début Précédent Suivant Sommaire Préc.page.lue Accueil
┌─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
│ mount -t cifs //nom_serveur/nom_partage point_montage │
│ mount -t cifs -o user=nom_utilisateur,password=mot_de_passe //nom_serveur/nom_partage point_montage │
│ │
│ nom_serveur ::= Nom serveur (ou adresse IP) de la machine qui partage la ressource à laquelle on veut accéder │
│ Il est à noter qu'il n'y a pas de résolution de nom NetBios avec mount.cifs │
│ nom_partage ::= Nom de partage de la ressource à la quelle on veut accéder │
│ point_montage ::= Répertoire (chemin absolu) servant au montage │
└─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
3.2 : smb://nom_serveur Navigateur Web Début Précédent Suivant Sommaire Préc.page.lue Accueil
Sous un OS et dans un navigateur qui reconnaissent le protocole «smb» (firefox, nautilus, dolphin, ...) :
┌─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
│ smb://nom_serveur ::= Accès aux différents noms de partages. │
│ smb://nom_serveur/nom_partage ::= Accès à la racine du partage spécifié |
│ smb://nom_serveur/nom_partage/sous_repertoire ::= Accès direct à un sous-répertoire |
│ smb://nom_serveur/nom_partage/nom_fichier ::= Accès direct à un nom de fichier |
└─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
Le titre de ce chapitre pourrait paraitre très ambitieux, mais dès le départ précisons qu'il se limitera à préciser des outils à utiliser et pistes à suivre.
La mise en œuvre d'un serveur SAMBA, ainsi que l'utilisation des ressources de ce serveur par un client utilisent de chaque côté client/serveur des couches qui peuvent chacune être à l'origine de problèmes. Une bonne compréhension des couches du coté serveur et du coté client est indispensable à la localisation d'un problème.
La plupart des outils samba disposent d'une option de débogage ou d'un niveau de détail (verbose) qui permettent d'en savoir plus sur le déroulement d'une requête.
5.1 : SAMBA COMME CONTROLEUR PRINCIPAL DE DOMAINE Début Précédent Suivant Sommaire Préc.page.lue Accueil
[global]
workgroup = MONDOMAINE
netbios name = PATMAR
security = user
passdb backend = tdbsam
os level = 33
preferred master = auto
domain master = yes
local master = yes
domain logons = yes
logon path = \\%N\profiles\%U
logon drive = H:
logon home = \\%N\%U
logon script = logon.bat
[homes]
comment = Home Directories
read only = no
browseable = no
create mask = 0700
directory mask = 0700
valid users = %S
[netlogon]
path = /public/netlogon
read only = yes
[profiles]
path = /public/profiles
read only = no
create mask = 0600
directory mask = 0700
5.2 : Administration domaine net Début Précédent Suivant Sommaire Préc.page.lue Accueil
La commande net qui fait partie de la suite Samba permet à partir de samba de faire les commandes que l'on fait (ou peut faire) habituellement sous DOS/CMD d'une station windows.
Pour savoir où sont stockés les fichiers *tdb et private/*tdb :
smbd -b | grep LOCKDIR
smbd -b | grep PRIVATE_DIR
PERMANENTS :
account_policy |Samba/NT account policy settings, includes password expiration settings.
group_mapping |Mapping table from Windows groups/SID to UNIX groups.
ntdrivers |Stores per-printer installed driver information.
ntforms |Stores per-printer installed forms information.
ntprinters │Stores the per-printer devmode configuration settings.
passdb |Exists only when the tdbsam passwd backend is used. This file stores the SambaSAMAccount information. Note: This file requires that user POSIX account information is availble from either the /etc/passwd file, or from an alternative system source.
registry |Read-only Samba database of a Windows registry skeleton that provides support for exporting various database tables via the winreg RPCs.
secrets |This file stores the Workgroup/Domain/Machine SID, the LDAP directory update password, and a further collection of critical environmental data that is necessary for Samba to operate correctly. This file contains very sensitive information that must be protected. It is stored in the PRIVATE_DIR directory.
share_info |Stores per-share ACL information.
winbindd_idmap |Winbindd's local IDMAP database.
TEMPORAIRES :
protocole ::=
RPC est utilise pour NT4 et Windows 2000
ADS est utilisé pour ActiveDirectory,
RAP est utilisé pour les anciens clients (Win9x/NT3)
5.3 : Administration utilisateurs pdbedit Début Précédent Suivant Sommaire Préc.page.lue Accueil
pdbedit -L pdbedit -v -L
5.4 : Outils Samba TDB (Trivial DataBase) tdb-tools Début Précédent Sommaire Préc.page.lue Accueil