« Samba » : différence entre les versions
(4 versions intermédiaires par le même utilisateur non affichées) | |||
Ligne 1 : | Ligne 1 : | ||
[[category:serveur]] | [[category:serveur]] | ||
[[category:debian]] | [[category:debian]] | ||
Samba est une implémentation libre du protocole SMB/CIFS de Microsoft. | |||
Nous allons voir comment configurer un serveur samba afin de partager des fichiers sur un réseau local. | |||
=Installation et configuration de base= | =Installation et configuration de base= | ||
Ligne 20 : | Ligne 23 : | ||
pam password change = no | pam password change = no | ||
load printers = no | load printers = no | ||
</pre> | |||
Vous pouvez constater que j'ai choisi de désactiver la synchronisation entre les mots-de-passes linux et samba. | |||
Nous allons maintenant créer un premier partage nommé <code>link</code> accessible uniquement par l'utilisateur <code>link</code> en lecture comme en écriture. Ce partage samba permettra d'accéder au dossier <code>/srv/link/</code> sur le serveur. | |||
Editez encore une fois <code>/etc/samba/smb.conf</code> : | |||
<pre> | |||
[link] | [link] | ||
path = /srv/link/ | path = /srv/link/ | ||
Ligne 29 : | Ligne 38 : | ||
</pre> | </pre> | ||
Créez l'utilisateur link : | Créez maintenant l'utilisateur link sur le serveur : | ||
<pre> | <pre> | ||
adduser link --disabled-login --home /srv/link/ | adduser link --disabled-login --home /srv/link/ | ||
Ligne 35 : | Ligne 44 : | ||
</pre> | </pre> | ||
A partir d'une machine client, vous pouvez accéder au dossier partagé | A partir d'une machine client, vous pouvez accéder au dossier partagé en ligne de commande grâce à <code>smbclient</code> : | ||
<pre>smbclient //192.168.0.1/link -U link password</pre> | <pre>smbclient //192.168.0.1/link -U link password</pre> | ||
Ligne 52 : | Ligne 61 : | ||
</pre> | </pre> | ||
Le fichier <code>/root/.smbpasswd contient les informations de connexion : | Le fichier <code>/root/.smbpasswd</code> contient les informations de connexion : | ||
<pre> | <pre> | ||
username=link | username=link | ||
Ligne 60 : | Ligne 69 : | ||
=Remonter un partage automatiquement= | =Remonter un partage automatiquement= | ||
Ce petit script, lancé en cron, permet de vérifier l'état d'un partage samba. Il nécessite d'avoir configuré le fichier <code> /etc/fstab</code> comme décrit précédemment. | Ce petit script, lancé en cron, permet de vérifier l'état d'un partage samba. Il nécessite d'avoir configuré le fichier <code>/etc/fstab</code> comme décrit précédemment. | ||
<pre> | <pre> | ||
#! /bin/bash | #! /bin/bash |
Dernière version du 31 mai 2011 à 11:55
Samba est une implémentation libre du protocole SMB/CIFS de Microsoft.
Nous allons voir comment configurer un serveur samba afin de partager des fichiers sur un réseau local.
Installation et configuration de base
Installez le serveur samba :
aptitude install samba smbclient
L'installeur vous demandera de choisir un domaine de travail. Vous pouvez laisser workgroup.
Éditez le fichier /etc/samba/smb.conf
:
interfaces = 192.168.0.1 bind interfaces only = yes security = user encrypt passwords = true passdb backend = tdbsam obey pam restrictions = yes unix password sync = no pam password change = no load printers = no
Vous pouvez constater que j'ai choisi de désactiver la synchronisation entre les mots-de-passes linux et samba.
Nous allons maintenant créer un premier partage nommé link
accessible uniquement par l'utilisateur link
en lecture comme en écriture. Ce partage samba permettra d'accéder au dossier /srv/link/
sur le serveur.
Editez encore une fois /etc/samba/smb.conf
:
[link] path = /srv/link/ read only = no writeable = yes valid users = link comment = link
Créez maintenant l'utilisateur link sur le serveur :
adduser link --disabled-login --home /srv/link/ smbpasswd -a link
A partir d'une machine client, vous pouvez accéder au dossier partagé en ligne de commande grâce à smbclient
:
smbclient //192.168.0.1/link -U link password
Éditer la liste des utilisateurs samba
Pour cela, il faut utiliser l'outil pdbedit
fournit avec le paquet samba
sous debian/ubuntu.
Pour lister les utilisateurs de la base de donnée :
pdbedit --list
Monter un partage automatiquement au boot
Si vous voulez que le partage soit monté automatiquement au démarrage du client, ajoutez les lignes suivantes dans le fichier /etc/fstab
du client :
//192.168.0.1/link /mnt/link smbfs credentials=/root/.smbpasswd 0 0
Le fichier /root/.smbpasswd
contient les informations de connexion :
username=link password=password
Remonter un partage automatiquement
Ce petit script, lancé en cron, permet de vérifier l'état d'un partage samba. Il nécessite d'avoir configuré le fichier /etc/fstab
comme décrit précédemment.
#! /bin/bash name="core-link" host="192.168.0.1" port="139" mount="/mnt/link" quiet=0 if [ "$1" = "--quiet" ]; then quiet=1 fi if nc -zv -w30 $host $port <<< ” &> /dev/null; then if [ "$quiet" = 0 ]; then echo "[$name] Service available, checking link status."; fi for i in `cat /proc/mounts | cut -d' ' -f2`; do if [ "$i" = "$mount" ]; then #already mounted, stop here if [ "$quiet" = 0 ]; then echo "[$name] Link is up."; fi exit 0 fi done #nothing found, so it's not mounted if [ "$quiet" = 0 ]; then echo "[$name] Link is down. Trying to mount."; fi if mount /mnt/link; then if [ "$quiet" = 0 ]; then echo "[$name] Link established."; fi else echo "[$name] Link mount failed. See error logs above." fi else echo "[$name] Service unavailable. Will wait until next cron." fi
Et le fichier crontab /etc/cron.d/link
(lancement toutes les 5 minutes) :
# m h dom mon dow user command */5 * * * * root /root/services/link.sh --quiet