Samba-2.2.8a

Introduction à Samba

Site de téléchargement (HTTP):  http://us1.samba.org/samba/ftp/samba-2.2.8a.tar.gz
Version utilisée:                      2.2.8a
Taille du package:                     4,4 Mo
Estimation de l'espace disque requis:  43 Mo
Estimation du temps de construction:   5,40 SBU

Le package Samba apporte des services de fichiers et d'éditions vers des clients SMB/CIFS.

Installation de Samba

Installez Samba en lançant les commandes suivantes:

Note : Samba est installé dans le répertoire samba-2.2.8a/source.

mkdir -p /etc/samba/private &&
mkdir -p /var/cache/samba &&
./configure \
   --prefix=/usr \
   --sysconfdir=/etc \
   --localstatedir=/var \
   --with-piddir=/var/run \
   --with-fhs \
   --with-smbmount &&
make &&
make install &&
mv /usr/bin/smbmount /usr/bin/mount.smbfs &&
rm -rf /usr/private &&
echo "swat 901/tcp" >> /etc/services &&
echo "swat stream tcp nowait.400 root /usr/sbin/swat swat" >> \
	/etc/inetd.conf

Explication des commandes d'installation

mkdir -p /etc/samba/private
mkdir -p /var/cache/samba
: Répertoires nécessaires pour que les démons smbd et nmbd fonctionnent correctement.

--prefix=/usr : Indique le préfixe /usr pour pratiquement tous les chemins de fichiers.

--sysconfdir=/etc : Indique l'emplacement du fichier de configuration pour éviter /usr/etc, valeur par défaut.

--localstatedir=/var : Indique le répertoire des données pour éviter /usr/var, valeur par défaut.

--with-fhs : Assigne tous les autres chemins de fichiers de façon à être compatible avec le FHS (Filesystem Hierarchy Standard).

--with-smbmount : Demande la création d'un binaire supplémentaire que le commande mount utilise pour rendre le montage de partages SMB (windows) distants aussi simple que les partages NFS distants.

rm -rf /usr/private : Supprime un répertoire créé par erreur avec source/scripts/installbin.sh lors du make install.

Configurer Samba

Nous configurerons un serveur Samba (SAMBABOX) pour agir en tant que contrôleur primaire de domaine, et aussi configurer un client de domaine utilisant Windows 2000 Server (WIN2KBOX) et en agissant comme un serveur membre du domaine. Des instructions détaillées vont être données pour ajouter WIN2KBOX au domaine avec les étapes supplémentaires nécessaires. Des instructions pour ajouter des clients Windows 95/98/XP peuvent être trouvées dans la nouvelle documentation installée en pointant un navigateur web vers:

file:///usr/share/samba/swat/using_samba/ch03_01.html#ch03-55770.

Fichiers de configuration

/etc/samba/smb.conf, /etc/rc.d/init.d/samba

Tout d'abord, nous mettons en place les répertoires nécessaires à Samba:

mkdir /var/lib/samba &&
mkdir /var/lib/samba/netlogon &&
mkdir /var/lib/samba/ntprofile &&
mkdir /var/lib/samba/profiles &&
chmod -R 1777 /var/lib/samba

Et le fichier de configuration Samba:

cat > /etc/samba/smb.conf << "EOF"
[global]
    netbios name = SAMBABOX
    workgroup = DOMAIN01
    os level = 64
    preferred master = yes
    domain master = yes
    local master = yes
    security = user
    encrypt passwords = yes
    domain logons = yes
    log file = /var/log/log.%m
    log level = 1
    logon path = \\%N\home\%u
    logon drive = H:
    logon home = \\homeserver\%u
    logon script = logon.cmd
[netlogon]
      path = /var/lib/samba/netlogon
      read only = yes
      write list = ntadmin
[profiles]
      path = /var/lib/samba/ntprofile
      read only = no
      create mask = 0600
      directory mask = 0700
; World writable share for testing
[tmp]
comment = Temporary file space
        path = /tmp
        read only = no
        public = yes
[home]
comment = Users' home directories
        path = /home
        read only = no
        public = no
EOF

Maintenant, ajoutez le compte de confiance de la machine pour WIN2KBOX:

/usr/sbin/useradd -g 100 -d /dev/null -c \
    "machine nickname" -s /bin/false win2kbox$ &&
passwd -l win2kbox$ &&
smbpasswd -a -m win2kbox

Créez le script de démarrage Samba:

cat > /etc/rc.d/init.d/samba << "EOF"
#!/bin/bash
# Début $rc_base/init.d/samba
# Basé sur le script sysklogd de LFS-3.1 et précédents.
# Réécrit par Gerard Beekmans  - gerard@linuxfromscratch.org
source /etc/sysconfig/rc
source $rc_functions
case "$1" in
	start)
		echo "Starting nmbd..."
		loadproc /usr/sbin/nmbd -D
		echo "Starting smbd..."
		loadproc /usr/sbin/smbd -D
		;;
	stop)
		echo "Stopping smbd..."
		killproc /usr/sbin/smbd
		echo "Stopping nmbd..."
		killproc /usr/sbin/nmbd
		;;
	reload)
		echo "Reloading smbd..."
		reloadproc /usr/sbin/smbd
		echo "Reloading nmbd..."
		reloadproc /usr/sbin/nmbd
		;;
	restart)
		$0 stop
		sleep 1
		$0 start
		;;
	status)
		statusproc /usr/sbin/nmbd
		statusproc /usr/sbin/smbd
		;;
	*)
		echo "Usage: $0 {start|stop|reload|restart|status}"
		exit 1
		;;
esac
# Fin $rc_base/init.d/samba
EOF

Ajoutez les liens symboliques de niveaux d'exécution:

chmod 754 /etc/rc.d/init.d/samba &&
ln -s  /etc/rc.d/init.d/samba /etc/rc.d/rc0.d/K48samba &&
ln -s  /etc/rc.d/init.d/samba /etc/rc.d/rc1.d/K48samba &&
ln -s  /etc/rc.d/init.d/samba /etc/rc.d/rc2.d/K48samba &&
ln -s  /etc/rc.d/init.d/samba /etc/rc.d/rc3.d/S23samba &&
ln -s  /etc/rc.d/init.d/samba /etc/rc.d/rc4.d/S23samba &&
ln -s  /etc/rc.d/init.d/samba /etc/rc.d/rc5.d/S23samba &&
ln -s  /etc/rc.d/init.d/samba /etc/rc.d/rc6.d/K48samba

Maintenant, nous utiliserons notre nouveau script de démarrage pour démarrer Samba:

/etc/rc.d/init.d/samba start

Nous avons ajouter le compte root SAMBABOX à la liste des utilisateurs Samba tout d'abord dans le but de joindre WIN2KBOX au domaine DOMAIN01:

smbpasswd -a root

Après avoir lancé Samba et ajouté root à la liste des utilisateurs Samba, la première machine que nous joignerons à DOMAIN01 sera WIN2KBOX, la machine Windows 2000 Server pour qui nous avons créé la machine des comptes de confiance. Sur WIN2KBOX:

1.  Clic droit sur My Computer.
2.  Cliquez sur Properties.
3.  Cliquez sur l'onglet du Network Identification.
4.  Cliquez sur le bouton Properties.
5.  Dans le champ d'édition Computer Name: entrez WIN2KBOX.
6.  Cliquez sur le bouton radio Domain: et entrez DOMAIN01 dans le champ
    d'édition et cliquez sur OK.
7.  A la présentation avec la boîte de dialogue Domain Username And Password,
    entrez root et le mot de passe sur SAMBABOX et cliquez OK.
8.  Après que la machine de confiance est négociée, cliquez sur le bouton OK
    dans le boîte de dialogue vous accueillant dans le domaine DOMAIN01.
9.  Cliquez OK dans la boite de dialogue de redémarrage.
10. Cliquez OK pour fermer la fenetre System Properties.
11. Cliquez Yes pour relancer WIN2KBOX.

Ajoutez un nouvel utilisateur pour le domaine DOMAIN01.

Avant de se connecter sur WIN2KBOX, nous créerons un nouvel utilisateur avec les commandes suivantes:

useradd -m win2kuser01 &&
passwd win2kuser01 &&
smbpasswd -a win2kuser01

Se connecter sur DOMAIN01.

Maintenant, nous nous connectrons sur le domaine en tant que notre utilisateur nouvellement créé comme ce qui suit:

1. Appuyez Ctrl-Alt-Del pour amener la boite de dialogue de connexion Log On.
2. Entrez les nom et mot de passe win2kuser01.
3. Sélectionnez DOMAIN01 de la boite Log on to: et cliquez OK.

Ajoutez l'entrée swat sur /etc/services avec la commande suivante:

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

Si inetd est utilisé, la commande suivante ajoutera l'entrée swat dans /etc/inetd.conf:

