« Samba » : différence entre les versions

Aller à la navigation Aller à la recherche
2 820 octets ajoutés ,  31 mai 2011
Aucun résumé des modifications
 
(13 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=


Installez le serveur samba :
Installez le serveur samba :
Ligne 18 : 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 25 : Ligne 36 :
valid users = link
valid users = link
comment = link
comment = link
</pre>
Créez maintenant l'utilisateur link sur le serveur :
<pre>
adduser link --disabled-login --home /srv/link/
smbpasswd -a link
</pre>
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>
=Éditer la liste des utilisateurs samba=
Pour cela, il faut utiliser l'outil <code>pdbedit</code> fournit avec le paquet <code>samba</code> sous debian/ubuntu.
Pour lister les utilisateurs de la base de donnée :
<pre>pdbedit --list</pre>
=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 <code>/etc/fstab</code> du client :
<pre>
//192.168.0.1/link /mnt/link smbfs credentials=/root/.smbpasswd 0 0
</pre>
</pre>


Le fichier <code>/root/.smbpasswd</code> contient les informations de connexion :
<pre>
username=link
password=password
</pre>
=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.
<pre>
#! /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
</pre>
Et le fichier crontab <code>/etc/cron.d/link</code> (lancement toutes les 5 minutes) :
<pre>
<pre>
adduser link --disabled-login --home /srv/link/
# m h dom mon dow user  command
smbpasswd -a link
*/5 *  *  *  *  root  /root/services/link.sh --quiet
</pre>
</pre>
4 231

modifications

Menu de navigation