LinuxPedia

Wiki libre et indépendant dédié à GNU-Linux et BSD.

Outils pour utilisateurs

Outils du site


samba_fichiers

A. Installation du serveur SAMBA

Plusieurs méthodes d'installation en fonction de votre distribution, soit par :

  • Le site www.SAMBA.org, en téléchargeant la source,
  • soit par votre gestionnaire de paquets.

Les paquages (par défaut) sont :

  • samba
  • samba-client
  • samba-common (souvent intégré au package samba)
  • samba-doc (pas nécessaire mais contient la documentation disponible sur le site de samba)

Note :

Sur Suse il suffit de cliquer 2 fois sur l'icône “serveur SAMBA” dans “services réseaux” (dans Yast).
L'installation des paquages se fait automatiquement.

La commande « smb – V » vous permet de connaitre la version de votre serveur installé.

Pour consulter la liste des fichiers constituant les paquets :

rpm -ql nomdupaquet

Pour supprimer un paquet proprement :

rmp -e nomdupaquet

B. Test du démon smbd et du partage

La 1ère étape est de tester le démon smbd.

Pour cela, créer un partage sur une machine Windows.
Ajouter un utilisateur sur ce partage. L'utilisateur doit disposer d'un mot de passe.

En effet, sans le mot de passe l'authentification à la ressource partagée ne se fera pas.
Sans aller dans le détail, cela est une restriction dû aux droits NTFS.

La commande pour tester tous les partages (locaux ou distants) est « smbclient »

smbclient //ippcdistant/nomdupartage -Uutilisateurdistant

L'option “-U” permet de renseigner l'utilisateur autorisé à accéder au partage.

La même commande peut-être utilisée avec la valeur “%mp” afin d' éviter la demande du mot de passe de l'utilisateur.

smbclient //ipdistant/partage -Uuser%mp

Le prompt smb apparait.

La commande « help » vous permet d'obtenir les commandes disponibles.

  • ls = lister le contenu du répertoire
  • mkdir = créer un répertoire
  • get nomfichier = obtenir le fichier spécifié
  • rm = supprimer un fichier.
  • quit = quitter …

Note :

Certaines commandes comme chmod, chown, rm… sont des commandes propre au noyau UNIX et ne fonctionneront pas si votre partage se trouve sur un système Windows.

C. Constitution du fichier SMB.CONF

Votre fichier de configuration se situe dans la répertoire /etc/samba/smb.conf (sous suse/debian)

Pour l'éditer, vous pouvez utiliser l'éditeur de texte « vi »

vi smb.conf

1. Les sections.

Smb.conf est défini en section entre crochet. Elle se termine dès l'apparition d'une autre section.

Le nom d'une section désigne un service correspondant à un répertoire ou à une imprimante.

Chaque section contient des options sous la forme :

option = valeur

Les noms des sections et des options sont insensibles à la casse.
Les lignes commençant par un “#” ou “;” sont ignorées.

Note :

Samba détecte les modifications du fichier smb.conf. Il le relis au bout d'une minute.
Néanmoins il est possible de redémarrer les démons smbd (/etc/init.d/smb restart) pour forcer la relecture du fichier.

init.d est le démon TCP/IP.

2. Les sections jouant un rôle particulier

[global]

Cette section décrit le comportement général de samba.

[homes]

Cette section permet de partager votre répertoire utilisateur.

[printers]

Cette section permet l'accès aux imprimantes du système.
Il rgarde dans le fichier de configuration /etc/cups/printers.conf

D. Les ACL

