Samba-4.16.4

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 domaine Windows, un serveur de fichiers/imprimantes agissant comme membre d'un domaine Windows ou Active Directory et un serveur DNS NetBIOS (rfc1001/1002) (qui offre entre autres choses la prise en charge de la navigation dans un LAN).

[Note]

Note

Development versions of BLFS may not build or run some packages properly if dependencies have been updated since the most recent stable versions of the book.

Informations sur le paquet

  • Téléchargement (HTTP) : https://download.samba.org/pub/samba/stable/samba-4.16.4.tar.gz

  • Téléchargement (FTP) :

  • Somme de contrôle MD5 : 53047b0d823775d07d12c260d7954647

  • Taille du téléchargement : 29 Mo

  • Estimation de l'espace disque requis : 698 Mo (plus 386 Mo pour les tests rapides)

  • Estimation du temps de construction : 2,0 SBU (avec parallélisme = 4 ; plus 3,5 SBU pour les tests rapides)

Dépendances de Samba

Requises

GnuTLS-3.7.7, jansson-2.14, JSON-4.09, libtirpc-1.3.2, lmdb-0.9.29 et rpcsvc-proto-1.4.3

Recommandées

Facultatives

Avahi-0.8, BIND-9.18.5, Cups-2.4.2, Cyrus SASL-2.1.28, GDB-12.1, git-2.37.1, GnuPG-2.3.7 (requis pour ADS et la suite de tests), libaio-0.3.113, libarchive-3.6.1, libcap-2.65 avec PAM, libgcrypt-1.10.1, libnsl-2.0.0, libunwind-1.6.2, MIT Kerberos V5-1.20, nss-3.81, popt-1.18, Talloc-2.3.4 (inclus), Vala-0.56.2, Valgrind-3.19.0 (éventuellement utilisé par la suite de tests), xfsprogs-5.18.0, cmocka, cryptography, ctdb (inclus), cwrap, dnspython, FAM, Gamin, GlusterFS, Heimdal (inclus), iso8601, ldb (inclus), M2Crypto (requis pour ADS), OpenAFS, pyasn1, PyGPGME (recommandé pour ADS), tevent (inclus), tdb (inclus) et tracker-2

Facultatif (pour la suite de test pour développeur)

Installez dans l'ordre indiqué : six-1.16.0, argparse, extras, py, hypothesis, pytest, coverage, pytest-cov, doctools, unittest2, testtools, fixtures, python-mimeparse, contextlib2, traceback2, linecache2, testscenarios, testresources, virtualenv, pbr, and python-subunit

Notes utilisateur : https://wiki.linuxfromscratch.org/blfs/wiki/samba4

Installation de Samba

Pour prendre en charge la suite de tests, créez un environnement virtuel Python pour certains modules Python qui ne sont pas dans BLFS :

python3 -m venv pyvenv &&
./pyvenv/bin/pip3 install cryptography pyasn1 iso8601

Installez Samba en exécutant les commandes suivantes :

PYTHON=$PWD/pyvenv/bin/python3             \
CPPFLAGS="-I/usr/include/tirpc"            \
LDFLAGS="-ltirpc"                          \
./configure                                \
    --prefix=/usr                          \
    --sysconfdir=/etc                      \
    --localstatedir=/var                   \
    --with-piddir=/run/samba               \
    --with-pammodulesdir=/usr/lib/security \
    --enable-fhs                           \
    --without-ad-dc                        \
    --enable-selftest                      &&
make

Pour tester les résultats, lancez : PATH=$PWD/pyvenv/bin:$PATH make quicktest. La suite de tests produira des lignes qui ressembleront à des échecs, mais elles sont inoffensives. Les quelques dernières lignes de la sortie doivent être "ALL OK" pour une suite de tests correcte. Le récapitulatif de toutes les erreurs se trouve dans ./st/summary.

[Note]

Note

En plus, les suites de tests pour développeurs sont disponibles. Si vous avez installé les modules python facultatifs ci-dessus dans l'environnement virtuel Python pour construire ce paquet, vous pouvez lancer ces tests avec make test. Ils ne sont en général pas recommandés car les constructions habituelles prennent presque 290 SBU et plusieurs gigaoctets d'espace disque, et vous devriez vous attendre à environ 73 erreurs et 30 échecs parmi plus de 3000 tests.

