Bienvenue visiteur (Inscription |  Connexion)
Qui est en ligne ?
Il y a : 10 utilisateurs en ligne, consultez le détail
Auteur Message
TrustRobot
#0 Message posté le : 20-11-2004 à 13:22:01


Scarabée


Forum : Inscrit
Association :
Arrivé(e) le : 04-07-2003
Nombre de messages : 171


Samba est une implémentation libre du protocole SMB (Server message Block) pour Unix. Le protocole SMB est le coeur de NetBIOS.

Il va vous autoriser à partager vos fichiers et imprimantes entre Unix/linux et windows. Actuellement, il n'y a aucun support pour faire travailler Samba sur NetBEUI ou IPX/SPX. Vous devez donc passer par TCP/IP, à l'aide d'une carte Ethernet par exemple.

Dans ce tutorial, je m'intéresse à la configuration domestique de samba, c'est le cas où vous avez, chez vous ou dans votre immeuble plusieurs postes linux/Windows et vous souhaitez qu'ils partagent des fichiers entre eux. généralement chaque poste est client et serveur à la fois.

1. Configuration des postes Windows :



Aucune configuration, particulière à faire, vous devez configurez vos postes Windows exactement comme s'ils partageaient des fichiers par Ethernet (TCP/IP) avec d'autres windows.

Si vous ne savez pas comment faire cela, reportez-vous à l'un des nombreux sites de vulgarisation sur windows.

Si vous avez des NT sur votre réseau (NT,2000,XP) n'oubliez pas de créer des utilisateurs pour que les machines Windows ou linux du réseau, puissent accéder aux ressources de vos machines.

2. Installation de samba :



Installation à partir des paquetages de sa distribution



Si vous êtes sous Mandriva, tapez simplement :
# urpmi samba samba-common samba-client samba-swat


Si vous êtes sous Fedora, tapez simplement :
# yum install samba samba-common samba-client samba-swat


Si vous êtes sous Debian, tapez simplement :
# apt-get install samba samba-common smbclient smbfs swat samba-doc


Si vous êtes sous Slackware, samba est présent sur vos cdroms (n/samba-xxx.tgz), installez-le par :
# installpkg /où_est/samba-xxx.tgz


Pour ceux qui souhaitent passer par les sources



Pour toutes les autres distributions, Vous passerez par les sources et téléchargerez la dernière version ICI . L'installation se résume alors à :
$ cd /où_est_le_fichier
$ tar -xzvf samba-xxx.tar.gz
$ cd samba-xxx/source/
$ ./configure --with-fhs --prefix=/usr --sysconfdir=/etc --localstatedir=/var --enable-static --enable-shared --with-manpages-langs=fr --with-syslog --with-smbwrapper --with-automount --with-libsmbclient --with-smbmount
$ make
$ su
<password>
# make install
# touch /etc/samba/smb.conf

A ce stade samba est installé, vous devez maintenant ajuster les droits sur certains programmes et lancer les daemons nécessaires à son fonctionnement, par :
# cd /usr/bin/
# chmod 4755 smbumount smbmnt
# /usr/sbin/smbd -D
# /usr/sbin/nmbd -D

3. Lancement automatique des daemons au démarrage :



Si vous avez choisi l'installation à partir des paquetages de votre distribution, tout est prêt et samba devrait se lancer automatiquement à chaque démarrage. Passez à la suite.

Si vous êtes passez par les sources, vous pouvez créer un script qui lancera les daemons en vous référant à ceux de votre distribution. Sinon vous pouvez, tout simplement, rajouter les lignes suivantes à votre /etc/rc.d/rc.local (Il faut être root pour modifier /etc/rc.d/rc.local) :
if [ -x /usr/sbin/smbd -a -x /usr/sbin/nmbd -a -r /etc/samba/smb.conf ]; then

  echo "Demarrage de samba ..."

  /usr/sbin/smbd -D

  /usr/sbin/nmbd -D

fi 

4. Configuration de swat :



La configuration de samba est sauvegardée dans /etc/samba/smb.conf, vous pouvez donc l'éditer et le modifier à votre guise. Je m'attacherai ici, à la configuration assistée par swat, un outil convivial livré avec samba.

