Samba-3.6.8

Introduction à Samba

Le paquet Samba offre des services de fichiers et d'imprimante à des clients SMB/CIFS et du partage réseau Windows à des clients Linux. Samba peut aussi se configurer en tant que remplaçant du contrôleur de domaine4.0 de Windows NT (attention si vous travaillez avec NT PDC's et BDC's), un serveur de fichiers/imprimantes agissant comme membre d'un domaine de Windows NT 4.0 ou Active Directory et un serveur DNS NetBIOS (rfc1001/1002) (qui offre entre autres choses le support de la navigation dans un LAN).

Ce paquet est connu pour se construire correctement sur une plateforme LFS-7.2.

Informations sur le paquet

Dépendances de Samba

Requises

libtirpc-0.2.2

Facultatives

popt-1.16, Linux-PAM-1.1.6, Cups-1.6.1, OpenLDAP-2.4.33, Gamin-0.1.10, acl-2.2.51, xfsprogs-3.1.8, MIT Kerberos V5-1.10.3, Python-2.7.3 (utilisé seulement pour la suite de tests), tdb (version 1.2.1), libcap2-2.22, libunwind, avahi-0.6.31, OpenAFS, et Valgrind (eventuellement utilisé par la suite de tests)

Vous aurez besoin d'installer un des paquets kerberos si vous prevoyez d'utiliser votre système pour joindre un domaine Windows NT.

Support facultatifs pour Samba4

GnuTLS-3.0.25 (recommendé), Python-2.7.3, et SQLite-3.7.14.1

Notes utilisateur : http://wiki.linuxfromscratch.org/blfs/wiki/samba3

Installation de Samba

Ce programme n'a pas de suite de tests fonctionnelle.

Installez Samba en lançant les commandes suivantes :

cd source3 &&
  
./configure    /
--prefix=/usr   /
--sysconfdir=/etc    /
--localstatedir=/var  /
--with-piddir=/run   /
--with-pammodulesdir=/lib/security   /
--with-fhs       /
--enable-nss-wrapper   /
--enable-socket-wrapper /
&&
sed -i "s/-ldl/& -ltirpc -lpthread/" Makefile &&
make

Pour tester les résultats, lancez : make test. Si vous avez installé Linux-PAM et construit les modules de la bibliothèque PAM, vous pouvez effectuer un test dlopen en effectuant : make test_pam_modules.

Maintenant, en tant qu'utilisateur root :

make install &&

cp pkgconfig/wbclient.pc /usr/lib/pkgconfig               &&
install -v -m755 ../nsswitch/libnss_win{s,bind}.so /lib   &&
ln -v -sf libnss_winbind.so /lib/libnss_winbind.so.2      &&
ln -v -sf libnss_wins.so    /lib/libnss_wins.so.2         &&

install -v -m644 ../examples/smb.conf.default /etc/samba  &&

if [ -d /etc/openldap/schema ]; then
    install -v -m644    ../examples/LDAP/README                                      /etc/openldap/schema/README.LDAP     &&
    install -v -m644    ../examples/LDAP/samba*                                      /etc/openldap/schema                 &&
    install -v -m755    ../examples/LDAP/{convert*,get*,ol*}                         /etc/openldap/schema                 && 
fi &&