Corrigez un chemin codé en dur vers l'interpréteur Python 3 :

sed '1s@^.*$@#!/usr/bin/python3@' \
    -i ./bin/default/source4/scripting/bin/samba-gpupdate.inst

Si vous mettez à jour depuis une ancienne version de samba, en tant qu'utilisateur root, supprimez les anciens fichiers de prise en charge de Python pour éviter quelques problèmes :

rm -rf /usr/lib/python3.10/site-packages/samba

Toujours en tant qu'utilisateur root, installez le paquet :

make install &&

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

sed -e "s;log file =.*;log file = /var/log/samba/%m.log;" \
    -e "s;path = /usr/spool/samba;path = /var/spool/samba;" \
    -i /etc/samba/smb.conf.default &&

mkdir -pv /etc/openldap/schema                        &&

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/{get*,ol*} \
                    /etc/openldap/schema

Explication des commandes

--enable-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).

--without-ad-dc : désactive la fonctionnalité Active Directory Domain Controller. Voir Mise en place d'un Samba Active Directory Domain Controller pour plus d'informations. Supprimez cette option si vous avez installé les modules Python requis pour la prise en charge d'ADS. Remarquez que BLFS ne fourni pas de script de démarrage ni d'unité systemd samba pour un contrôleur de domaine Active Directory.

--with-selftest-prefix=SELFTEST_PREFIX : Cette option spécifie le répertoire de travail de la suite de tests (par défaut =./st).