echo "swat stream tcp nowait.400 root /usr/sbin/swat swat" \
    >> /etc/inetd.conf

Si xinetd est utilisé, la commande suivante ajoutera l'entrée swat vers /etc/xinetd.conf:

cat >> /etc/xinetd.conf << "EOF"
service swat
{
    port            = 901
    socket_type     = stream
    wait            = no
    only_from       = 127.0.0.1
    user            = root
    server          = /usr/sbin/swat
    log_on_failure  += USERID
}
EOF

L'outil d'administration web de Samba (Samba Web Administration Tool ou swat) peut etre lancé avec la commande suivante sur SAMBABOX:

lynx http://localhost:901

Note : Assurez-vous que inetd est démarré, et lancez un killall -HUP inetd avant de démarrer swat.

Le navigateur lynx est utilisé pour cette démonstration, mais n'est pas nécessaire.

Explication des commandes de configuration

cat > /etc/samba/smb.conf << "EOF" : Créez un fichier de configuration Samba par défaut. Cette configuration autorisera Samba à agir comme Contrôleur Primaire de Domaine pour un réseau basé sur Microsoft Windows. Si ce n'est pas souhaité, un fichier smb.conf par défaut plus simple est disponible avec la distribution Samba. Voir le fichier samba2.2.8a/examples/smb.conf.default. La configuration d'un Contrôleur Primaire de Domaine est un peu plus compliquée que la configuration d'un serveur, donc les instructions pour la configuration d'un PDC vont être données ici.

cat > /etc/rc.d/init.d/samba << "EOF" : Créez le script de démarrage Samba, utilisé pour lancer et arrêter Samba automatiquement lors du lancement et de l'arrêt de la machine.

/usr/sbin/useradd -g 100 -d /dev/null -c \
"Win2k Server" -s /bin/false win2kbox$
: Cette commande crée un machine de confiance, nécessaire seulement pour les serveurs Windows 2000/NT pour authentifier notre nouveau PDC. Des comptes de confiance machine ne sont pas nécessaires pour les clients Win95/98.

echo "swat 901/tcp" >> /etc/services : Enregistrer le service swat et son port 901.

echo "swat stream tcp nowait.400 root /usr/sbin/swat swat" >> /etc/inetd.conf : Indique à inetd où trouver et comment lancer swat.

ln -s /etc/rc.d/init.d/samba /etc/rc.d/rc3.d/S600samba, etc. : Créez les scripts de démarrage Samba, utilisé pour lancer et arrêter Samba automatiquement lors du lancement et de l'arrêt de la machine.

Contenu

Le package Samba contient make_smbcodepage, make_unicodemap, mount.smbfs, nmbd, nmblookup, rpcclient, smbcacls, smbclient, smbcontrol, smbd, smbpasswd, smbspool, smbstatus, swat, testparm, testprns, wbinfo et winbindd.

Description

make_smbcodepage

make_smbcodepage convertit les descriptions texte de pages code en fichiers page code binaires et vice-versa.

make_unicodemap

make_unicodemap convertit des fichiers texte 'unicode map' en binaire, pour utiliser les tables de caractères en unicode 16 bit.

mount.smbfs

mount.smbfs apporte à /bin/mount une façon de monter les partages de fichiers distants windows (ou samba).

nmbd

nmbd est le serveur de nom NetBIOS de Samba.

nmblookup

nmblookup est utilisé pour rechercher des noms NetBIOS et les faire correspondre à des adresses IP.

rpcclient

rpcclient est utilisé pour exécuter des fonctiones MS-RPC côté client.

smbcacls

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

smbclient

smbclient est un utilitaire d'accès SMB/CIFS, similaire à FTP.

smbcontrol

smbcontrol est utilisé pour contrôler les démons smbd, nmbd et winbindd.

smbd

smbd est le démon principal de Samba.

smbpasswd

smbpasswd change le mot de passe d'un utilisateur Samba.

smbspool

smbspool envoie un job d'édition vers une imprimante SMB.

smbstatus

smbstatus rapporte les connexions actuelles sur Samba.

swat

swat est l'outil d'administration web de Samba (Samba Web Administration Tool).

testparm

testparm vérifie le fichier smb.conf sur sa syntaxe.

testprns

testprns teste les noms d'imprimantes.

wbinfo

wbinfo recherche un démon winbindd déjà lancé.

winbindd

winbindd résout les noms de serveurs NT.