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 [2014/12/21 19:42] (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: 2014/12/21 19:42 (modification externe)