# Administration réseau sous Linux/Samba

SAMBA:
* Configuration réseau
* NFS
* Samba
* Apache
* ProFTPD
* DHCP
* Netfilter
* TCP Wrapper
* Tcpdump
* SSH
* Routage
* TP VDN
* TP Configuration réseau
* TP NFS
* TP Samba
* TP Apache
* TP FTP
* TP TCP Wrapper
* TP Tcpdump
* TP SSH
* TP DHCP
* TP Global
* TP Netfilter
* TP Licence - Configuration réseau
* TP Licence - Deux sites web derrière un firewall
* TP Licence - Serveur intranet
* Configuration réseau
* NFS
* Samba
* Apache
* ProFTPD
* DHCP
* Netfilter
* TCP Wrapper
* Tcpdump
* SSH
* Routage
* TP VDN
* TP Configuration réseau
* TP NFS
* TP Samba
* TP Apache
* TP FTP
* TP TCP Wrapper
* TP Tcpdump
* TP SSH
* TP DHCP
* TP Global
* TP Netfilter
* TP Licence - Configuration réseau
* TP Licence - Deux sites web derrière un firewall
* TP Licence - Serveur intranet
[ Modifier le sommaire ]
Samba est un service permettant de partager des répertoires et imprimantes entre des stations Linux et des stations Windows. Un How-To très complet peut être trouvé là : http://www.samba.org/samba/docs/man/Samba-HOWTO-Collection/
Cette partie présente juste une introduction à l'utilisation de samba. Nous considérons que nous sommes en mode sécurité user (security=user, nécessite un compte utilisateur unix). L'utilisation du niveau de sécurité domain et la partie partie partage avec Windows (notamment les dernières versions) n'est pas vue. Pour un accès Windows, cette page donne les quelques commandes supplémentaires: http://www.oregontechsupport.com/samba/samba.php

## Configuration du service Samba

Pour la configuration de ce service le principal fichier à modifier est smb.conf qui se trouve généralement dans /etc ou /etc/samba selon la distribution.
Il existe également des interfaces graphiques pour configurer Samba.
La section [global] contient les options communes à tous les répertoires partagés.
Voici quelques options utilisables :

### workgroup

    Le nom du groupe de travail. Les ordinateurs du même groupe de travail se retrouvent côte à côte dans le voisinnage réseau de Windows.

### server string

    La description du serveur, qui apparaitra à côté de son nom dans l'explorateur Windows. Si la description contient le terme %h, il sera remplacé par le nom d'hôte de la machine.

### encrypt passwords

    Détermine si les mots de passe doivent être chiffrés avant d'être transmis. C'est fortement recommandé et tous les systèmes Windows à partir de 98 et NT4 SP3 utilisent cette fonctionnalité par défaut.

### log file

    Le nom du fichier qui contiendra le journal des activités du serveur. On peut avoir un journal par machine client en utilisant %m dans le nom du fichier. Le %m sera remplacé par le nom de la machine client.

### max log size

    Taille maximale du fichier journal, en Kio.

### socket options

    Indique les options à mettre sur les sockets comme par exemple TCP_NODELAY pour que le système envoi immédiatement les petits paquets sans attendre d'en avoir plusieurs.
De nombreuses autres options sont disponibles. Elles sont détaillées dans la page de man de smb.conf

### Exemple
## Configuration du partage des répertoires

Les partages Samba sont décrits dans des sections ayant la forme suivante :
Les paramètres principaux sont les suivantes :

### comment

    La description du répertoire partagé.

### path

    Le chemin du répertoire partagé. C'est le contenu du répertoire indiqué qui sera partagé.

### read only

    Détermine si les clients pourront écrire ou non dans le répertoire partagé.

### public

    Autoriser ou non les connexions sans mot de passe.

### valid users

    Liste des seuls utilisateurs autorisés à se connecter séparés par des espaces. Si on veut autoriser tous les utilisateurs il ne faut pas mettre cette option.

### browseable

    Détermine si le partage apparaitra dans la liste des partages du serveur.
La section [homes] est un partage particulier. Elle définit le partage des répertoires utilisateur des comptes unix de la machine.
De nombreuses autres options sont disponibles. Elles sont détaillées dans la page de man de smb.conf
Par défaut (version 3.5.6) vous pouvez accéder à samba de façon anonyme (smbclient //serveur/nom_du_partage -U compte sans mot de passe). Pour effectuer un accès plus sécurisé (avec compte et mot de passe), vous devez également ajouter un compte samba qui se référence à un compte linux existant:
adduser compte (si ce n'est pas fait) smbpasswd -a compte
Les droits des répertoires et fichiers doivent être correct. Exemple
chmod u+rws,g+rx,o+rx .../dossier et/ou fichier

### Exemples
## Protéger les répertoires partagés

Il est possible de rendre privé un répertoire et d'autoriser ou non des utilisateurs à y accéder.
Pour cela, pour chaque répertoire partagé ajoutez les options:
Pour chaque nom que vous avez rentré, il faut ajouter l'utilisateur samba avec
Un compte unix du même nom doit exister. Si ce n'est pas le cas, il faut le créer avec la commande adduser.

## Lancement du service

Lancement :
Pour le stopper :
Pour le relancer :
Les modifications du fichier smb.conf sont prises en compte pour chaque nouvelle connexion. Pour les rendre effectives sur les connexions déjà établies, il faut relancer Samba.

## Accès aux répertoires

Pour accéder aux partage sous Windows, il suffit d'ouvrir le voisinage réseaux d'une station Windows et de vérifier si la machine y est.
Pour se connecter en ligne de commande à un partage à partir de Linux, on peut utiliser la commande
Il est également possible de monter un partage Samba avec
Différentes options sont disponibles. On peut les consulter dans man smbclient et man smbmount. Généralement, il est conseillé d'ajouter les options -o username=compte,password=??? pour se connecter.
Par exemple, pour monter un répertoire "public" il faut préciser qu'il faut se connecter en guest :
Il faut également que votre compte utilisateur ait des droits sur le montage. Le compte root peut utiliser smbmount sans trop de problème.
Autrement, plusieurs possibilités existent:
* compléter le fichier /etc/fstab avec votre montage //<IP-ADRESS>/<folder_on share> <your_local_mountpoint cifs defaults,iocharset=utf8,codepage=cp850,uid=1000,gid=1000,noauto,user,credentials=~/.smbcredentials 0 0)
* ajouter des droits dans sudoers. (par défaut sous ubuntu 10.10, sudo smbclient //<nom du serveur>/<nom du partage> <répertoire local>-o username=compte,password=??? fonctionne bien)