Différences

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

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
samba_smb.conf [Le 31/08/2010, 15:13]
69.162.6.44
samba_smb.conf [Le 26/08/2023, 20:48] (Version actuelle)
L'Africain
Ligne 1: Ligne 1:
-{{tag>​samba partage ​BROUILLON}}+{{tag>​samba partage}}
  
 ====== Le fichier de configuration de Samba : smb.conf ====== ====== Le fichier de configuration de Samba : smb.conf ======
  
 La configuration de **[[Samba]]** n'est pas une mince affaire, c'est pourquoi cette page est assez longue, mais soyez tranquille, seule une partie s'​appliquera à votre besoin, continuez de lire attentivement.\\ La configuration de **[[Samba]]** n'est pas une mince affaire, c'est pourquoi cette page est assez longue, mais soyez tranquille, seule une partie s'​appliquera à votre besoin, continuez de lire attentivement.\\
-**Cette page n'est pas exhaustive** et ne permettra pas à tout le monde d'y trouver son bonheur, toutefois vous y trouverez ce dont vous avez besoin pour une configuration simple. Des configurations nécessaires à un aboutissement suffisant y sont proposées. Comme c'est le cas pour bon nombre de logiciels (serveurs, en l'​occurrence) des configurations différentes sont possibles, en fonction des habitudes…\\ 
-⇒ **Ce ne sont que des propositions.** 
  
-<note warning>​ +Cette page est destinée à documenter le fichier de configuration de **[[Samba]]**
-  - Un certain nombre de notions sont rapidement expliquées ici, cette page est destinée à documenter le fichier de configuration de **Samba**, pas toutes les notions à avoir pour tout comprendre en détail. Faites appel à votre curiosité pour en savoir plus (si vous estimez en avoir besoin). +
-  - Dans cette page, le terme "​serveur"​ sera souvent employé, c'est parce que je(([[utilisateurs:​MrWaloo]])) considère Samba comme un service auquel se connectent des clients, il s'agit donc d'un serveur (au même titre que apache, par exemple), même si Samba tourne sur un PC domestique avec une version //​non-server//​ de n'​importe quelle distribution GNU/Linux+
-</​note>​+
  
 ===== Introduction ===== ===== Introduction =====
Ligne 20: Ligne 16:
   * ''​[le_nom_d'​un_partage]''​ pour chaque partage   * ''​[le_nom_d'​un_partage]''​ pour chaque partage
  
-[[:​tutoriel:​comment_editer_un_fichier|Éditez le fichier]] **/​etc/​samba/​smb.conf**\\  +===== Généralités =====
-Dans ce fichier de configuration par défaut il y a beaucoup de commentaires,​ afin de ne pas les perdre et d'​avoir un fichier clair, il est conseillé de [[:​tutoriel/​console_commandes_de_base#​cp|copier]] ce fichier sous un autre nom et de partir de zéro((oui : page blanche, mais soyez sans crainte, elle ne le restera pas)).+
  
-Une fois terminé, pour vérifier que la configuration est sans faute de syntaxe, utiliser la commande suivante : +Le fichier **/etc/samba/smb.conf** est construit ​de différentes sections dont la première est généralement ​: [global].\\
-<​code>​ +
-testparm -s +
-</​code>​ +
-Vous verrez comment ''​samba''​ interprètera votre fichier ​de configuration et, en cas d'​erreurs,​ vous serez averti. +
- +
-Après chaque modification,​ il faut redémarrer ''​samba''​ : +
- +
-  ​* ** Ubuntu 9.10 [[karmic|( Karmic Koala )]] et versions antérieures : ** +
-<​code>​ +
-sudo service ​samba restart +
-</code> +
-  * ** Ubuntu 10.04 [[lucid|( Lucid Lynx )]] : ** +
-<​code>​ +
-sudo service smbd restart +
-</​code>​ +
- +
-\\ Si un redémarrage complet n'est pas possible pour des raisons ​de continuité de service et/ou si les modifications ne touchent pas le service NetBios (nmbd), ​la commande suivante suffit ​: +
-  * ** Ubuntu 9.10 [[karmic|( Karmic Koala )]] et versions antérieures : ** +
-<​code>​ +
-sudo service samba reload +
-</​code>​ +
-  * ** Ubuntu 10.04 [[lucid|(Lucid Lynx )]] : ** +
-<​code>​ +
-sudo service smbd reload +
-</​code>​ +
- +
-===== Généralités =====+
  
-Le fichier **/​etc/​samba/​smb.conf** est construit en différentes sections dont la première est généralement : [global].\\ 
-Une section commence par une ligne contenant un mot entre crochets et fini lorsque la section suivante commence ;-).\\ 
-Toute ligne commençant par un # est un commentaire. Toute ligne commençant par un ; est aussi considérée comme un commentaire mais sert pour les paramètres ignorés.\\ 
 Dans une section, les valeurs sont affectées aux paramètres de cette manière : Dans une section, les valeurs sont affectées aux paramètres de cette manière :
 <​file>​paramètre = valeur</​file>​ <​file>​paramètre = valeur</​file>​
 Dans certains cas, il est possible d'​affecter une liste de valeurs à un même paramètre, la syntaxe à utiliser est alors : Dans certains cas, il est possible d'​affecter une liste de valeurs à un même paramètre, la syntaxe à utiliser est alors :
 <​file>​paramètre = valeur1,​valeur2,​valeur3</​file>​ <​file>​paramètre = valeur1,​valeur2,​valeur3</​file>​