Si vous utilisez Debian ou Slackware (et la plupart des autres distributions), vous pouvez faire en sorte que ce soit le super daemon inetd qui lance swat quand il faut, pour cela, editez le fichier /etc/services et vérifiez qu'il contient la ligne :
swat    901/tcp    #SWAT


ainsi que le fichier /etc/inetd.conf qui doit contenir la ligne suivante :
swat stream tcp nowait.400 root /usr/sbin/swat swat


Si vous utilisez Mandriva ou Fedora, ce sera plutôt xinetd votre super daemon. Vous devrez toujours éditer /etc/services comme indiqué plus haut, assurez-vous également que vous avez un fichier /etc/xinetd.d/swat, si vous n'en avez pas, créez-en un qui ressemble à ceci :
# lancement à la demande, pour swap.



service swat

{

   port = 901

   socket_type = stream

   wait = no

   user = root

   server = /usr/sbin/swat

   log_on_failure @= USERID

   disable = no

} 

redémarrez inetd ou xinetd pour que les modifications soient prises en charge, par l'une ou l'autre de ces commades :
# /etc/rc.d/init.d/inetd restart
# /etc/rc.d/init.d/xinetd restart


Ou redemarrez tout simplement la machine.

5. Configuration de samba :



Commencez comme avec Windows NT/2000/XP par créer des utiliateurs spécifiques au réseau :
# groupadd smbusers
# useradd -g smbusers -s /bin/false administrateur
# groupadd smbguests
# useradd -g smbguests -s /bin/false smbguest


A ce stade vous avez 2 utilisateurs spécifiques à samba : administrateur (group smbusers) et smbguest (groupe smbguests). Inutile de leur affecter des mots de passe locaux, ils ne pourront jamais se connecter localement à la machine samba. Par contre il leur faut un mot de passe réseau, cf la suite.

Il ne vous reste plus qu'à signaler à samba les utilisateurs, qui auront accès à samba. Il peut s'agir des utilisateurs "normaux" de votre linux (ceux qui ont des /home sur votre PC) mais aussi ceux du groupe smbusers. Pour chaque utilisateur tapez dans un terminal :
smbpasswd -a le_nom_de_l_utilisateur


Suivit de son mot de passe réseau (celui que vous taperez pour vous connecter au serveur samba, depuis un client linux ou windows).

Vous pouvez désormais, lancer swat par http://votre_adresse_IP_locale:901 ou http://localhost:901. S'il vous demande un mot de passe, c'est celui de root qu'il faut indiquer.

5.1. Configurer Globals :



Pour ce faire Cliquez sur GLOBALS. Puis remplissez les zones de saisie en suivant les conseils suivants, certaines options sont visibles en cliquant sur "adavanced view":
Zone de saisie : Valeur :
workgroup Le_nom_de_votre_reseau
server string Le_nom_de_votre_serveur
map to guest Bad User
obey pam restrictions Yes
guest account smbguest
passwd program /usr/bin/passwd %u
passwd chat *Enter\snew\sUNIX\spassword:* %n\n *Retype\snew\sUNIX\spassword:* %n\n
socket options IPTOS_LOWDELAY TCP_NODELAY SO_SNDBUF=8192 SO_RCVBUF=8192
dns proxy No
ldap ssl no

Explications :
Vous avez activé le partage de type USER : Quand le serveur dit au client qu'il fonctionne en mode de sécurité utilisateur, alors le client envoie tout d'abord une commande contenant un nom d'utilisateur et un mot de passe.

A ce moment de la connexion, le serveur n'a aucune idée du service auquel le client veut accéder. Donc il doit baser sa procédure d'authentification uniquement sur ces deux éléments, le mot de passe et le nom d'utilisateur ou le nom de machine.

Une fois que l'accès a été autorisé au client, alors celui-ci peut se connecter à n'importe quel share (auquel il a droit) sans pour autant devoir renvoyer une nouvelle fois le mot de passe.
  • Le "map to guest bad user" , permet à Samba d'accepter des connections d'utilisateurs inconnus en leurs donnant un droit d'accès en tant qu'invité. Cela équivaut à l'accès public sur les ftp.
  • Les "socket options" : sont des commandes d'optimisation.