install -v -m755 -d /usr/share/doc/samba-3.6.8 &&
install -v -m644    ../docs/*.pdf                     /usr/share/doc/samba-3.6.8 &&
ln -v -s ../../samba/swat  /usr/share/doc/samba-3.6.8

Explication des commandes

--enable-merged-build> :nbsp;: Uiliser ce paramètre pour construire le composant (alpha) Samba4 (GnuTLS est recommandé).

--sysconfdir=/etc : Paramètre le répertoire des fichiers de configuration pour éviter celui par défaut /usr/etc.

--localstatedir=/var : Paramètre le répertoire de données de variable pour éviter celui par défaut /usr/var.

--with-fhs : Affecte tous les autres chemins de fichiers de façon conforme au Filesystem Hierarchy Standard (standard de hiérarchie de système de fichiers) (FHS).

--enable-nss-wrapper : Construit la bibliothèque nss-wrapper.

--enable-socket-wrapper : cette option est nécessaire pour lancer la suite de tests.

sed -i "s/-ldl/& -ltirpc -lpthread/" Makefile : Cette commande autorise la construction de se terminer quand libtirpc est utilisée au lieu des fonctions obsolètes rpc de GLibC.

cp pkgconfig/wbclient.pc /usr/lib/pkgconfig: Installe un fichier oublié par la procédure d'installation.

install -v -m755 nsswitch/libnss_win{s,bind}.so /lib : Les bibliothèques nss ne sont pas installées par défaut. Si vous souhaitez utiliser winbindd pour l'authentification du domaine Windows NT, et/ou la résolution de nom WINS, vous avez besoin de ces bibliothèques.

ln -v -sf libnss_winbind.so /lib/libnss_winbind.so.2 et ln -v -sf libnss_wins.so /lib/libnss_wins.so.2 : Ces liens symboliques sont exigés par Glibc pour utiliser les bibliothèques NSS.

if [ -d /etc/openldap/schema ]; then ...; fi> :nbsp;: Ces commandes sont utilisées pour voir si vous avez OpenLDAP d'installé, et si aussi, elles copient les exemples de schéma Samba dans le repertoire d'OpenLDAP schema.

install -v -m644 ../examples/smb.conf.default /etc/samba : Ceci copie un fichier smb.conf par défaut dans /etc/samba. Ce modèle de configuration ne fonctionnera pas tant que vous ne la copiez pas dans /etc/samba/smb.conf et ne ferez pas les modifications adaptées à votre installation. Voir la section de configuration pour les valeurs minimum à régler.

Configuration de Samba

Fichiers de configuration

/etc/samba/smb.conf

Imprimer par des clients SMB

Si vous utilisez CUPS pour les services d'impression, et si vous souhaitez imprimer sur une imprimante attachée à un client SMB, vous devez créer un périphérique de fond SMB. Pour créer le périphérique, lancez la commande suivante en tant qu'utilisateur root :

ln -v -sf /usr/bin/smbspool /usr/lib/cups/backend/smb

Informations de configuration

Compte tenu de la complexité et des usages très variés de Samba, une configuration complète pour toutes les possibilités du paquet va bien au-delà du but du livre BLFS. Cette section fournit des instructions pour configurer le fichier /etc/samba/smb.conf pour deux scénari classiques. Le contenu complet de /etc/samba/smb.conf dépendra de la finalité de l'installation de Samba.

[Note]

Note

Il se peut que vous trouviez plus facile de copier les paramètres de configuration indiqués ci-dessous dans un fichier /etc/samba/smb.conf vierge plutôt que de copier et d'éditer le fichier par défaut comme l'indique la section « Explication des commandes ». La façon de créer et d'éditer le fichier /etc/samba/smb.conf vous appartient. Assurez-vous que le fichier n'est accessible en écriture que pour l'utilisateur root (mode 644).

Scénario 1 : Installation pour un client unique autonome minimal

Choisissez cette variante si vous ne voulez que transférer des fichiers en utilisant smbclient, monter des partages Windows et imprimer sur des imprimantes Windows et si vous ne voulez pas partager vos fichiers et vos imprimantes avec des machines Windows.

Un fichier /etc/samba/smb.conf avec les trois paramètres suivants suffit :

[global]
    workgroup = MONGROUPE
    dos charset = cp850
    unix charset = ISO-8859-1

Les valeurs de cet exemple indiquent que l'ordinateur appartient à un groupe de travail Windows appelé « MONGROUPE », il utilise l'encodage « cp850 » sur la toile lorsqu'il parle à MS-DOS et à MS Windows 9x, et les noms de fichier sont stockés dans l'encodage « ISO-8859-1 » sur le disque. Adaptez ces valeurs à votre installation. La valeur « unix charset » doit être la même que la sortie de locale charmap lorsqu'on l'exécute avec la variable LANG paramétrée sur votre locale préférée, sinon il se peut que ls n'affiche pas de bons noms de fichiers pour les fichiers téléchargés.

Il n'est pas nécessaire de lancer de serveurs Samba dans ce scénario, vous n'avez donc pas besoin d'installer les scripts de démarrage fournis.

Scénario 2 : Serveur de fichiers/impression autonome

Choisissez cette variante si vous voulez partager vos fichiers et vos imprimantes avec des machines Windows sur votre groupe de travail, en plus des possibilités indiquées au scénario 1.

Dans ce cas, le fichier /etc/samba/smb.conf.default peut être un bon modèle de point de départ. Ajoutez également les paramètres « dos charset » et « unix charset » à la section « [global] » comme décrit au scénario 1 pour empêcher la corruption des noms de fichiers.

Le fichier de configuration suivant crée un partage séparé pour chaque répertoire home d'utilisateur et il rend disponibles toutes les imprimantes disponibles sur des machines Windows :

[global]
    workgroup = MONGROUPE
    dos charset = cp850
    unix charset = ISO-8859-1

[homes]
    comment = Répertoires Home
    browseable = no
    writable = yes

[printers]
    comment = Toutes les imprimantes
    path = /var/spool/samba
    browseable = no
    guest ok = no
    printable = yes

Les autres paramètres que vous pourriez vouloir personnaliser dans la section « [global] » comprennent :

    server string =
    security =
    hosts allow =
    load printers =
    log file =
    max log size =
    socket options =
    local master =

Reportez-vous aux commentaires dans le fichier /etc/samba/smb.conf.default pour des informations concernant ces paramètres.

Vu que les démons smbd et nmbd sont nécessaires dans ce cas, installez le script de démarrage samba. Assurez-vous de lancer smbpasswd (avec l'option -a) pour ajouter des utilisateurs) pour activer et paramétrer les mots de passe des comptes ayant besoin d'un accès Samba, ou utilisez l'interface Web SWAT (voir ci-dessous) pour faire la même chose. En utilisant la fondation passdb par défaut de Samba, tout utilisateur que vous essaierez d'ajouter devra aussi exister dans le fichier /etc/passwd.

Exigences avancées

Des scénari plus complexes impliquant le contrôle de domaine ou de la qualité de membre sont envisageables si on passe les bons drapeaux au script./configure lors de la construction du paquet. De tels réglages sont des sujets avancés et ne peuvent pas être traités correctement dans BLFS. De nombreux livres complets ont été écrits exclusivement sur ces thèmes. Vous devriez remarquer cependant qu'un BDC Samba ne peut pas être utilisé comme point de chute pour un PDC Windows, et réciproquement, on ne peut pas utiliser un BDC Windows comme point de chute d'un PDC Samba. En outre, dans certains scénari de membres d'un domaine, le démon winbindd et le script de démarrage correspondant sont nécessaires.

Il y a très peu de documentation disponible capable de traiter bon nombre de ces configurations avancées. Pointez votre navigateur Internet vers les liens ci-dessous pour trouver une partie de la documentation incluse avec le paquet Samba :

Script de démarrage

Pour vous être commode, on a écrit des scripts de démarrage pour Samba. Deux sont inclus dans le paquet blfs-bootscripts-20120828. Le premier, samba, lancera les démons smbd et nmbd nécessaires pour fournir les services SMB/CIFS. Le deuxième script, winbind, lance le démon winbindd, utilisé pour fournir les services de domaine Windows aux clients Linux.

L'installation Samba par défaut utilise l'utilisateur nobody pour l'accès invité au serveur. On peut éviter cela en réglant le paramètre guest account = dans le fichier /etc/samba/smb.conf. Si vous utilisez le paramètre guest account =, assurez-vous que cet utilisateur existe dans le fichier /etc/passwd. Pour utiliser l'utilisateur par défaut, lancez les commandes suivantes en tant qu'utilisateur root :

groupadd -g 99 nogroup &&
useradd -c "Unprivileged Nobody" -d /dev/null -g nogroup     -s /bin/false -u 99 nobody

Installez le script samba avec la commande suivante effectuée en tant qu'utilisateur root :

make install-samba

Si vous avez aussi besoin du script winbind pour résoudre les noms depusi les clients Windows, lancez:

make install-winbindd

Configuration de SWAT

On peut utiliser l'outil intégré SWAT (Samba Web Administration Tool (outil d'administration Web Samba) pour la configuration de de l'installation de Samba.

Réglage de SWAT en utilisant xinetd

Si ce n'est pas déjà fait, ajoutez une entrée au fichier /etc/services en tant qu'utilisateur root :

echo "swat            905/tcp" >> /etc/services

Créez le fichier xinetd-2.3.15 de Samba sous le nom de /etc/xinetd.d/swat.

[Avertissement]

Avertissement

Vous pouvez modifier ou supprimer la ligne « only_from » ci-dessous pour inclure un/d'autre(s) hôte(s). BLFS ne recommande pas d'utiliser ces procédures du fait des risques de sécurité que cela entraîne. Cependant, dans un environnement de réseau familial et où l'échange du mot de passe root est un risque acceptable.

cat >> /etc/xinetd.d/swat << "EOF"
# Début de /etc/xinetd.d/swat

service swat
{
    port            = 905
    socket_type     = stream
    wait            = no
    instances       = 5
    only_from       = 127.0.0.1
    user            = root
    server          = /usr/sbin/swat
    log_on_failure += USERID
}

# Fin de /etc/xinetd.d/swat
EOF

Effectuez un killall -HUP xinetd pour lire le nouveau fichier /etc/xinetd.d/swat.

[Note]

Note

Si vous avez lié Linux-PAM à la construction de Samba, vous devrez créer un fichier /etc/pam.d/samba.

On peut maintenant lancer SWAT en faisant pointer votre navigateur web vers http://localhost:905.

Réglage de SWAT en utilisant Stunnel

La meilleure façon de paramétrer SWAT pour un accès réseau est de passer par Stunnel-4.54. Pour vous être commode, un script de démarrage a été écrit pour SWAT via stunnel. Créez d'abord le fichier de configuration de stunnel :

cat >> /etc/stunnel/swat.conf << "EOF"
; File: /etc/stunnel/swat.conf

pid    = /run/stunnel-swat.pid
setuid = root
setgid = root
cert   = /etc/stunnel/stunnel.pem

[swat]
accept = swat
exec   = /usr/sbin/swat

EOF

Ensuite, installez le script de démarrage swat :

make install-swat

Après avoir lancé le script de démarrage SWAT, on peut accéder à l'outil en faisant pointer son navigateur Web sur https://localhost:905. Note: https. S'il faut davantage restreindre l'accès à l'outil, vous pouvez utiliser iptables-1.4.16.2.

Contenu

Programmes installés: eventlogadm, findsmb, ldbadd, ldbdel, ldbedit, ldbmodify, ldbrename, ldbsearch, net, nmbd, nmblookup, ntlm_auth, pdbedit, profiles, rpcclient, sharesec, smbcacls, smbclient, smbcontrol, smbcquotas, smbd, smbget, smbpasswd, smbspool, smbstatus, smbtar, smbtree, swat, testparm, wbinfo, winbindd, et (si vous n'utilisez pas le système TDB) tdbbackup, tdbdump, et tdbtool
Bibliothèques installées: libnss_winbind.so, libnss_wins.so, libnetapi.so, libsmbclient.so, libsmbsharemodes.so, libtalloc.so, libwbclient.so, les bibliothèques PAM pam_winbind.so et pam_smbpass.so, et l'assortiment de caractères, le système de fichier et modules de support.
Répertoires installés: /etc/samba, /usr/lib/samba, /usr/share/doc/samba-3.6.8, /usr/share/samba, /var/lib/samba et (if configured) /var/log/samba

Descriptions courtes

eventlogadm

est utilisé pour enregistrer l'entrée standard, la source spécifiée et les entrées du registre du journal d'événement DLL dans un journal d'événements et pour afficher les noms des journaux d'événement actifs (à partir de smb.conf).

findsmb

liste les informations sur les machines qui répondent à des recherches de moms SMB sur un sous-réseau.

ldbadd

est un utilitaire en ligne de commande pour ajouter des enregistrements dans une base de données LDB.

ldbdel

est un programme en ligne de commande pour effacer des enregistrements dans une base de données LDB.

ldbedit

vous autorise à éditer la base de données LDB en utilisant votre éditeur de texte préféré.

ldbmodify

vous autorise à modifier des enregistrements dans la base de données LDB.

ldbrename

vous autorise à éditer la base de données LDB en utilisant votre éditeur de texte préféré.

ldbsearch

cherche un enregistrement de la base de données LDB en utilisant un filtre basé sur une expression spécifiée.

net

est un outil d'administration de Samba et des serveurs CIFS distants, ressemblant à l'outil net pour DOS/Windows.

nmbd

est le serveur de DNS NetBIOS Samba.

nmblookup

est utilisé pour chercher des noms NetBIOS et les associer à des adresses IP.

ntlm_auth

est un outil pour autoriser l'accès extérieur à la fonction d'authentication NTLM de Winbind.

pdbedit

est un outil pour gérer la base de données SAM.

profiles

est un outil qui affiche et modifie les SIDs dans les fichiers du registre Windows. Il ne supporte actuellement que Windows NT.

rpcclient

est utilisé pour exécuter les fonctions MS-RPC côté client.

sharesec

manipule les permissions de partages ACL dans les partages de fichiers SMB.

smbcacls

est utilisé pour manipuler des listes de contrôle d'accès Windows NT.

smbclient

est un outil d'accès à SMB/CIFS, ressemblant à FTP.

smbcontrol

est utilisé pour contrôler le fonctionnement des démons smbd, nmbd et winbindd.

smbcquotas

est utilisé pour manipuler les quotas de Windows NT sur des partages de fichiers SMB.

smbd

est le démon Samba principal, qui fournit les services SMB/CIFS aux clients.

smbget

est un simple outil avec las sémantiques du type wget qui peut télécharger des fichiers sur des serveurs SMB. Vous pouvez spécifier les fichiers que vous aimeriez télécharger sur la ligne de commande.

smbpasswd

modifie le mot de passe Samba de l'utilisateur.

smbspool

envoie une tâche d'impression sur une imprimante SMB.

smbstatus

affiche les connexions Samba actuelles.

smbtar

est un script shell utilisé pour sauvegarder des partages SMB/CIFS directement sur des lecteurs de bandes Linux ou dans un fichier.

smbtree

est un navigateur réseau SMB en mode texte.

swat

est l'outil d'administration Web Samba.

tdbbackup

est un outil pour sauvegarder ou valider l'intégrité de fichiers Samba .tdb.

tdbdump

est un outil utilisé pour imprimer le contenu d'un fichier Samba .tdb.

tdbtool

est un outil qui permet une manipulation simple en ligne de commande de la base de données.

testparm

vérifie la bonne syntaxe d'un fichier smb.conf.

wbinfo

cherche un démon winbindd en fonction.

winbindd

résout des noms à partir de serveurs Windows NT.

libnss_winbind.so

fournis les fonctions de l'API Name Service Switch API pour la résolution de noms depuis les serveurs NT.

libnss_wins.so

fournis les fonctions API pour l'implémentation dans Sambaion des Windows Internet Naming Service.

libnetapi.so

fournis l'API pour les fonctions des outils d'administration utilisés par Samba et les serveurs CIFS.

libsmbclient.so

fournis l'API pour les fonctions des outils client Samba SMB.

libsmbsharemodes.so

fournis l'API des fonctions pour accéder aux modes de partage SMB (locks etc.)

libwbclient.so

fournis l'API des fonctions pour les services client du domaine Windows.

Last updated on : 2012-10-25 02:58:34 +020