-ou séparés ​par des espaces+ou séparées ​par des espaces
 <​file>​paramètre = valeur1 valeur2 valeur3</​file>​ <​file>​paramètre = valeur1 valeur2 valeur3</​file>​
 Il est coutumier d'​indenter((ajouter des espaces en début de ligne)) les paramètres afin de les distinguer des sections et des commentaires. Il est coutumier d'​indenter((ajouter des espaces en début de ligne)) les paramètres afin de les distinguer des sections et des commentaires.
  
-Une ligne se terminant par le caractère ''​\''​ se prolonge sur la ligne suivante comme le veut la mode Unix.+=====Exemple de partage de dossier résumé===== 
 +<​file>​ 
 +[partage] 
 +   ​comment = Partage de données 
 +   path = /​srv/​partage 
 +   guest ok = no 
 +   read only = no 
 +   ​browseable = yes 
 +   valid users = @partage</​file>​ 
  
-Exemple illustratif ​+Quelques explications ​
-<​file>#​ Un commentaire très important puisqu'il est là… +  ​*[partage] : sert à spécifier le nom du partage entre "​[]",​ c'​est ​le nom qui devra être utilisé pour accéder au partage 
-# Début de la section +  * **comment** : description du partage, 
-[section] +  * **path** : chemin vers le dossier à partager, sur le serveur 
-# Un paramètre comme ceci +  * **guest ok** : accès invité au partage (par défaut "​no"​). Si vous décidez d'​activer cette option, vous devez configurer l'​option "guest account"​ qui par défaut prend la valeur ​"​nobody"​. 
-    paramètre unaire = valeur +  * **read only** : partage accessible uniquement en lecture seule (yes ou no) 
-ou comme cela +  * **browseable** : le partage doit-il être visible ou masqué si on liste les partages du serveur avec un hôte distant (découverte réseau). La valeur "​yes"​ permet ​de le rendre visible. 
-    liste de paramètres = toi,moi,eux # et tous ceux qui le veulent… Ah oui, on peut commenter en fin de ligne ;-) +  * **valid users** : spécifier les utilisateurs ou les groupes ​qui ont les droits d'​accès au partage (les droits sur le système ​de fichiers doivent être cohérents vis-à-vis de cette autorisation). On précise un utilisateur avec son identifiant et un groupe avec son identifiant précédé du caractère "​@"​. Pour indiquer plusieurs valeurs, séparez-les par une virgule.
-# Celui-ci n'est pas pris en compte +
-;    paramètre invalidé = essai infructueux</​file>​+
  
 La liste des paramètres se trouve dans la page de [[tutoriel/​console_commandes_de_base#​man|man]] (ou manuel) de smb.conf : La liste des paramètres se trouve dans la page de [[tutoriel/​console_commandes_de_base#​man|man]] (ou manuel) de smb.conf :
Ligne 81: Ligne 53:
    * (G) pour les paramètres de la section ''​[global]''​    * (G) pour les paramètres de la section ''​[global]''​
    * (S) pour les paramètres spécifiques aux partages (//shares// en anglais). Ces paramètres peuvent être définis dans la section ''​[global]''​ et seront valables pour tous les partages, cela évitera de les refaire figurer dans chaque partage. On dira que les paramètres sont //​hérités//​.    * (S) pour les paramètres spécifiques aux partages (//shares// en anglais). Ces paramètres peuvent être définis dans la section ''​[global]''​ et seront valables pour tous les partages, cela évitera de les refaire figurer dans chaque partage. On dira que les paramètres sont //​hérités//​.
 +=====Exemple de partage de dossier détaillé=====
  
 ==== Paramètres généraux de [global] ==== ==== Paramètres généraux de [global] ====
Ligne 89: Ligne 62:
 <​file>​workgroup = CHEZ_MOI</​file>​ <​file>​workgroup = CHEZ_MOI</​file>​
 Le groupe de travail (ou nom de domaine pour les PC dans un domaine) est le nom du "​réseau"​ dans lequel les PC "​sont"​((désolé pour les guillemets en rafale, mais je n'ai pas le choix pour garder un minimum de précision)). Bon, on ne commence pas par la notion la plus facile…\\ Le groupe de travail (ou nom de domaine pour les PC dans un domaine) est le nom du "​réseau"​ dans lequel les PC "​sont"​((désolé pour les guillemets en rafale, mais je n'ai pas le choix pour garder un minimum de précision)). Bon, on ne commence pas par la notion la plus facile…\\
-Il ne faut pas créer un groupe de travail, il existe dès lors qu'un PC se défini ​comme faisant partie de ce groupe.\\ +Il ne faut pas créer un groupe de travail, il existe dès lors qu'un PC se définit ​comme faisant partie de ce groupe.\\ 
-En gros, pour ranger un peu les PC sur un même réseau, on les place dans des groupes appelés "groupe ​de travail"​. Si vous avez moins de 50 PC, vous pouvez les mettre dans le même groupe, ça ne dérangera personne!+En gros, pour ranger un peu les PC sur un même réseau, on les place dans des groupes appelés "groupes ​de travail"​. Si vous avez moins de 50 PC, vous pouvez les mettre dans le même groupe, ça ne dérangera personne !
  
 == Nom NetBios == == Nom NetBios ==
Ligne 98: Ligne 71:
 == Description == == Description ==
 <​file>​server string = serveur %h (Samba %v, Ubuntu)</​file>​ <​file>​server string = serveur %h (Samba %v, Ubuntu)</​file>​
-C'est la description ​de votre PC que vous voulez donner.+C'est la description que vous voulez donner ​de votre PC.
  
 <​note>​Vous avez remarqué ces %h et %v ? Ils sont décrits dans le manuel de smb.conf, ici %h est le nom de l'​hôte du serveur (//​hostname//​) et %v est la version de Samba.</​note>​ <​note>​Vous avez remarqué ces %h et %v ? Ils sont décrits dans le manuel de smb.conf, ici %h est le nom de l'​hôte du serveur (//​hostname//​) et %v est la version de Samba.</​note>​
Ligne 110: Ligne 83:
 == Interface == == Interface ==
  
-Dans certains cas((comme par exemple celui ou 2 paires de [[:​samba#​demons_de_samba|démons]] (//​daemons//​) Samba tournent sur le même serveur, avec une interface par instance)) on peut vouloir restreindre l'​accès aux partages Samba à une partie des interfaces Ethernet disponibles sur le serveur ; limiter l'​accès aux membres du réseau filaire et interdire l'​accès à ceux qui sont sur le réseau WiFi par exemple.+Dans certains cas((comme par exemple celui où 2 paires de [[:​samba#​demons_de_samba|démons]] (//​daemons//​) Samba tournent sur le même serveur, avec une interface par instance)) on peut vouloir restreindre l'​accès aux partages Samba à une partie des interfaces Ethernet disponibles sur le serveur ; limiter l'​accès aux membres du réseau filaire et interdire l'​accès à ceux qui sont sur le réseau WiFi par exemple.
 Il faut savoir que ce n'est pas ce qui est fait par défaut, puisque par défaut, Samba est accessible sur toutes les interfaces réseau, donc si ce fonctionnement vous convient, aucun besoin de préciser quoi que ce soit. Il faut savoir que ce n'est pas ce qui est fait par défaut, puisque par défaut, Samba est accessible sur toutes les interfaces réseau, donc si ce fonctionnement vous convient, aucun besoin de préciser quoi que ce soit.
 <​file>​ <​file>​
Ligne 118: Ligne 91:
 interfaces = 127.0.0.1 eth0:0 192.168.1.20/​24 interfaces = 127.0.0.1 eth0:0 192.168.1.20/​24
 </​file>​ </​file>​
- 
-== Configuration des sockets == 
- 
-Un paramètre qui permet d'​augmenter les performances réseau est ''​socket options''​. Ce paramètre qui ne prendra qu'une ligne peut vous changer la vie ! Exemple : 
-<​file>​socket options = TCP_NODELAY IPTOS_LOWDELAY SO_RCVBUF=8192 SO_SNDBUF=8192</​file>​ 
  
 === Paramètres liés à la résolution de nom === === Paramètres liés à la résolution de nom ===
Ligne 133: Ligne 101:
  
 Sa configuration peut être de 3 types : Sa configuration peut être de 3 types :
-  * **La plus part du temps : Aucune.** +  * **La plupart ​du temps : Aucune.** 
-Sur des réseaux simples (sans sous réseaux) WINS n'est pas important. C'est d'​ailleurs la configuration par défaut, c'est à dire celle qui est utilisée si rien n'est précisé.+Sur des réseaux simples (sans sous-réseaux) WINS n'est pas important. C'est d'​ailleurs la configuration par défaut, c'est-à-dire celle qui est utilisée si rien n'est précisé.
  
   * **Client WINS**   * **Client WINS**
Ligne 177: Ligne 145:
 === Exemple de section [global] === === Exemple de section [global] ===
  
-Voici un exemple((sans commentaire,​ ce qui n'est pas top)) d'une section [global] telle qu'​elle pourrait être pour une configuration sans authentification :+Voici un exemple((sans commentaire,​ ce qui n'est pas top... Attention security= SHARE est obsolète avec Samba 4)) d'une section [global] telle qu'​elle pourrait être pour une configuration sans authentification :
 <​file>​ <​file>​
 [global] [global]
Ligne 188: Ligne 156:
     hide files = /​lost+found/​     hide files = /​lost+found/​
 </​file>​ </​file>​
-Profitons en pour parler des paramètres encore inconnus. Il suffit de dire que des notions d'​anglais aident bien à la compréhension de leur rôle.+Profitons-en pour parler des paramètres encore inconnus. Il suffit de dire que des notions d'​anglais aident bien à la compréhension de leur rôle.
  
 Cas particulier pour ''​hide files'',​ les noms de fichiers à cacher sont entre ''/'',​ exemple si on veut cacher les répertoires ''​lost+found'',​ les corbeilles et les fichiers ''​*.bak''​ : Cas particulier pour ''​hide files'',​ les noms de fichiers à cacher sont entre ''/'',​ exemple si on veut cacher les répertoires ''​lost+found'',​ les corbeilles et les fichiers ''​*.bak''​ :
Ligne 260: Ligne 228:
 === Accès aux données : propriétaire === === Accès aux données : propriétaire ===
  
-Il est possible de faire en sorte que tous les utilisateurs d'un partage ​soit reconnus par le système comme un seul utilisateur et/ou comme faisant partie d'un seul groupe, quel que soit l'​identifiant de l'​utilisateur.+Il est possible de faire en sorte que tous les utilisateurs d'un partage ​soient ​reconnus par le système comme un seul utilisateur et/ou comme faisant partie d'un seul groupe, quel que soit l'​identifiant de l'​utilisateur.
 <​file>​ <​file>​
     force user = nobody     force user = nobody
     force group = nogroup     force group = nogroup
 </​file>​ </​file>​
-Ceci peut vous éviter de vous préoccuper des droits sur les fichiers.+Ceci peut vous éviter de vous préoccuper des droits sur les fichiers.\\ 
 +Le compte utilisateur sur le client [[/​adduser#​addgroup|doit faire partie du groupe]] ainsi utilisé (nogroup ci-dessus), ajouter le compte utilisateur dans ce groupe sur le serveur ne suffit pas !
  
 ==== Partage d'​imprimantes ==== ==== Partage d'​imprimantes ====
Ligne 271: Ligne 240:
 <​file>​ <​file>​
 # quelques lignes dans la section [global] # quelques lignes dans la section [global]
-########## Printing ########## ​+########## Printing ##########
    load printers = yes     load printers = yes 
    ​printing = cups     ​printing = cups 
    ​printcap name = cups     ​printcap name = cups 
  
-[printers] ​+[printers]
    ​comment = All Printers ​    ​comment = All Printers ​
    ​browseable = no     ​browseable = no 
Ligne 285: Ligne 254:
    ​create mask = 0700     ​create mask = 0700 
  
-[print$] ​+[print$]
    ​comment = Printer Drivers ​    ​comment = Printer Drivers ​
    path = /​var/​lib/​samba/​printers ​    path = /​var/​lib/​samba/​printers ​
Ligne 291: Ligne 260:
    read only = yes     read only = yes 
    guest ok = no     guest ok = no 
-# Uncomment to allow remote administration of Windows print drivers.  +# Uncomment to allow remote administration of Windows print drivers. 
-# Replace '​ntadmin'​ with the name of the group your admin users are +# Replace '​ntadmin'​ with the name of the group your admin users are
 # members of. # members of.
 ######### !!!!!!!!!! Attention à cette ligne !!!!!!!!!!!!! ######## ######### !!!!!!!!!! Attention à cette ligne !!!!!!!!!!!!! ########
Ligne 299: Ligne 268:
  
 C'est avec ces quelques lignes que vous pourrez partager les imprimantes gérées via [[:cups]]. C'est avec ces quelques lignes que vous pourrez partager les imprimantes gérées via [[:cups]].
 +
 +==== Vitesse de transfert lente et/ou temps d'​accès longs ====
 +
 +Dans le cas où les transferts se trouvent réduits (très lents ou très longs), une solution est de modifier la configuration des //sockets// :
 +<​file>​socket options = TCP_NODELAY IPTOS_LOWDELAY SO_RCVBUF=8192 SO_SNDBUF=8192</​file>​
  
 ==== Sécurité ==== ==== Sécurité ====
Ligne 304: Ligne 278:
 Toute la configuration de **Samba** tourne autour de la politique de sécurité ; il s'agit du paramètre ''​security''​. Toute la configuration de **Samba** tourne autour de la politique de sécurité ; il s'agit du paramètre ''​security''​.
  
-<note important>​**C'​est sur ce paramètre là que vous devez réfléchir avant de commencer.** Un nom NetBios ou un groupe de travail qui change ce n'est qu'une ligne à changer, pour la politique de sécurité, c'est toute la philosophie de la configuration qui change.\\+<note important>​**C'​est sur ce paramètre là que vous devez réfléchir avant de commencer.** Un nom NetBios ou un groupe de travail qui change ce n'est qu'une ligne à changer, par contre, pour la politique de sécurité, c'est toute la philosophie de la configuration qui change.\\
 Vous êtes prévenu.</​note>​ Vous êtes prévenu.</​note>​
  
 Ce paramètre peut avoir les valeurs suivantes : Ce paramètre peut avoir les valeurs suivantes :
-  * **[[#​security_share|SHARE]]** : Pas de sécurité, ​les partages sont tous accessibles à tout le monde. Les partages peuvent toute fois être en lecture seule+  * **[[#​security_share|SHARE]]** : Sécurité basée sur les mots de passe. Les utilisateurs accèdent au partage ​en indiquant le mot de passe d'un utilisateur. Les droits sur les fichiers s'​appliqueront sur le partage. Mode utilisé pour des postes sous Windows 9x et Me. Il est aussi possible de ne pas faire d'​authentification via ce mode
-  * **[[#​security_user|USER]]** : Une sécurité basée sur une identification par login et mot de passe "​local"​((c'est entre guillemetsc'​est ​qu'il y a une raison, mais il ne sera pas question de parler de ldap ici)).+  * **[[#​security_user|USER]]** : Une sécurité basée sur une identification par login et mot de passe depuis une liste d'​utilisateurs ​(Base d'utilisateurs Sambabase d'annuaire LDAP, ...). Ce mode est celui par défaut si le champ security n'est pas renseigné.
   * **[[#​security_domain|DOMAIN]]** : Une sécurité basée sur une identification par login et mot de passe géré par un contrôleur de domaine.   * **[[#​security_domain|DOMAIN]]** : Une sécurité basée sur une identification par login et mot de passe géré par un contrôleur de domaine.
   * **[[#​security_server|SERVER]]** : Une sécurité basée sur une identification par login et mot de passe géré par un autre serveur sur le réseau.   * **[[#​security_server|SERVER]]** : Une sécurité basée sur une identification par login et mot de passe géré par un autre serveur sur le réseau.
Ligne 315: Ligne 289:
  
 Vous l'avez compris, pour une utilisation "à la maison",​ on choisira l'un des deux premiers cas. Vous l'avez compris, pour une utilisation "à la maison",​ on choisira l'un des deux premiers cas.
- 
-==== Vitesse de transfert lente ==== 
- 
-Dans le cas où votre transfert dans un réseau domestique se trouve réduit (très lent ou très long), une solution est de modifier la configuration de Samba. 
- 
-Ouvrir le fichier de configuration samba  
-<​code>​sudo gedit /​etc/​samba/​smb.conf</​code>​ 
- 
-Remplacer cette ligne : 
-<​file>​socket options = TCP_NODELAY</​file>​ 
- 
-Par celle-ci : 
-<​file>​socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192</​file>​ 
- 
-Redémarrer Samba : voir [[samba_smb.conf|Le fichier de configuration de Samba : smb.conf]] ​ 
- 
-===== security = SHARE ===== 
- 
-Dans ce mode, donc pas de droits à gérer, juste les partages en accès libre. La seule restriction possible est la lecture seule. 
- 
-Exemple de section ''​[global]''​ : 
-<​file>​ 
-[global] 
-    server string = %h server (Samba, Ubuntu) 
-    security = SHARE 
-    syslog = 0 
-    dns proxy = No 
-    guest account = ( !!!! mettre ici le login de l'​utilisateur principal) 
-</​file>​ 
- 
-Exemple de configuration d'un partage : 
-<​file>​ 
-[Nom_du_partage] 
-   path = /​chemin/​du/​répertoire/​partagé 
-   ​comment = qui peut le plus peut le moins 
-   read only = no 
-   guest ok = yes 
-   ​public = yes 
-</​file>​ 
-Le nom du partage ne doit pas excéder 12 caractères si vous avez des clients sous MS windows 98. 
  
 ===== security = USER ===== ===== security = USER =====
Ligne 363: Ligne 297:
 <​code>​ <​code>​
 sudo useradd -s /bin/false -d /dev/null -g guest nom_utilisateur sudo useradd -s /bin/false -d /dev/null -g guest nom_utilisateur
-sudo smbpasswd ​-a nom_utilisateur+sudo pdbedit ​-a nom_utilisateur
 </​code>​ </​code>​
 Puis rentrer deux fois le mot de passe de cet utilisateur (ou le faire taper par l'​utilisateur lui-même). Puis rentrer deux fois le mot de passe de cet utilisateur (ou le faire taper par l'​utilisateur lui-même).
  
-Les utilisateurs qui ont un compte sur le PC pourront être autorisés aussi avec "valid users"​. Cependant, il faudra définir un mot de passe samba pour tous les utilisateurs :+Les utilisateurs qui ont déjà ​un compte sur le PC pourront être autorisés aussi avec "valid users"​. Cependant, il faudra définir un mot de passe samba pour tous les utilisateurs :
 <​code>​ <​code>​
-sudo smbpasswd ​-a nom_utilisateur+sudo pdbedit ​-a nom_utilisateur
 </​code>​ </​code>​
 +<note important>​ //​smbpasswd//​ était utilisé pour des bases utilisateurs(([[https://​www.samba.org/​samba/​docs/​man/​Samba-HOWTO-Collection/​passdb.html#​id2592512|page sur samba.org concernant les bases des comptes utilisateurs]])) de type "​smbpasswd"​ défini dans ///​etc/​samba/​smb.conf//​ avec le paramètre //passdb backend// qui assurait sous samba 3 la compatibilité avec du samba 2. \\
 +Sous samba 4, vous devez avoir //passdb backend = tdbsam// et c'est donc //pdbedit// qu'il faut utiliser :
 +<​code>​pdbedit -a username</​code>​
 +Pour importer la base de données smbpasswd :
 +<​code>​pdbedit -i smbpasswd -e tdbsam</​code>​
 +</​note>​
 +Pour supprimer un utilisateur :
 +<​code>​ pdbedit -x -u nom_utilisateur </​code>​
  
-==== Gestion des utilisateurs : en entreprise de petite taille ====+Création du groupe ​en commun : 
 +<​code>​groupadd sambausers</​code>​
  
-<​note>​Une solution de gestion des utilisateurs est proposée ici, libre à vous de choisir de la suivre.</​note>​ +Ensuite soit les utilisateurs sont créés de sorte qu'ils ne puissent pas utiliser le système (shell par défaut sur /bin/false et répertoire personnel (home) sur /dev/nutiuytill) :
-Il n'est pas forcément nécessaire,​ dans une configuration simple, de faire en sorte que tous les utilisateurs système soient créés dans des groupes d'​utilisateurs différents.\\ +
-Ce qui est proposé ici est de gérer les droits uniquement via ''​samba''​. C'est une solution applicable la plupart du temps. +
- +
-Dans cette optique, un seul groupe d'​utilisateurs est créé : +
-<​code>​groupadd sambausers</​code>​ +
-Et les utilisateurs sont créés de sorte qu'ils ne puissent pas utiliser le système (shell par défaut sur /bin/false et répertoire personnel (home) sur /dev/null) :+
 <​code>​ <​code>​
 sudo useradd -s /bin/false -d /dev/null -g sambausers nom_utilisateur sudo useradd -s /bin/false -d /dev/null -g sambausers nom_utilisateur
-sudo smbpasswd -a nom_utilisateur 
 </​code>​ </​code>​
-Puis rentrer deux fois le mot de passe de cet utilisateur (ou le faire taper par l'​utilisateur lui-même).\\ 
-Un utilisateur nommé ''​samba''​ et faisant partie du groupe ''​sambausers''​ peut être créé pour qu'il soit propriétaire des répertoires partagés. 
  
-==== Configuration ====+Soit les utilisateurs du système déjà existants sont directement ajoutés dans le groupe sambausers 
 +<​code>​ 
 +sudo adduser [nom_utilisateur_existant] sambausers 
 +</​code>​
  
-<​file>​ +Enfin, créer pour chaque utilisateur un accès "​samba"​ :
-#​======================= Global Settings =======================+
  
-[global]+<​code>​ sudo pdbedit -a nom_utilisateur </​code>​
  
-## Browsing/​Identification ### +Puis rentrer deux fois le mot de passe de cet utilisateur ​(ou le faire taper par l'​utilisateur)
-workgroup = Arcade +
-server string = Samba server ​(%h) +
-netbios name = Serveur +
-dns proxy = no+
  
-#### Networking #### +Pour lister les utilisateurs samba:
-interfaces = 192.168.214.20 +
-bind interfaces only = yes+
  
-### Access rights ### +<​code>​ sudo pdbedit -L -v </​code>​
-create mask = 0660 +
-directory mask = 0770+
  
-#### Debugging/​Accounting #### 
-log file = /​var/​log/​samba/​log.%m 
-max log size = 1000 
-syslog = 0 
-panic action = /​usr/​share/​samba/​panic-action %d 
  
-####### Authentication ####### 
-security = user 
-# ATTENTION A BIEN REMPLACER "​groupe_principal"​ par le nom du groupe dont vous faites partie 
-# (si vous êtes l'​utilisateur principal, c'est également votre login) 
-# et de rajouter les éventuels autres utilisateurs... 
-valid users = @guest, @groupe_principal 
-encrypt passwords = true 
-passdb backend = tdbsam 
-obey pam restrictions = yes 
-unix password sync = no 
-map to guest = bad user 
  
-############​ Misc ############​ 
-socket options = IPTOS_LOWDELAY TCP_NODELAY 
-usershare allow guests = no 
-</​file>​ 
  
-=== Configuration d'un partage en lecture/​écriture pour certains utilisateurs ===+==== Configuration ==== 
 + 
 + 
 +## Identification ### 
 +workgroup = nom-du-domaine --> Nom sous lequel le serveur apparaitra 
 +server string = Serveur Samba MohYns (%h) --> Nom du serveur Samba 
 +netbios name = Serveur Samba --> Nom 
 + 
 +### Debugging ### 
 +log file = /​var/​log/​samba/​log.%m --> Emplacement du fichier log 
 +max log size = 1000 --> Taille maximum 
 + 
 +#### Authentication #### 
 +security = user --> Sécurité 
 +valid users = YnsMohUser --> Utilisateurs valides 
 +encrypt passwords = true --> Les mots de passent sont cryptés 
 +passdb backend = YnsMoh --> Stockage des comptes utilisateurs autorisés à se connecter au serveur 
 + 
 + 
 +#### Reste #### 
 +Browseable=yes --> Visible par les clients 
 +Writable=yes --> Droit d'​écriture 
 + 
 +#### Configuration d'un partage en lecture/​écriture pour certains utilisateurs ​#### 
 +path /​mnt/​raid/​screen --> Chemin du dossier partagé 
 +comment ​Repertoire " Screen " --> Répertoire en lecture et écriture pour tous ceux qui y ont accès 
 +read only non --> Restriction de lecture 
 +write list = liste des utilisateurs ayant le droit de lire et d'​écrire séparés par des espaces
  
-Ajouter les lignes suivantes pour chacun des partages de ce type : 
-<​file>​ 
-[Nom_du_partage] 
-   path = /​chemin/​du/​répertoire/​partagé 
-   ​comment = Répertoire en lecture et écriture pour tous ceux qui y ont accès 
-   read only = no 
-   valid users = liste des utilisateurs séparés par des espaces 
-</​file>​ 
  
-=== Configuration d'un partage en lecture/​écriture pour certains utilisateurs et en lecture seule pour d'​autres=== 
-Ajouter les lignes suivantes pour chacun des partages de ce type : 
-<​file>​ 
-[Nom_du_partage] 
-   path = /​chemin/​du/​répertoire/​partagé 
-   ​comment = Répertoire en lecture seule pour certains, en lecture/​écriture pour d'​autres (sans compter ceux qui n'y ont pas accès) 
-   read only = yes 
-   valid users = liste des utilisateurs n'​ayant que le droit de lire séparés par des espaces 
-   write list = liste des utilisateurs ayant le droit de lire et d'​écrire séparés par des espaces 
-</​file>​ 
  
 ==== Droits sur les répertoires partagés : à la maison ==== ==== Droits sur les répertoires partagés : à la maison ====
Ligne 464: Ligne 381:
 ==== Droits sur les répertoires partagés : en entreprise de petite taille ==== ==== Droits sur les répertoires partagés : en entreprise de petite taille ====
  
-Le plus simple étant que le répertoire appartienne à l'​utilisateur "​samba"​ prévu à cet effet. Voici la commande à lancer pour tous les répertoires partagés :+Remarque importante : Au niveau d'un répertoire partagé, Samba choisi toujours les droits "​minimum"​. Si on désire qu'un utilisateur ou groupe puisse écrire sur le répertoire partagé à partir d'un autre ordinateur, non seulement il doit disposer des droits d'​écriture sur le répertoire lui-même (à vérifier avec la commande chmod), ET le smb.conf doit également lui permettre de le faire. 
 + 
 +Le plus simple étant que le répertoire appartienne à l'​utilisateur "samba" ​ ainsi qu'au groupe "​sambausers" prévu à cet effet. Voici la commande à lancer pour tous les répertoires partagés :
 <​code>​ <​code>​
 sudo chown -R samba:​sambausers /​répertoire/​partagé sudo chown -R samba:​sambausers /​répertoire/​partagé
Ligne 470: Ligne 389:
 </​code>​ </​code>​
  
 +Ainsi, tous les utilisateurs qui sont présents dans le groupe propriétaire "​sambausers"​ disposeront de tous les droits sur ce répertoire,​ mais via le partage réseau c'est la configuration de Samba (dans le smb.conf) qui fixera précisément qui peut lire et qui peut écrire parmi les utilisateurs de ce groupe :
 +<​code>​
 +valid users = @sambausers ​                # seuls les utilisateurs du groupe sambausers peuvent se connecter au répertoire partagé
 +read only = yes                       # limitation des droits à la lecture pour tout le groupe sambausers, mais .....
 +write list = utilisateur01 ​            #​........sauf pour utilisateur01 (qui est dans le groupe sambausers) qui pourra y écrire.
 +</​code>​
 +L'​umask sur le serveur samba joue aussi un rôle important. Reportez-vous à la page [[droits#​droits_attribues_automatiquement_a_un_fichier|droits attribués automatiquement à un fichier (ou répertoire)]]
 ===== security = DOMAIN ===== ===== security = DOMAIN =====
 +Configure Samba en contrôleur de domaine. 
 +cf. [[:​samba-active-directory]]\\
 FIXME Appel à contribution FIXME Appel à contribution
  
Ligne 477: Ligne 404:
  
 ===== security = SERVER ===== ===== security = SERVER =====
- +Obsolète avec Samba 4((cf. la page sur [[https://​wiki.samba.org/​index.php/​Samba_4.0_Whitepaper]])) (version actuellement supportée)
-FIXME Appel à contribution+
  
 ===== security = ADS ===== ===== security = ADS =====
 +Permet l'​intégration du serveur Samba dans un contrôleur de domaine Active Directory
  
 +L'​authentification Active Directory se fait avec kerberos, nous devons installer un client kerberos sur notre Linux pour pouvoir nous authentifier.
 +
 +Installation de kerberos et winbind
 +<​code>​
 +#aptitude install krb5-user libpam-krb5 winbind
 +</​code>​
 +Paramétrage de kerberos
 +<​code>​
 +#vi /​etc/​krb5.conf
 +</​code>​
 +<​file>​
 +[libdefaults]
 +default_realm = DOMAINE.LOCAL ​        #Nom dns du domaine AD EN MAJUSCULE
 +...
 +[realms]
 +DOMAINE.LOCAL = {
 +kdc = domaine.local ​                             #Nom DNS ou adresse IP du contrôleur de domaine
 +admin_server = domaine.local
 +}
 +...
 +[domain_realm]
 +.kerberos.server = DOMAINE.LOCAL
 +</​file>​
 +Teste de connexion au contrôleur de domaine
 +<​code>​
 +#kinit ADMINISTRATEUR@DOMAINE.LOCAL
 +</​code>​
 +Authentification des utilisateurs par winbind
 +<​code>​
 +#vi /​etc/​nsswitch.conf
 +</​code>​
 +<​file>​
 +passwd: ​           compat winbind
 +group: ​            ​compat winbind
 +shadow: ​           compat winbind
 +</​file>​
 +Paramétrage de samba. Pensez à sauvegarder le fichier smb.conf!
 +<​code>​
 +#vi /​etc/​samba/​smb.conf
 +</​code>​
 +<​file>​
 +[global]
 +workgroup = DOMAINE
 +realm = DOMAINE.LOCAL
 +security = ADS
 +encrypt passwords = yes
 +winbind enum users = yes
 +winbind enum groups = yes
 +winbind use default domain = yes
 +idmap uid = 600-20000
 +idmap gid = 600-20000
 +template shell = /bin/bash
 +template homedir = /home/%u
 +
 +...
 +</​file>​
 +On vérifie avec testparm la configuration du fichier smb.conf puis on redémarre les services smbd et winbind.
 +<​code>​
 +#testparm
 +#service smbd restart
 +#service winbind restart
 +</​code>​
 +
 +Connexion au contrôleur de domaine
 +<​code>​
 +#net ads join -U administrateur
 +</​code>​
 +
 +
 +Dans le fichier smb.conf, vous pouvez utiliser l'​option write list = @nom_du_groupe_AD dans vos partages
 +<​file>​
 +[Applications]
 +comment = Applications
 +path = /​bureautique/​applications
 +write list = @GG_admins
 +read only = no
 +</​file>​
 +
 +Si vous devez redémarrer le service smbd, pensez à redémarrer le service winbind sinon, l'​authentification ne fonctionnera pas.
 FIXME Appel à contribution FIXME Appel à contribution
  
-=====Liens=====+===== Version Protocole ===== 
 +Certains serveurs Windows utilisaient smb v1 qui comporte des failles de sécurité et il est donc vivement conseillé de désactiver cette version du protocole SMB. Cela peut entraîner des soucis de connexion pour les utilisateurs ubuntu.\\ 
 +La version, //​vers=2.1//,​ peut-être précisée lors du montage: 
 +<​code>​[login@machine ~]$ id login 
 +uid=XXXXX(login) gid=YYYYY(groupe) 
 + 
 +[login@machine ~]$ mkdir /​media/​PARTAGE 
 +[login@machine ~]$ sudo mount -v -t cifs //​@IP_SERVEUR/​PARTAGE/​ /​media/​PARTAGE/​ -o user="​login",​dom="​TON-DOMAINE.FR",​vers=2.1,​uid=XXXXX,​gid=YYYYY 
 +</​code>​ 
 + 
 +mais il est possible de spécifier la version min/max dans le fichier de conf((https://​askubuntu.com/​questions/​919967/​how-to-tell-gigolo-gvfs-to-use-smbv2-for-windows-shares)):​ 
 +<​file>​ 
 +server min protocol = SMB2 
 +client min protocol = SMB2 
 +</​file>​ 
 +<​note>​Le protocole SMB v1 sera désactivée par défaut à partir de Samba 4.11 [[https://​wiki.samba.org/​index.php/​Samba_4.11_Features_added/​changed|(paragraphe 7.2.2 du wiki)]]</​note>​ 
 +===== Liens =====
  
   * [[samba|Page principale concernant Samba]].   * [[samba|Page principale concernant Samba]].
-  * FIXME+  * [[https://​www.samba.org/​samba/​docs/​man/​manpages-3/​smb.conf.5.html|page détaillant les options du fichier smb.conf sur samba.org]] (en anglais)
  
 ---- ----
-//​Contributeurs principaux : [[utilisateurs:​MrWaloo]],​ ...//+//​Contributeurs principaux : [[utilisateurs:​MrWaloo]], ​[[utilisateurs:​bcag2]] ​...//
 ---- ----
  • samba_smb.conf.1283260425.txt.gz
  • Dernière modification: Le 18/04/2011, 14:41
  • (modification externe)