install -v -m644 examples/LDAP/* /etc/openldap/schema : Ces commandes sont utilisées pour copier des schémas d'exemples de Samba dans le schema d'OpenLDAP.

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 le 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

Impression 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 :

install -dvm 755 /usr/lib/cups/backend &&
ln -v -sf /usr/bin/smbspool /usr/lib/cups/backend/smb

Informations sur la 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 scenarii 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 = WORKGROUP
    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 réseau 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 unités systemd fournies.

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 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. Pour des raisons de sécurité, vous pouvez souhaiter définir path = /home/alice/shared-files, en supposant que votre nom d'utilisateur est alice et que vous voulez seulement partager les fichiers dans ce répertoire, au lien de votre dossier personnel entier. Alors, remplacez homes par shared-files et changez également « comment » si le fichier de configuration ci-dessous est utilisé ou /etc/samba/smb.conf.default pour créer le votre.

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 = WORKGROUP
    dos charset = cp850
    unix charset = ISO-8859-1

[homes]
    comment = Home Directories
    browseable = no
    writable = yes

[printers]
    comment = All Printers
    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 l'unité systemd de 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. En utilisant le backend 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 scenarii plus complexes impliquant le contrôle de domaine ou de la qualité de membre sont envisageables. Ces configurations sont avancées et ne peuvent pas être couvertes correctement par BLFS. De nombreux livres entiers ont été écrit sur ces sujets seuls. Remarquez que dans certains scenarii d'appartenance à un domaine, le démon winbindd et les unités systemd correspondantes sont nécessaires.

Compte invité

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.

Unités Systemd

Pour démarrer les démons Samba au démarrage, installez les unités systemd depuis le paquet blfs-systemd-units-20220720 en exécutant les commandes suivantes en tant qu'utilisateur root :

make install-samba

Pour démarrer le démon winbindd au démarrage, installez l'unité systemd depuis le paquet blfs-systemd-units-20220720 en lançant les commandes suivantes en tant qu'utilisateur root :

make install-winbindd
[Note]

Note

Ce paquet est fournit avec deux types d'unités : Un fichier service et un fichier socket. Le fichier service démarrera le démon smbd une fois au démarrage et le gardera lancé jusqu'à l'extinction du système. Le fichier socket fera écouter systemd sur le port smbd (par défaut 445, le fichier doit être édité pour en utiliser un autre) et démarrera le démon smbd quand quelque chose essaiera de se connecter à ce port et l'arrêtera lorsque la connexion se terminera. Ceci s'appelle l'activation par socket et est analogue à l'utilisation de {,x}inetd sur un système basé sur SysVinit.

Par défaut, la première méthode est utilisée - le démon smbd est démarré au démarrage et stoppé à l'extinction. Si vous préférez la méthode par socket, vous devez lancer les commandes suivantes en tant qu'utilisateur root :

systemctl stop smbd &&
systemctl disable smbd &&
systemctl enable smbd.socket &&
systemctl start smbd.socket

Remarquez que seul le démon smbd peut être activé par socket.

Contenu

Programmes installés: cifsdd, dbwrap_tool, dumpmscat, eventlogadm, gentest, ldbadd, ldbdel, ldbedit, ldbmodify, ldbrename, ldbsearch, locktest, masktest, mdsearch, mvxattr, ndrdump, net, nmbd, nmblookup, ntlm_auth, oLschema2ldif, pdbedit, profiles, regdiff, regpatch, regshell, regtree, rpcclient, samba, samba-gpupdate, samba-regedit, samba-tool, sharesec, smbcacls, smbclient, smbcontrol, smbcquotas, smbd, smbget, smbpasswd, smbspool, smbstatus, smbtar, smbtorture, smbtree, tdbbackup, tdbdump, tdbrestore, tdbtool, testparm, wbinfo et winbindd
Bibliothèques installées: libdcerpc-binding.so, libdcerpc-samr.so, libdcerpc-server-core.so, libdcerpc-server.so, libdcerpc.so, libndr-krb5pac.so, libndr-nbt.so, libndr.so, libndr-standard.so, libnetapi.so, libnss_winbind.so, libnss_wins.so, libsamba-credentials.so, libsamba-errors.so, libsamba-hostconfig.so, libsamba-passdb.so, libsamba-policy.cpython-310-x86_64-linux-gnu.so, libsamba-util.so, libsamdb.so, libsmbclient.so, libsmbconf.so, libsmbldap.so, libtevent-util.so, libwbclient.so et des systèmes de fichiers et des greffons de prise en charge dans /usr/lib/{python3.10,samba}
Répertoires installés: /etc/samba, /run/samba, /usr/include/samba-4.0, /usr/lib/python3.10/site-packages/samba, /usr/{lib,libexec,share}/samba et /var/{cache,lib,lock,log,run}/samba

Descriptions courtes

cifsdd

est la commande dd pour SMB

dbwrap_tool

est utilisé pour lire et manipuler les bases de données TDB/CTDB en utilisant l'interface dbwrap

dumpmscat

affiche le contenu des fichiers catalogue microsoft

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)

gentest

est utilisé pour lancer des opérations SMB génériques aléatoires entre deux serveurs SMB et montre les différences

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 permet de renommer des bases de données LDB

ldbsearch

cherche une expression spécifique dans les entrées de la base de données LDB

locktest

est utilisé pour trouver les différences de verrouillage entre deux serveurs SMB

masktest

est utilisé pour trouver les différences avec un masque entre une implémentation de Samba et ce qu'il y a sur un serveur distant

mdsearch

lance des recherches Spotlight sur un serveur SMB

mvxattr

est utilisé pour renommer récursivement des attributs étendus

ndrdump

est un analyseur de paquets DCE/RPC

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'authentification NTLM de Winbind

oLschema2ldif

convertit les schémas LDAP en LDIF compatible LDB

pdbedit

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

profiles

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

regdiff

est un programme Diff pour les fichiers de registre Windows

regpatch

applique des correctifs aux fichiers de registres

regshell

est un navigateur de fichier de registre Windows utilisant la ligne de commandes

regtree

est un afficheur de registre en mode texte

rpcclient

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

samba

est un serveur pour fournir les services AD et SMB/CIFS aux clients

samba-gpupdate

vous permet de modifier des Objets de Politique de Groupe de Microsoft (GPO)

samba-regedit

est un outil basé sur ncurses pour gérer le registre Samba

samba-tool

est l'outil d'administration principal de Samba

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 une sémantique du type de 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

smbtorture

est une suite de test pour lancer plusieurs tests sur un serveur SMB

smbtree

est un navigateur réseau SMB en mode texte

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

tdbrestore

est un outil pour créer un fichier Samba .tdb depuis un ntdbdump

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 les fonctions de l'API pour les outils d'administration utilisés par Samba et les serveurs CIFS distants

libsmbclient.so

fournis les fonctions de l'API pour les outils clients Samba SMB

libwbclient.so

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

Last updated on