Dans toutes les autres zones, laissez la valeur par défaut. Cliquez sur Commit Changes pour valider ces changements.

5.2 Configuration des /home :



Pour permettre aux utilisateurs réguliers de votre linux d'accéder à leurs répertoires /home respectifs. Il vous suffit de Cliquer sur SHARES . Dans la boîte déroulante située entre les boutons Choose Share et Delete Share, sélectionnez homes et cliquez sur Choose Share. Si vous n'avez pas de homes, inscrivez homes en face de create share, puis appuyez sur create share. Une fois parvenu, cliquez sur "adavanced view". Les seules zones que vous devrez renseigner sont :
Zone de saisie : Valeur :
comment Home Directories
create mask 0750
directory mask 0750
browseable No
Dans toutes les autres zones, laissez la valeur par défaut. Cliquez sur Commit Changes pour activer ces changements.

5.3 Créer un partage accessible à tous



Pour avoir un répertoire public accessible à tous, il faut vous assurez que le dit répertoire est accessible au moins en lecture/exécution, par :
chmod 755 /mnt/pub


De retour sous swat, placez-vous, dans la page Shares et remplissez la zone suivant Create Share avec un nom significatif (par exemple public ), puis cliquez sur Create Share . Vous obtenez une nouvelle page à remplir :
Zone de saisie : Valeur :
comment Public
path /mnt/pub
read only no
guest ok Yes
Dans toutes les autres zones, laissez la valeur par défaut. Cliquez sur Commit Changes pour activer ces changements.

5.4 Créer un partage avec droits restreints :



Assurez-vous simplement que le répertoire cible est accessible en lecture/écriture/exécution, par :
chmod 777 /mnt/vip


Placez-vous, dans la page Shares et remplissez la zone suivant Create Share avec un nom significatif (par exemple vip ), puis cliquez sur Create Share . Vous obtenez une nouvelle page à remplir.
Zone de saisie : Valeur :
comment vip
path /mnt/vip
valid users looser nestor levitsky @smbusers
invalid users @windows e-deby root
read list @smbusers looser
write list nestor levitsky
guest ok No
  • Les utilisateurs valides sont : looser, levitsky, nestor ainsi que tous les membres du groupe smbusers (@ c'est pour indiquer le groupe).
  • Les utilisateurs invalides sont : e-deby, root et tous les membres du groupe windows.
  • Parmi les utilisateurs valides : looser et les utilisateurs du group smbusers ont un accès en lecture seule. Seul nestor et levitsky ont un accès en lecture/écriture.

Dans toutes les autres zones, laissez la valeur par défaut. Cliquez sur Commit Changes pour activer ces changements.

5.5 Création d'un partage d'imprimante :



Vous créez simplement un nouveau partage : printers, avec les options suivantes :
Zone de saisie : Valeur :
comment All Printers
path /tmp
create mask 0700
printable Yes
browseable No
guest ok yes

5.6 Imprimer en utilisant samba et cups :



Pour l'impression en réseau, réportez-vous au tutorial suivant.

5.7 Quelques commandes utiles :


  • Pour savoir ce que partage un poste, tapez ce qui suit dans un terminal :
    smbclient -L le_nom_du_serveur

  • Pour vous connecter, depuis Windows, à Linux, vous irez dans le favoris réseau/voisinage réseau. Pour windows 9x, comme login vous pouvez mettre le nom de votre machine.
  • Pour accéder à un répertoire partagé depuis konqueror, tapez simplement ce qui sui, dans la barre d'adresse :
    smb://Le_nom_du_serveur/le_repertoire

  • Pour monter un système de fichier samba, le plus simple est d'être root et de taper ce qui suit dans un terminal :
    $ mount -t smbfs -o username=le_login,password=le_passwd //LE_SERVEUR/LE_REPERTOIRE /mnt/la_clibe
  • Pour vérifier la correction de votre smb.conf tapez, ce qui suit dans un terminal:
    testparm /etc/samba/smb.conf





--Message édité par TrustRobot le 20-11-2004 à 13:22:01--