LinuxPedia

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

Outils pour utilisateurs

Outils du site


samba_fichiers

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

samba_fichiers [2018/11/17 13:54] (Version actuelle)
Ligne 1: Ligne 1:
 +====== 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** »
 +
 +<code>smbclient //ippcdistant/nomdupartage -Uutilisateurdistant</code>
 +
 +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.
 +
 +<code>smbclient //ipdistant/partage -Uuser%mp</code>
 +
 +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 »
 +<code>vi smb.conf</code>
 +
 +
 +===== 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__** :
 +
 +<code>
 +ls -l </code>
 +
 +__Cela va donner__ :
 +
 +<code>drwxrwxrwx  samba
 +</code>
 +
 +
 +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.
 +
 +{{manuel:droits.jpg|}}
 +
 +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 :
 +
 +<code>chmod 755 toto</code>
 +
 +__Si je veux modifier le propriétaire par un utilisateur "admin" :__
 +
 +<code>chown admin toto</code>
 +
 +__Si je veux remettre le propriétaire du répertoire par "root" et je veux mettre le groupe par "users" :__
 +
 +<code>chown root:users toto</code>
 +
 +
 +
 +
 +
 +
 +
 +
 +====== 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
 +
 +<code>Mv /etc/samba/smb.conf /etc/samba/smb.conf.bak</code>
 +<code>vi smb.conf</code>
 +
 +__Saisissez cette 1ere configuration__ :
 +
 +<code>
 +[global]
 +security = share
 +
 +[test]
 +path = /chemindurépertoire (ex: /home/test)
 +writable = yes
 +guest ok = yes</code>
 +
 +__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 
 +<code>testparm</code>\\
 +
 +Pour tester la connexion et l'authentification : 
 +<code>smbclient //localhost/partage</code>
 +
 +
 +**__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.
 +
 +<code>[global]
 +security = user
 +
 +[test]
 +path = /chemindurépertoire
 +writable = yes
 +</code>
 +
 +**__Explications__** :
 +
 +Afin de vous connecter sur le partage il faut créer l'utilisateur sur votre système (/etc/passwd)\\
 +
 +<code>useradd nom user</code>
 +
 +__**Pour supprimer un utilisateur**__ :
 +
 +<code>userdel nom user</code>
 +
 +Enfin, il faut créer l'utilisateur Unix dans la base SAM du serveur samba.\\
 +
 +<code>smbpasswd -a nomuser</code>
 +
 +__**Pour supprimer un utilisateur**__ :
 +
 +<code>smbpasswd -x nomuser</code>
 +
 +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__** :
 +
 +  - **Appliquer le droit sur le répertoire parent**
 +
 +<code>chmod 1755 toto</code>
 +
 +  - **Ajouter l'option "Directory Mask" dans le smb.conf au niveau de votre partage**
 +
 +
 +<code>
 +[global]
 +security = user
 +
 +[test]
 +path = /chemindurépertoire
 +writable = yes
 +Directoty mask = 1700
 +Create Mask = 1700
 +invalid users = le user ou @groupe de votre choix</code>
 +
 +
 +**__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.
 +
 +<code>
 +[homes]
 +writable = yes
 +browsable = no
 +veto files = /.*/</code>
 +
 +
 +
 +**__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)