Samba et le partage réseau

Installer Samba

# apt-get install samba

Durant l'installation et selon votre version de Linux, Samba propose d'utiliser le nom "WORKGROUP" pour le "groupe de travail". C'est apriori le meilleur choix par défaut mais quoi qu'il en soit, nous allons réécrire le fichier de configuration donc c'est sans importance.

install samba

Configuration

Durant l'installation Samba à créé un fichier /etc/samba/smb.comf. Nous allons le renommer en smb.conf.old afin de le conserver ...

# mv /etc/samba/smb.conf  /etc/samba/smb.conf.old

... puis on édite un nouveau fichier du même nom

# nano /etc/samba/smb.conf

La première chose à renseigner dans le fichier smb.conf sont les paramètres du serveur, la machine sur la quelle on vient d'installer Samba, c'est la section [global]

[global]
server string = nom_machine
workgroup = WORKGROUP
netbios name = nom_machine
public = yes
encrypt passwords = true

A ce stade le serveur est correctement configurer et tout à fait fonctionnel à ceci prêt que l'on n'ai indiquer aucun partage.

Partager un répertoire

Samba propose une section [HOMES] permettant le partage du répertoire personnel, je vous propose plutôt d'éditer au cas par cas le partage de répertoire.

Supposons l'arborescence suivante: /home/user/partage/. Pour partager le répertoire partage/ on ajoutera quelque chose comme ça à la suite de notre fichier smb.comf.

[nom_section]
path = /home/user/partage
read only = no
writeable = yes
valid users = user
comment = partage sur machine

Toute modification dans le fichier de configuration impliquera de redémarrer Samba pour que celles-ci soient prise en compte:

# /etc/init.d/samba stop
Stopping Samba daemons: nmbd smbd.
# /etc/init.d/samba start
Starting Samba daemons: nmbd smbd.

Enfin in ne reste plus qu'à indiquer à Samba le mot de passe pour l'utilisateur "user", ce mot de passe est propre à Samba.

# smbpasswd -a user
New SMB password:
Retype new SMB password:
#

Désormais votre répertoire est accessible depuis le réseau.

Tester la syntaxe du fichier de configuration

L'utilitaire testparm (livré avec Samba) permet de vérifier si la syntaxe (et pas le fonctionnement) du fichier smb.conf est correcte.

# testparm /etc/samba/smb.conf
Load smb config files from /etc/samba/smb.conf
rlimit_max: rlimit_max (1024) below minimum Windows limit (16384)
Processing section "[nom_de_la_section_trop_long]"
Loaded services file OK. 
WARNING: You have some share names that are longer than 12 characters.
These may not be accessible to some older clients.
(Eg. Windows9x, WindowsMe, and smbclient prior to Samba 3.0.)
Server role: ROLE_STANDALONE
Press enter to see a dump of your service definitions

Dans cet exemple j'ai une alerte car le nom de section est trop long et risque de ne pas être identifié correctement depuis un système d'exploitation ou un serveur Samba un peu ancien (Eg. Windows9x, WindowsMe, and smbclient prior to Samba 3.0.), on s'en fiche.

Acceder au répertoire distant

Depuis un poste de travail Windows

Il suffit d'ouvrir les "partages réseau" pour apercevoir notre machine Linux.
Cliquez, entrez le couple login / password, naviguez dans vos répertoires partagés

Depuis un poste de travail Linux

Il est possible sous Linux d'accéder à ses répertoires partagés grâce au programme smbclient. S'il n'est pas déjà présent sur votre distribution installez le!

# apt-get install smbclient

En console

On affiche les répertoires partagés et les machines connectées au domaine grâce à la commande suivante:

$ smbclient -L //192.168.0.3 -U manu
Enter manu's password: 
Domain=[WORKGROUP] OS=[Unix] Server=[Samba 3.5.6]

Sharename       Type      Comment
---------       ----      -------
zoo_download    Disk      Downloads sur zoo
zoo_music       Disk      music sur zoo
IPC$            IPC       IPC Service (zoo)
Domain=[WORKGROUP] OS=[Unix] Server=[Samba 3.5.6]

Server               Comment
---------            -------
JULIE-NETBOOK        
LIVIA-PC             
ZOO                  zoo

Workgroup            Master
---------            -------
WORKGROUP            ZOO

Une fois identifié l'ordinateur et le répertoire souhaité on peut se connecter à ceux-ci en utilisant la commande suivante:

$ smbclient //192.168.0.3/zoo_music -U manu
Enter manu's password: 
Domain=[WORKGROUP] OS=[Unix] Server=[Samba 3.5.6]
smb: \> 

Une fois devant le prompt tapez "help" ou "?" pour afficher l'aide et trouver la commande que vous souhaitez exécuter.

smb: \> help
?              allinfo        altname        archive        blocksize      
cancel         case_sensitive cd             chmod          chown          
close          del            dir            du             echo           
exit           get            getfacl        hardlink       help           
history        iosize         lcd            link           lock           
lowercase      ls             l              mask           md               
mget           mkdir          more           mput           newer          
open           posix          posix_encrypt  posix_open     posix_mkdir    
posix_rmdir    posix_unlink   print          prompt         put            
pwd            q              queue          quit           readlink       
rd             recurse        reget          rename         reput          
rm             rmdir          showacls       setmode        stat           
symlink        tar            tarmode        translate      unlock         
volume         vuid           wdel           logon          listconnect    
showconnect    ..             !              
smb: \>

Pour obtenir de l'aide à propos d'une commande en particulier tapez simplement:

smb: \> help ls
HELP ls:
    <mask> list the contents of the current directory

smb: \> 

Par le gestionnaire de fichiers

Pour accéder de manière transparente à un répertoire partagé depuis un gestionnaire de fichier le principe consiste à faire un point de montage de ce répertoire la ou on le souhaite.

On commence par créer le répertoire ou sera monté le dossier partagé:

$ cd /home/user/partage
$ mkdir dossierDeMontage

Et bien sûr on le monte grâce à la commande suivante:

# smbmount //192.168.0.3/nomDossierPartage /home/user/partage/dossierDeMontage -o username=user

On n'oubliera pas de démonter le partage de cette manière:

$ smbumount ~/partage/dossierDeMontage

Des liens pour en savoir plus

debianaddict ccm samba smbnetfs et smbnetfs

^