Samba est une collections d'outils disponibles de façon libre sur les systèmes Un*x qui permettent d'accéder à un réseau MS-Windows. Samba permet ainsi à une machine Linux de devenir serveur de fichier pour tout un réseau sous MS-Windows, ou encore d'accéder aux différentes ressources qu'un serveur MS-Windows aura partagé.
Si vous avez installé correctement samba, les 2 démons smbd et nmbd doivent êtres lancés automatiquement au boot de votre ordinateur. Si ça n'est pas le cas installez les packages avec rpm ou glint.
Les fichiers de configurations par défaut de samba se sont grandement améliorés récemment, en tout cas ceux fournis dans la RedHat m'ont permis d'accéder à mes répertoires homes assez facilement. Du moins, ils étaient suffisamment commentés pour permettre de servir de modèle à des modifications personnelles.
Cependant, je vais fournir une copie de celui de ma machine, qui permet de partager les répertoires home des utilisateurs, et offre un répertoire public pour tous les utilisateurs depuis la machine MS-Windows. De plus, il permet au serveur Samba (sous Linux) d'utiliser et de monter les ressources qui sont partagées par la machine MS-Windows.
[global]
workgroup = ZEP_group
comment = Tonio Samba Server
volume = RedHat4
printing = bsd
printcap name = /etc/printcap
load printers = yes
log file = /var/log/samba-log.%m
max log size = 50
lock directory = /var/lock/samba
locking = yes
strict locking = no
share modes = yes
security = SHARE
null passwords = yes
socket options = TCP_NODELAY
; Permet au serveur Samba de devenir serveur du domaine
os level = 33
domain master = yes
; Facilite la gestion des noms longs
preserve case = yes
short preserve case = yes
; Chaque client accède à son répertoire
[homes]
comment = Home Directories
browseable = yes
read only = no
create mode = 0750
; Service d'impression pour partager les imprimantes
[printers]
comment = All Printers
path = /var/spool/samba
browseable = no
printable = yes
public = no
writable = no
create mode = 0700
; Répertoire public /home/samba, accessible en lecture/écriture pour
; tout le monde
[public]
comment = Repertoire Public
path = /home/samba
public = yes
writable = yes
browsable = yes
printable = no
Une fois le fichier de configuration modifié, il faut relancer Samba avec :
/etc/rc.d/init.d/smb stop
/etc/rc.d/init.d/smb start
Enfin, si vous modifiez le fichier smb.conf
, utilisez l'utilitaire
testparm qui permet de vérifier la cohérence des informations de votre
fichier.
Il permet également d'afficher la totalité de la configuration de votre
serveur. Ce qui permet de vérifier la validité de vos modifications.
Pour le moment, Samba ne permet d'accéder à la machine MS-Windows que si elle utilise une pile TCP/IP. En attendant la version qui devrait offrir un service direct avec NetBIOS. Il est donc nécessaire de configurer sous MS-Windows le support TCP/IP pour votre carte Ethernet, et d'affecter une adresse IP à votre machine.
Ceci étant fait après quelques reboots, devrait apparaître dans votre Voisinage Réseau votre nouveau serveur Samba sous Linux. Soyez patients, le support réseau de MS-Windows met parfois plus d'une minute pour "voir" les autres ordinateurs. Cependant en faisant Démarrer -> Rechercher Ordinateur et en entrant le nom de votre serveur Samba, il devrait s'afficher de manière quasi-instantanée.
Vous allez normalement alors pouvoir accéder au compte de l'utilisateur avec lequel vous êtes connectés sous MS-Windows, ainsi qu'à notre répertoire public /home/samba
Smbclient et smbmount permettent d'accéder aux différentes ressources offertes par le serveur MS-Windows.
smbclient permet de tester, répertorier et accéder aux ressources offertes par le serveur MS-Windows.
Tout d'abord, il est possible de vérifier si le serveur MS-Windows est bien disponible, et de lister les différentes ressources qu'il partage grâce à la commande :
$smbclient -L nom_serveur_windows
nom_serveur_windows représentant le nom que vous avez donné à votre
machine sous MS-Windows.
Ensuite, il est possible d'accéder au différents fichiers de la ressource partagée en s'y connectant avec smbclient, puis de la parcourir et de récupérer les fichier exactement comme avec un ftp :
$smbclient \\\\nom_serveur_windows\\nom_ressource
Avec la majorité des Shell, il est nécessaire de doubler les backslash (\)
pour qu'ils soient pris en compte.Après cela, il devrait vous être demandé un mot de passe (qui correspond à celui spécifié pour la ressource sous MS-Windows). Une fois le mot de passe entré, il n'y a plus qu'à parcourir les fichiers exactement comme avec ftp.
Smbmount permet de monter (comme par NFS) des répertoires MS-Windows sur l'arborescence Linux et de les manipuler le plus naturellement du monde.
$smbmount //nom_serveur_windows/nom_ressource /mnt -f 777
smbmount utilise les '/' à la différence de smbclient.
Il est nécessaire de rajouter une entrée dans le fichier /etc/hosts
pour nom_serveur_windows avec son adresse IP, pour que smbmount puisse
marcher correctement.
Enfin, il est nécessaire de passer quelques paramètres pour assurer la
compatibilité des droits de MS-Windows avec les droits Un*x. La clause
-f 777 met tous les fichiers en lecture-écriture pour tout le
monde.
On peut bien sûr la combiner avec l'option -u uid et -g gid qui
permettrons de définir les droits précis des fichiers de la ressource pour
pallier les carences de MS-Windows dans ce domaine.