Installation de Samba
Préparation de l'installation.
Samba s'installe sur la plupart des machines UNIX. Avant d'installer Samba, il faut se
procurer la dernière version.
Le mieux est de la télécharger par ftp://samba.anu.edu.au/pub/samba.
On obtient un fichier compressé par gzip appelé samba-latest.tar.gz;
Les tests d'installation et de configuration ont étés réalisés avec la version
1.9.18p7 de Samba sur un HP9000 avec HP-UX B.10.01 C. Avant d'aller plus loin, il faut que
la machine UNIX sur laquelle vous allez installer Samba, ait un compilateur Ansi.
Si vous n'avez pas un tel compilateur, il vous faudra installer GCC.
Sous UNIX, créer un répertoire Samba (en général dans /usr/local/samba) et un
sous-répertoire Soft-Compress.
Copier la version gzipée dans ce sous répertoire en y affectant les droits suivant :
"chown root samba-latest.tar.gz"
"chgrp sys samba-latest.tar.gz".
Renommer le fichier samba-latest.tar.gz en samba.tar.gz, puis copier ce fichier dans le
répertoire Samba.
Décompacter ce fichier par la commande : "gunzip -dr ./samba.tar.gz".
Du coup, on obtient un fichier qui va s'appeler samba.tar.
Il va donc falloir décompacter ce fichier par la commande : "tar -xvf
./samba.tar".
Cette commande créé un répertoire nommé samba-1.9.18p7 (parce-que c'est la version
testée) dont les droits sont affectés à l'utilisateur 1002 appartenant au groupe 1002.
Là encore, il faut changer les droits du répertoire par la commande :
"chown -R root ./samba-1.9.18p7"
"chgrp -R sys ./samba-1.9.18p7".
Déplacer le fichier samba.tar dans le sous-répertoire Soft-Compress. Cela permet d'organiser un peu l'installation...
Compilation de Samba.
Consultez le fichier samba/samba-1.9.18p7/docs/ UNIX_INSTALL.txt , il
détaille en anglais la procédure d'installation.
Aller dans le répertoire samba/samba-1.9.18p7/source, puis éditer le fichier ./Makefile.
Modifiez les variables suivantes :
Nom de la Variable | Description | ||||
BASEDIR | La variable BASEDIR définit le chemin du répertoire de base
de Samba. Exemple : BASEDIR = /usr/local/samba |
||||
MANDIR | La variable MANDIR définit le chemin du répertoire des
pages du manuel samba. Notez qu'après l'installation de Samba, les pages $(MANDIR)/man1, $(MANDIR)/man5 et $(MANDIR)/man8 doivent être présente dans ce répertoire. Exemple : MANDIR = /usr/local/samba/man ou plus simplement : MANDIR = $(BASEDIR)/man |
||||
BINDIR | La variable BINDIR définit le chemin du répertoire des
fichiers binaires. Exemple : BINDIR = $(BASEDIR)/bin |
||||
SBINDIR | La variable SBINDIR définit le chemin du répertoire des
fichiers binaires sécurisé. Ce répertoire est créé pour les fichiers dont l'accès est sécurisé, généralement utilisé pour les fichiers nmbd et smbd. Exemple : SBINDIR = $(BASEDIR)/bin |
||||
LIBDIR | La variable LIBDIR définit le chemin du répertoire des
fichiers librairies. Exemple : LIBDIR = $(BASEDIR)/lib |
||||
VARDIR | La variable VARDIR définit le chemin du répertoire des
fichiers variables et log. Exemple : VARDIR = $(BASEDIR)/var |
||||
INSTALLPERMS | La variable INSTALLPERMS définit le masque de permission a
donner au fichiers exécutables. Exemple : INSTALLPERMS = 0775 |
||||
CC | Cette variable permet de définir le nom du compilateur C a
utiliser. Attention vous devez utiliser un compilateur C ANSI. Par exemple, comme sous
SunOS 4 vous ne pouvez pas utiliser cc, vous indiquerez le nom du compilateur a utiliser a
la place (gcc). Exemple : CC = cc (Permet de forcer l'utilisation de cc) |
||||
SHELL | Indique le nom du Shell a utiliser. Changer par csh ou ksh si
vous rencontrez des problèmes de compilation. Exemple : SHELL = /bin/sh |
||||
srcdir VPATH |
D'ordinaire, ces lignes sont diésées, mais elles peuvent
être utilisées pour compiler sur des architectures multiples. Du coup, j'ai fait le test
de compilation avec ces paramètres non diésés.
|
||||
SMBLOGFILE | Cette variable définit le nom du fichier log des
évènements smb. Exemple : SMBLOGFILE = $(VARDIR)/smb.log |
||||
NMBLOGFILE | Cette variable définit le nom du fichier log des
évènements nmb. Exemple : NMBLOGFILE = $(VARDIR)/nmb.log |
||||
CONFIGFILE | Cette variable définit le nom du fichier de configuration du
serveur Samba. On peut y indiquer un tout autre nom, le mieux étant de garder le nom et l'emplacement par défaut. Exemple : CONFIGFILE = $(LIBDIR)/smb.conf |
||||
LMHOSTSFILE | Cette variable définit le nom du fichier des Hosts Samba. Ce
fichier est identique a /etc/hosts. On peut y indiquer un tout autre nom, le mieux étant de garder le nom et l'emplacement par défaut, puis de recopier le fichier /etc/hosts dans le répertoire par défaut, puis de le renommer en lmhosts. Exemple : LMHOSTSFILE = $(LIBDIR)/lmhosts |
||||
DRIVERFILE | Cette variable définit le chemin du fichier contenant le nom
des drivers d'imprimantes a utiliser du coté des clients SMB. Ces noms reprennent la
chaîne exacte du driver d'imprimante utilisé sous Windows. En principe, on peut définir
de manière unitaire le nom du driver a utiliser en indiquant ce nom dans le fichier
smb.conf, a la section "printer driver". (Par exemple printer driver = HP LaserJet 4MV). Mais on peut aussi indiquer tous ces noms dans un même fichier, d'où la variable DRIVERFILE. Exemple : DRIVERFILE = $(LIBDIR)/printers.def |
||||
SMB_PASSWD | Cette variable définit l'emplacement du fichier exécutable
smbpasswd. En général, ce fichier est placé dans le répertoire bin ou sbin de Samba.
Cet exécutable permet d'adapter les mots de passe d'un login UNIX aux mots de passe d'un
login Windows Exemple : SMB_PASSWD = $(BINDIR)/smbpasswd. |
||||
SMB_PASSWD_FILE | Cette variable permet d'indiquer le chemin du fichier de
mapping des mots de passe SMB. Ce fichier est créé automatiquement lors de la première
utilisation de smbpasswd. Exemple : SMB_PASSWD_FILE = $(LIBDIR)/smbpasswd |
||||
WEB_ROOT | Cette variable indique le chemin principal de navigation dans
Samba. Exemple : WEB_ROOT = $(BASEDIR) |
||||
LOCKDIR | Cette variable indique le chemin du répertoire des fichiers
verrouillés. Lorsqu'un fichier est ouvert par un client, celui ci est référencé dans
ce répertoire, afin d'éviter les conflits liés aux partages de fichiers. Notez que
l'option de lock peut être validée ou non. Exemple : LOCKDIR = $(VARDIR)/locks |
||||
CODEPAGEDIR | Cette variable permet d'indiquer le chemin d'accès aux
fichiers de définition des pages de codes. Exemples : CODEPAGEDIR = $(LIBDIR)/codepages |
||||
WORKGROUP | Cette variable définit le nom du "Groupe de Travail" des stations Windows. Un nom de workgroup est différent d'un nom de domaine (Au sens DNS), et il est préférable de ne pas indiquer le même nom pour éviter les confusions. Mieux, il est même conseillé de paramétrer cette variable en indiquant "WORKGROUP = *" afin que samba puisse apparaître dans le groupe de travail existant. | ||||
GUESTACCOUNT | Cette variable permet de définir le nom de l'utilisateur par
défaut, c'est a dire celui qui sera utilisé lorsque aucun nom ou mot de passe n'a été
spécifié lors de la connexion. Notez que l'on peut augmenter la sécurité d'accès dans
le fichier smb.conf. Vérifiez cependant que l'utilisateur spécifié doit réellement
exister dans le fichier /etc/passwd. Exemple : GUESTACCOUNT = nobody |
||||
SMBRUN | Cette variable définit le chemin d'accès au fichier
exécutable smbrun. Ce fichier est utilisé pour corriger l'impression et l'éxecution de
scripts coté client. N'hésitez pas a consulter le MANuel de smbrun. Notez que la
définition de cette variable doit correspondre a un chemin absolu, et que ce chemin
inclut le nom du programme smbrun a la fin. Exemple : SMBRUN = $(BINDIR)/smbrun |
||||
AWK | Cette variable permet d'indiquer a Samba quel est le nom du programme AWK a utiliser
sur le serveur. En général, il s'agit de awk. Exemple : AWK = awk |
Ensuite il faut indiquer quel est le système d'exploitation utilisé
sur le Serveur samba.
Pour ma part, j'ai testé Samba sur HP-UX 10.01, j'ai donc dé-diésé les lignes :
# This is for HP-UX 10.x. Note that some systems don't like the -Aa switch.
# contributed by Pasi.Kaara@atk.tpo.fi
# You will need -DREPLACE_GETPASS if you use smb encryption
#FLAGSM = -DHPUX -Aa -D_HPUX_SOURCE -D_POSIX_SOURCE -DHPUX10 -DFAST_SHARE_MODES
#LIBSM =
Comme l'indique le commentaire, si vous souhaitez utiliser la fonctionnalité de smb encryption, il faut rajouter aux paramètres de FLAGSM la commande -DREPLACE_GETPASS. Personnellement je n'ai pas encore testé la compilation avec ce paramètre, mais on peut l'ajouter puisqu'on peut invalider la fonctionnalité de cryptage dans le smb.conf. L'essentiel c'est d'avoir les fichiers compilés quand on en aura besoin.
Quitter l'éditeur, et créez ou vérifiez l'existence des répertoire
comme indiqué dans le fichier Makefile ($BASEDIR, $MANDIR, $SBINDIR, $BINDIR,
$LIBDIR, $VARDIR).
Editez le fichier /etc/MANPATH, et ajoutez le chemin spécifié par $MANDIR.
Editez le fichier /etc/PATH, et ajoutez le chemin spécifié par $BASEDIR, par $SBINDIR et
par $BINDIR (Si ces deux derniers sont dans un répertoire différent).
On peut dès a présent générer les fichiers bianires. Pour ce faire, installez vous
devant la console du serveur, connectez vous sous root, puis vérifiez que les
répertoires que vous avez ajoutés au PATH et au MANPATH sont bien déclaré (Utilisez la
commande "set | pg").
A présent, allez dans le répertoire $(BASEDIR)/samba-1.9.18p7/source, puis tapez make. Cela va générer les fichier binaires. Au passage, vérifiez qu'il n'y ait pas trop d'erreur ou de Warning pendant la compilation. Si tel est le cas, vérifiez le fichier Makefile et les chemins d'accès.
Dès la fin de la compilation, vous pouvez tapez la commande "make install"
pour générer les fichiers binaires et le manuel en ligne. Notez que vous pouvez
réaliser ces installations en deux étapes en tapant la commande "make
installbin" et "make installman" pour générer respectivement
l'installation des fichiers binaires et le manuel en ligne.
On peut donc passer à la configuration de Samba.