Samba

De ArchwikiFR


Samba est une implémentation du protocole SMB/CIFS, il facilite le partage entre les systèmes Linux/Unix et Windows. Samba se configure très facilement et s'utilise de manière simple.

Sommaire

Installation

Vous pouvez installer seulement le client smbclient pour vous connecter aux serveurs, mais vous ne pourrez pas en créer un :

pacman -S smbclient

Si vous souhaitez créer un serveur, il faut installer samba :

pacman -S samba

Configuration

smb.conf

Le fichier /etc/samba/smb.conf doit être crée pour lancer le serveur Samba. Une fois crée, les administrateurs peuvent préférer une interface web pour configurer le serveur.

cp /etc/samba/smb.conf.default /etc/samba/smb.conf

Ensuite, vous pourrez ouvrir le fichier /etc/samba/smb.conf avec votre éditeur favori ou regarder quelques lignes plus loin pour utiliser SWAT.

Astuce: Par défaut, Samba utilise l'authentification par utilisateur (security=user, il faudra enregistrer les utilisateurs pouvant accéder aux partages :
smbpasswd -a utilisateur

SWAT

SWAT (Samba Web Administration Tool) fait partie de la suite Samba. Pour lancer SWAT, il faut utiliser le service eXtended InterNET Daemon, xinetd.

Attention: Je vous recommande fortement de sauvegarder votre fichier /etc/samba/smb.conf car SWAT optimise le fichier au maximum (il enlève les commentaires et seules les options non par défaut sont inscrites).

Pour utiliser SWAT, il faut d'abord installer xinetd :

pacman -S xinetd

Editez le fichier /etc/xinetd.d/swat avec votre éditeur de texte favori. Pour activer SWAT, changez la ligne disable = yes en disable = no :

Fichier: /etc/xinetd.d/swat
service swat
{
        socket_type             = stream
        wait                    = no
        user                    = root
        server                  = /usr/sbin/swat
        log_on_success  += HOST DURATION
        log_on_failure  += HOST
        disable                 = no
}

Ensuite, vous pouvez lancer xinetd :

systemctl start xinetd

L'interface web est accessible à l'adresse :

http://localhost:901/

Lancement

Lancez le service samba.

systemctl start smbd

Vous pouvez l'activer pour un démarrage automatique :

systemctl enable smbd

Accéder aux partages Samba

Les dossiers partagés sont accessibles de plusieurs façons différentes, graphique ou en ligne de commande.

smbclient

Samba fournit le client smbclient qui agit tel un client ftp pour les partages samba:

Pour lister les partages d'un serveur:

smbclient -L serveur [-U utilisateur[%mot_de_passe]]

Pour interagir avec un partage tel un serveur ftp:

smbclient //serveur/partage [-U utilisateur[%mot_de_passe]]

cifs-utils

cifs-utils permet de monter un partage avec mount:

mount -t cifs //serveur/partage point_de_montage -o user=utilisateur,sec=ntlm,password=mot_de_passe
Astuce: man mount.cifs pour plus d'options

Pour les montages cifs à partir du kernel 3.8 , il faut rajouter sec=ntlm,soit sécurité=ntlm

gvfs

gvfs dispose d'un backend nommé gvfs-smb permettant de monter un partage samba.
gvfs est notamment (ou peut être) utilisé par nautilus (GNOME), thunar (XFCE) ou pcmanfm.

Il permet aussi de l'utiliser en ligne de commande grâce à gvfs-mount.

Pour accéder à un partage depuis un gestionnaire de fichier compatible gvfs:

smb://serveur/partage

En ligne de commande:

gvfs-mount smb://serveur/partage
cd /run/user/$USER/"smb-share:server=serveur,share=partage"
gvfs-mount -u smb://serveur/partage

fuse

Note: gvfs aussi utilise fuse mais comme il est plus ou moins lié aux interfaces graphiques...

smbnetfs

smbnetfs permet de parcourir les partages disponibles sur le réseau:

pacman -S smbnetfs

Ajoutez la ligne suivante dans /etc/fuse.conf :

 user_allow_other

Lancez le démon smbnetfs :

systemctl start smbnetfs

Tous les partages du réseau sont immédiatement montés dans /mnt/smbnet.

usmb

usmb permet de monter les partages sans avoir besoin des droits root.
Il vous faut créer un fichier de configuration:

Fichier: ~/.usmb.conf
<?xml version="1.0" encoding="ISO-8859-1"?>
<usmbconfig>
  <credentials id="cred1">
    <domain>domaine</domain>
    <username>utilsateur</username>
    <password>mot_de_passe</password>
  </credentials>
  <mount id="partage1" credentials="cred1">
    <server>serveur</server>
    <share>partage</share>
    <mountpoint>repertoire_partage</mountpoint>
  </mount>
</usmbconfig>

Pour monter:

usmb partage1

Démonter:

usmb -u partage1

Exemple de configuration

Partage sans utilisateur/mot de passe

Compte invité pour tous

Fichier: /etc/samba/smb.conf
[global]
 #... 
 security = share
 #...

Compte invité pour tout utilisateur inconnu

Fichier: /etc/samba/smb.conf
[global]
 #...
 map to guest = Bad User
 # ...
 security = user

Configuration simple

Fichier: /etc/samba/smb.conf
[global]
 workgroup = WORKGROUP
 server string = Samba Server
 netbios name = PC_NAME
 security = share
 guest account = utilisateur
 username map = /etc/samba/smbusers
 name resolve order = hosts wins bcast
 wins support = no
 [public]
 comment = Partage publique
 path = chemin_vers_le_partage
 available = yes
 browsable = yes
 public = yes
 writable = no

Ressources

Outils personnels
Autres langues