Samba : Différence entre versions

De ArchwikiFR
m (Robot : Enlève modèles : I18n, Lang, Stub, Translateme)
(mep)
Ligne 1 : Ligne 1 :
 +
[[Catégorie:Réseau]]
 +
[[en:Samba]]
  
 
+
[http://www.samba.org/ Samba] est une implémentation du protocole [[wikipedia:fr:Server Message Block|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.
 
 
  Les commandes si dessous marquées d'un ''#'' sont à effectuer en root.
 
 
 
'''Samba''' est une réimplémentation du protocole SMB/CIFS, il facilite le partage entre les systèmes Linux et Windows. Samba se configure très facilement et s'utilise de manière simple.
 
  
 
==Installation==
 
==Installation==
Vous pouvez installer seulement le client pour vous connecter aux serveurs, mais vous ne pourrez pas en creer un :
+
Vous pouvez installer seulement le client {{pkg|smbclient}} pour vous connecter aux serveurs, mais vous ne pourrez pas en créer un :
  # pacman -S smbclient
+
pacman -S smbclient
  
Si vous souhaitez creer un serveur, le paquet ''smbclient'' ne suffit plus, fil faut installer ''samba'' :
+
Si vous souhaitez créer un serveur, il faut installer {{pkg|samba}} :
  # pacman -S samba
+
pacman -S samba
 
 
Un daemon, ''FAM'' est installé avec le serveur Samba. Ceci permet à Samba de voir les changements dans les fichiers sans que vous devriez le redémarrer. Pour lancer FAM au démarrage, il faut ajouter '''fam''' dans la ligne des daemons du fichier {{filename|/etc/rc.conf}}. Toutefois, sous Archlinux, il est recommander de ne pas mettre fam dans les daemons et d'installer Gamin, comme ceci :
 
  pacman -S gamin
 
Celui-ci a l'avantage de ne requiert aucune configuration de votre part, vous avez juste à redémarrer votre ordinateur.
 
  
 
==Configuration==
 
==Configuration==
Ligne 21 : Ligne 15 :
 
===smb.conf===
 
===smb.conf===
 
Le fichier {{filename|/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.
 
Le fichier {{filename|/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
+
cp /etc/samba/smb.conf.default /etc/samba/smb.conf
  
Ensuite, vous pourrez ouvrir le fichier {{filename|/etc/samba/smb.conf}} avec votre éditeur favori ou regarder quelques lignes plus loin pour utiliser SWAT.
+
Ensuite, vous pourrez ouvrir le fichier {{filename|/etc/samba/smb.conf}} avec votre éditeur favori ou regarder quelques lignes plus loin pour utiliser [[#SWAT|SWAT]].
  
===Lancement automatique des daemons===
+
===SWAT===
Si vous utilisez FAM, il faut le lancer pour utiliser Samba. Voici les commandes :
+
[http://www.samba.org/samba/docs/man/Samba-HOWTO-Collection/SWAT.html SWAT] (Samba Web Administration Tool) fait partie de la suite Samba. Pour lancer SWAT, il faut utiliser le service ''eXtended InterNET Daemon'', xinetd.
  # /etc/rc.d/fam start
 
  # /etc/rc.d/samba start
 
  
Et ajoutez ''fam'' et ''samba'' à la ligne des daemons dans le fichier {{filename|/etc/rc.conf}}.
+
{{Warning|Je vous recommande fortement de sauvegarder votre fichier {{filename|/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).}}
Toutefois, si vous utilisez Gamin, inutile de lancer FAM.
 
 
 
===SWAT: L'outil d'administration par web de Samba===
 
SWAT fait partie de la suite Samba. Pour lancer SWAT, il faut utiliser le démon ''eXtended InterNET Daemon'', xinetd.
 
Les opinions sont nombreuses et variées quand à l'utilité de SWAT. Peu importe l'avis des autres, utilisez le si vous en avez envie. Personnellement, je l'utilise en permanence.
 
 
 
Reprenons : SWAT est un outil d'administration qui offre une interface sur le web, chose parfaite pour administrer un serveur à distance. La manière dont il est fait permet de configurer quasiment les moindres recoints de Samba.
 
{{Warning|Je vous recommande fortement de sauvegarder votre fichier {{filename|/etc/samba/smb.conf}} car SWAT optimise le fichier au maximum (il enlève les commentaires et toutes les options par défault sont inscrites).}}
 
  
 
Pour utiliser SWAT, il faut d'abord installer xinetd :
 
Pour utiliser SWAT, il faut d'abord installer xinetd :
  # pacman -S xinetd
+
pacman -S xinetd
  
Editez le fichier {{filename|/etc/xinetd.d/swat}} avec votre éditeur de texte favori. Pour activer SWAT, changez la ligne ''disable = yes'' en ''disable = no'' :
+
Editez le fichier {{filename|/etc/xinetd.d/swat}} avec votre éditeur de texte favori. Pour activer SWAT, changez la ligne {{codeline|<nowiki>disable = yes</nowiki>}} en {{codeline|<nowiki>disable = no</nowiki>}} :
<pre>
+
{{file|name=/etc/xinetd.d/swat|content=<nowiki>
 
service swat
 
service swat
 
{
 
{
Ligne 52 : Ligne 36 :
 
         user                    = root
 
         user                    = root
 
         server                  = /usr/sbin/swat
 
         server                  = /usr/sbin/swat
         log_on_success += HOST DURATION
+
         log_on_success         += HOST DURATION
         log_on_failure += HOST
+
         log_on_failure         += HOST
         disable                = no
+
         disable                = yes
 
}
 
}
</pre>
+
</nowiki>}}
  
Si xinetd a été compilé avec le flag ''tcpwrapper'' activé, vous devez ajouter la ligne suivante dans votre fichier {{filename|/etc/hosts.allow}} :
+
Sous Arch Linux, {{pkg|xinetd}} est compilé avec l'option ''tcp_wrapper'' activée, vous devez ajouter la ligne suivante dans votre fichier {{filename|/etc/hosts.allow}} pour en permettre l'accès depuis votre pc:
  swat: ALL
+
swat: 127.0.0.1
Cette ligne laissera n'importe qui de votre réseau local se connecter sur SWAT. Mais vous pouvez très bien indiquer une adresse IP de cette façon
 
  swat: 192.168.1.25
 
Bien sûr, ce n'est qu'un exemple.
 
  
 
Ensuite, vous pouvez lancer xinetd :
 
Ensuite, vous pouvez lancer xinetd :
  # /etc/rc.d/xinetd start
+
/etc/rc.d/xinetd start
PS: Je vous recommande fortement d'ajouter ''xinetd'' dans la ligne '''DAEMONS''' du fichier {{filename|/etc/rc.conf}}.
 
  
 
L'interface web est accessible à l'adresse :
 
L'interface web est accessible à l'adresse :
  http://localhost:901/
+
<nowiki>http://localhost:901/</nowiki>
 +
 
 +
==Lancement==
 +
{{note|''samba'' dépend du paquet {{pkg|fam}} qui est également fourni par {{pkg|gamin}}. Si vous avez installé ''fam'', il faut le démarrer avant ''samba''.}}
  
===Ajouter des utilisateurs===
+
Lancez le service ''samba''.
Pour vous connecter à un partage Samba, vous devez ajouter un utilisateur (il est possible d'utiliser un compte invité, mais celui-ci ne permet pas d'écrire sur les disques).
+
/etc/rc.d/samba start
  # smbpasswd -a <user>
+
 
L'utilisateur doit déjà posséder un compte sur le serveur (vous pouvez en créer un avec ''adduser <user>''). Si l'utilisateur n'existe pas, vous recevrez ceci :
+
Vous pouvez le rajouter aux [[rc.conf#Services|services]] de [[rc.conf|/etc/rc.conf]]
  Failed to modify password entry for user "<user>"
 
  
 
==Accéder aux partages Samba==
 
==Accéder aux partages Samba==
KDE et Gnome offre la possibilité de parcourir les partages Samba. Vous n'avez donc besoin de rien si vous utilisez déjà ces bureaux. Toutefois, si vous prévoyez de lire un partage Samba en ligne de commande (sur un serveur par exemple), il faudra installer quelques paquets.
+
Les dossiers partagés sont accessible de plusieurs façons différentes, graphique ou en ligne de commande.
  
===Accéder à un partage Samba depuis Gnome ou KDE===
+
===smbclient===
Depuis Nautilus/Dolphin/Konqueror, appuyez sur {{keypress|Ctrl}}+{{keypress|L}} puis tapez dans le champ qui apparait :
+
''Samba'' fournit le client ''smbclient'' qui agit tel un client ''ftp'' pour les partages ''samba'':
  smb://servername/share
 
''servername'' étant l'addresse du serveur et ''share'' le nom du partage.
 
PS: Sous Gnome, je sais qu'il est possible de cliquer simplement sur '''Réseau''' puis sur '''Réseau Windows'''.
 
  
===Accéder à un partage Samba depuis un shell ou un gestionnaire de fichier ne supportant pas Samba===
+
Pour lister les partages d'un serveur:
Les partages peuvent être accéder depuis un monteur automatique ou via une méthode manuelle (peu recommandé si vous souhaitez vous connectez au partage au démarrage de l'ordinateur).
+
smbclient -L serveur [-U utilisateur[%mot_de_passe]]
====Montage des partages automatique====
+
 
Il existe plus alternatives pour un montage facile.
+
Pour interagir avec un partage tel un serveur ftp:
=====smbnetfs=====
+
smbclient //serveur/partage [-U utilisateur[%mot_de_passe]]
1. Installez '''smbnetfs''' :
+
 
  # pacman -S smbnetfs
+
===cifs-utils===
2. Ajoutez la ligne suivante dans {{filename|/etc/fuse.conf}} :
+
 
 +
{{pkg|cifs-utils}} permet de monter un partage avec {{codeline|mount}}:
 +
mount -t cifs //serveur/partage point_de_montage -o user=utilisateur,password=mot_de_passe
 +
 
 +
{{tip|{{codeline|man mount.cifs}} pour plus d'options}}
 +
 
 +
{{tip|Le service {{codeline|netfs}} doit être dans [[rc.conf|/etc/rc.conf]] pour monter les partages ''cifs'' indiqués dans {{filename|/etc/fstab}}.}}
 +
 
 +
===gvfs===
 +
 
 +
{{pkg|gvfs}} dispose d'un ''backend'' nommé {{pkg|gvfs-smb}} permettant de monter un partage ''samba''.<br/>
 +
''gvfs'' est notamment (ou peut être) utilisé par {{pkg|nautilus}} ([[GNOME]]), {{pkg|thunar}} ([[XFCE]]) ou {{pkg|pcmanfm}}.
 +
 
 +
Il permet aussi de l'utiliser en ligne de commande grâce à {{codeline|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 "~/.gvfs/partage sur serveur"
 +
 
 +
gvfs-mount -u smb://serveur/partage
 +
 
 +
===fuse===
 +
 
 +
{{note|''gvfs'' aussi utilise ''fuse'' mais comme il est plus ou moins lié aux interfaces graphiques...}}
 +
 
 +
====smbnetfs====
 +
 
 +
{{pkg|smbnetfs}} permet de parcourir les partages disponibles sur le réseau:
 +
pacman -S smbnetfs
 +
Ajoutez la ligne suivante dans {{filename|/etc/fuse.conf}} :
 
   user_allow_other
 
   user_allow_other
3. Lancez fuse et ajoutez-le dans la ligne ''MODULES'' du fichier {{filename|/etc/rc.conf}}
+
Lancez fuse et ajoutez-le dans la ligne ''MODULES'' du fichier [[rc.conf#Modules|/etc/rc.conf}}
  # modprobe fuse
+
   modprobe fuse
{{filename|/etc/rc.conf}}
+
Lancez le démon '''smbnetfs''' :
   [...]
+
/etc/rc.d/smbnetfs start
  MODULES=(... fuse ...)
+
Tous les partages du réseau sont immédiatement montés dans {{filename|/mnt/smbnet}}.
  [...]
+
 
4. Lancez le démon '''smbnetfs''' :
+
====usmb====
  # /etc/rc.d/smbnetfs start
+
 
Tous les partages du réseau sont immédiatement montés dans ''/mnt/smbnet''.
+
{{AUR Search|usmb}} permet de monter les partages sans avoir besoin des droits ''root''.<br/>
Vous pouvez ajouter smbnetfs dans le fichier {{filename|/etc/rc.conf}} pour le lancer au démarrage :
+
Il vous faut créer un fichier de configuration:
  [...]
+
{{file|name=~/.usmb.conf|content=<nowiki>
  DAEMONS=(... smbnetfs ...)
+
<?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>
 +
</nowiki>}}
 +
 
 +
Pour monter:
 +
usmb partage1
 +
Démonter:
 +
usmb -u partage1
 +
 
 +
== Exemple de configuration ==
 +
=== Partage sans utilisateur/mot de passe ===
 +
 
 +
==== Compte invité pour tous ====
 +
{{file|name=/etc/samba/smb.conf|content=<nowiki>
 +
[global]
 +
#...  
 +
security = share
 +
#...
 +
</nowiki>}}
 +
 
 +
==== Compte invité pour tout utilisateur inconnu ====
 +
{{file|name=/etc/samba/smb.conf|content=<nowiki>
 +
[global]
 +
#...
 +
map to guest = Bad User
 +
# ...
 +
security = user
 +
</nowiki>}}
 +
 
 +
=== Configuration simple ===
 +
 
 +
{{file|name=/etc/samba/smb.conf|content=<nowiki>
 +
[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
 +
</nowiki>}}
  
[[Catégorie:Réseau]]
+
== Ressources ==
[[Catégorie:Howto]]
+
* {{lien|http://www.samba.org/}}
[[Category:Necessite relecture]]
+
* {{lien|http://www.samba.org/samba/docs/SambaIntro.html|en|Documentation}}

Version du 30 mars 2011 à 15:40


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.

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.

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
{
        port                    = 901
        socket_type             = stream
        wait                    = no
        user                    = root
        server                  = /usr/sbin/swat
        log_on_success         += HOST DURATION
        log_on_failure         += HOST
        disable                 = yes
}

Sous Arch Linux, xinetd est compilé avec l'option tcp_wrapper activée, vous devez ajouter la ligne suivante dans votre fichier /etc/hosts.allow pour en permettre l'accès depuis votre pc:

swat: 127.0.0.1

Ensuite, vous pouvez lancer xinetd :

/etc/rc.d/xinetd start

L'interface web est accessible à l'adresse :

http://localhost:901/

Lancement

Note : samba dépend du paquet fam qui est également fourni par gamin. Si vous avez installé fam, il faut le démarrer avant samba.

Lancez le service samba.

/etc/rc.d/samba start

Vous pouvez le rajouter aux services de /etc/rc.conf

Accéder aux partages Samba

Les dossiers partagés sont accessible 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,password=mot_de_passe
Astuce : man mount.cifs pour plus d'options
Astuce : Le service netfs doit être dans /etc/rc.conf pour monter les partages cifs indiqués dans /etc/fstab.

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 "~/.gvfs/partage sur serveur"
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 fuse et ajoutez-le dans la ligne MODULES du fichier [[rc.conf#Modules|/etc/rc.conf}}

 modprobe fuse

Lancez le démon smbnetfs :

/etc/rc.d/smbnetfs start

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