Comme sous Windows il y a une gestion des ACL sous un noyau UNIX.

  • Les ACL concernant votre partage (pensez à l'onglet “partage” dans windows),
  • les ACL concernant la sécurité de votre partage (onglet “sécurité” de windows“)

Ce sont les ACL les plus restrictives qui sont pris en compte.

Sous UNIX c'est exactement la même chose.

  • Vos ACL de “partage ” sont configurés dans votre fichier smb.conf via des options comme “writable, read only…”.
  • Les ACL de “sécurité” sont paramétrés sur le répertoire via la commande “chmod”

Ains, si dans votre fichier smb.conf vous avez l'option “writable” positionné en yes et que dans votre répetoire de partage seul l'utilisateur root peut écrire, il vous sera impossible d'écrire dans ce répertoire.

E. Fonctionnement de chmod

Bien que cette documentation traite de SAMBA, il est important de rappeler les bases concernant les droits de sécurité afin d' éviter toutes erreurs de paramétrage.

la commande « ls -l nomdurépertoire » vous liste les droits de sécurité.

Example :

ls -l 

Cela va donner :

drwxrwxrwx  samba

Un droit sur Unix est défini en une chaîne de neuf caractères (le d = directory) décomposé en trois bloc.

  • Le 1er bloc représente les droits du propriétaire.
  • Le 2e bloc représente les droits du groupe.
  • Le 3é bloc représente les droits des autres.

r= read
w= write
x=execute

1. La représentation octale

Pour modifier les droits sur un fichier ou répertoire il est possible de la faire de 2 façons :

  • représentation octale
  • représentation symbolique

Nous verrons ici que la représentation octale est très simple et rapide à saisir.

Comme les droits sont positionnels, on peut les représenter sous formes de bits (0/1) Il faut donc 3 bits pour représenter un triplet de droits.

Le droit r = 4
le droit w = 2
le droit x = 1

Si je souhaite obtenir les droits suivants “rwxr-xr-x” alors le chmod du fichier ou répertoire sera de “755

Examples :

chmod 755 toto

Si je veux modifier le propriétaire par un utilisateur “admin” :

chown admin toto

Si je veux remettre le propriétaire du répertoire par “root” et je veux mettre le groupe par “users” :

chown root:users toto

F. Les options "Security"

Tout au long de la documentation nous allons utiliser l' option “Security” qui peut prendre 5 valeurs.

Share

  • Mode de fonctionnement le plus simple, pas d'authentification.
  • Déconseillé sauf pour les configurations simples en mode anonyme.
  • Mapping des connexions anonymes réalisé sur l'utilisateur système défini dans le paramètre “guest account” de la section globale.

User (par défaut)

  • Samba gère sa propre base d'utilisateur.
  • L'utilisateur doit exister au niveau système avant d'être crée dans Samba (c'est à dire qu'il doit exister dans le fichier /ect/passwd).
  • Il n'y a plus de connexions anonymes sur la machine Samba.
  • Possibilité de faire apparaitre le répertoire personnel de l'utilisateur dans les partages.

Domain (Intégrer le serveur Samba dans un domaine WinNT)

  • L'authentification est déportée sur un des contrôleurs du domaine Windows NT.
  • Peut-être une machine Windows ou une machine Samba
  • La machine SAMBA est alors un poste client ou un serveur membre d'un domaine.
  • La machine doit être jointe au domaine NT
  • Nécessite de partager les utilisateurs avec Winbind

Server (obsolète, on l'utilisait avant, à la place de Domain)

Ads

  • Identique à domain mais pour les réseaux Active Directory
  • Nécessite de partager les utilisateurs avec Winbind
  • Libraire Kerberos nécessaire

G. Partage SAMBA simple avec security "share"

Pour bien comprendre le fonctionnement d'un serveur SAMBA nous allons crée un nouveau fichier smb.conf et renommer l'original en .bak

Mv /etc/samba/smb.conf /etc/samba/smb.conf.bak
vi smb.conf

Saisissez cette 1ere configuration :

[global]
security = share

[test]
path = /chemindurépertoire (ex: /home/test)
writable = yes
guest ok = yes

Note :

Prenez pour habitude d'avoir une fenêtre qui affiche vos logs dans un terminal.
Faites un « tail -f /var/log/samba/log.smbd » qui affichera les 10 dernières lignes de votre log en temps réel.

Pour tester la configuration du fichier de configuration smb, faire un

testparm


Pour tester la connexion et l'authentification :

smbclient //localhost/partage

Explications du fichier de configuration :

Ici l'authentification n'est pas obligatoire et l'accès invité est autorisé.
Possibilité de lecture et d'écriture sur le partage grâce à l'option “writable” en fonction des droits chmod.

Il est possible d'ajouter d'autres options que nous ne verrons pas sur ce mode de securité qui présente peu d'intérêts en terme de sécurité.

H. Partage simple avec "Security=user"

Pour rappel l'authentification au niveau du partage est obligatoire.

[global]
security = user

[test]
path = /chemindurépertoire
writable = yes

Explications :

Afin de vous connecter sur le partage il faut créer l'utilisateur sur votre système (/etc/passwd)

useradd nom user

Pour supprimer un utilisateur :

userdel nom user

Enfin, il faut créer l'utilisateur Unix dans la base SAM du serveur samba.

smbpasswd -a nomuser

Pour supprimer un utilisateur :

smbpasswd -x nomuser

La commande “pdbedit” vous permet d'interroger la base SAM.

L'option “help” sur une commande vous permettra d'en connaitre les diverses options disponibles.
man” et le “nom de la commande” (ex : man pdbedit) vous affiche le manuel de la commande.

I. Partage simple avec répertoire partagé propre à l'utilisateur

Le droit « sticky bit »

Ce droit n'a de sens que sur un répertoire et si plusieurs utilisateurs (membre du même groupe par exemple) peuvent y créer leurs fichiers.

Ce droit empêchera la suppression des fichier/dossiers qui y sont contenus par quelqu'un d'autre que son propriétaire.

Pour appliquer le droit « sticky bit », 2 solutions :

  1. Appliquer le droit sur le répertoire parent
chmod 1755 toto
  1. Ajouter l'option “Directory Mask” dans le smb.conf au niveau de votre partage
[global]
security = user

[test]
path = /chemindurépertoire
writable = yes
Directoty mask = 1700
Create Mask = 1700
invalid users = le user ou @groupe de votre choix

Explications :

  • Directory Mask

Cette option adopte les notations octales propre à Unix pour indiquer les droits par défauts associés aux répertoires..
La valeur 1700 spécifie la « lecture/écriture » et « exécution » pour le « propriétaire seulement ». (rwx——).

Ainsi si le « propriétaire » ne souhaite pas que les « membres du groupe » et les « autres » puissent consulter ses répertoires crées dans le partage il est possible d'y ajouter cette option.

  • Create Mask

Idem que directory mask

  • Invalid users

Cette option permet de définir des utilisateurs supplémentaires qui ne doivent pas accéder au partage. Les utilisateurs définit verront le partage mais ne pourront pas y accéder.

J. Particularité de la section [homes]

Cette section correspond à la possibilité de partager les répertoires de connexion des utilisateurs, sans avoir à les énumérer individuellement dans le fichier smb.conf.

[homes]
writable = yes
browsable = no
veto files = /.*/

Explications :

L'option « browsable » avec la valeur «no » empêche le partage d'apparaître dans le voisinage réseau.
L'utilisateur pourra écrire dans son répertoire.

L'option «veto files » permet de masquer tous les fichiers commençant par un “.
Ainsi que ce soit un sytème Unix ou Windows, il ne pas possible de visualiser les fichiers cachés de vos répertoires.

samba_fichiers.txt · Dernière modification: 2018/11/17 13:54 (modification externe)