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 02/07/2017, 10:28]
82.236.148.9 [security = SHARE]
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é, car Samba est un service auquel se connectent des clients, il s'agit donc d'un serveur (au même titre qu' apache, par exemple), même si Samba tourne sur un PC domestique avec une version //​non-server//​ de n'​importe quelle distribution GNU/​Linux. +
-  - Cette page a été écrite par rapport à Samba 3 qui est utilisé par les versions d'​Ubuntu jusqu'​à Lucid (12.04). A partir de Trusty (14.04), c'est Samba 4 qui prend le relais avec de nombreuses différences et incompatibilités ! N'​hésitez pas à éditer le manuel pour vérifier si le paramètre a encore lieu d'​être : <​code>​man smb.conf</​code>​ +
-</​note>​+
  
 ===== Introduction ===== ===== Introduction =====
Ligne 20: Ligne 15:
   * ''​[homes]''​ est spécifique au partage du répertoire personnel d'un utilisateur (son répertoire $HOME) il apparaîtra dans la liste des partages avec le nom d'​utilisateur du client (s'il est identifié),​   * ''​[homes]''​ est spécifique au partage du répertoire personnel d'un utilisateur (son répertoire $HOME) il apparaîtra dans la liste des partages avec le nom d'​utilisateur du client (s'il est identifié),​
   * ''​[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**\\ ​ 
-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 : 
-<​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 10.04 [[lucid|( Lucid Lynx )]] et versions supérieures : ** 
-<​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 10.04 [[lucid|(Lucid Lynx )]] et versions supérieures : ** 
-<​code>​ 
-sudo service smbd reload 
-</​code>​ 
  
 ===== Généralités ===== ===== Généralités =====
  
 Le fichier **/​etc/​samba/​smb.conf** est construit de différentes sections dont la première est généralement : [global].\\ Le fichier **/​etc/​samba/​smb.conf** est construit de différentes sections dont la première est généralement : [global].\\
-Une section commence par une ligne contenant un mot entre crochets et finit 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>​
Ligne 57: Ligne 28:
 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 +  * **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 valeursséparez-les par une virgule.
-# ...et tous ceux qui le veulent… +
-# Celui-ci n'est pas pris en compte +
-;    paramètre invalidé = essai infructueux +
-# paramètre commenté en fin de ligne +
-    paramètre spécial = Yes # Ah oui, on peut commenter en fin de ligne ;-) mais uniquement certains paramètresévitez donc cette pratique</​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 78: 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 264: 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 278: 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 284: 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 306: Ligne 282:
  
 Ce paramètre peut avoir les valeurs suivantes : Ce paramètre peut avoir les valeurs suivantes :
-  * **[[#​security_share|SHARE]]** : Sécurité basée sur les mots de passes. 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_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 depuis une liste d'​utilisateurs (Base d'​utilisateurs Samba, base d'​annuaire LDAP, ...). Ce mode est celui par défaut si le champ security n'est pas renseigné.   * **[[#​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 Samba, base 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.
Ligne 313: 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.
- 
-===== security = SHARE ===== 
-<note important>​Obsolète avec Samba 4 ([[:​samba_smb.conf#​security_server|cf. note security = server]])\\ 
-Vous êtes prévenu.\\ 
-Il est fort probable que votre testparm ne passe pas à cause de cela. 
-</​note>​ 
- 
-Dans ce mode, donc pas de droits à gérer, juste les partages en accès libre. La seule restriction possible est la lecture seule. L'​authentification se fait par mot de passe. Ce mode permet aux postes sous Windows 9x et Me d'​accéder à un partage avec des identifiants différents. 
- 
-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 385: Ligne 332:
  
 Puis rentrer deux fois le mot de passe de cet utilisateur (ou le faire taper par l'​utilisateur) Puis rentrer deux fois le mot de passe de cet utilisateur (ou le faire taper par l'​utilisateur)
 +
 +Pour lister les utilisateurs samba:
 +
 +<​code>​ sudo pdbedit -L -v </​code>​
  
  
Ligne 391: Ligne 342:
 ==== Configuration ==== ==== Configuration ====
  
-<​file>​ 
-#​======================= Global Settings ======================= 
  
-[global]+## 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
  
-## Browsing/​Identification ​### +### Debugging ​### 
-workgroup ​Arcade +log file /​var/​log/​samba/​log.%m --> Emplacement du fichier log 
-server string = Samba server (%h) +max log size 1000 --> Taille maximum
-netbios name = Serveur +
-dns proxy no+
  
-#### Networking ​#### +#### Authentication ​#### 
-interfaces ​192.168.214.20 +security ​user --> Sécurité 
-bind interfaces only yes+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
  
-### Access rights ### 
-create mask = 0660 
-directory mask = 0770 
  
-#### Debugging/​Accounting ​#### +#### Reste #### 
-log file /​var/​log/​samba/​log.%m +Browseable=yes --> Visible par les clients 
-max log size 1000 +Writable=yes --> Droit d'​écriture
-syslog = 0 +
-panic action = /​usr/​share/​samba/​panic-action %d+
  
-####### Authentication ####### +#### Configuration d'un partage en lecture/​écriture pour certains utilisateurs ​#### 
-security ​user +path /​mnt/​raid/​screen --> Chemin du dossier partagé 
-# ATTENTION A BIEN REMPLACER ​"groupe_principal" ​par le nom du groupe dont vous faites partie +comment = Repertoire ​" ​Screen ​" ​--> Répertoire en lecture ​et écriture pour tous ceux qui y ont accès 
-# (si vous êtes l'​utilisateur principal, c'est également votre login) +read only non --> Restriction de lecture 
-et de rajouter les éventuels autres utilisateurs... +write list liste des utilisateurs ayant le droit de lire et d'​écrire séparés par des espaces
-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 = TCP_NODELAY IPTOS_LOWDELAY SO_RCVBUF=8192 SO_SNDBUF=8192 
-usershare allow guests = no 
-</​file>​ 
  
-=== Configuration d'un partage en lecture/​écriture pour certains utilisateurs === 
  
-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>​ 
-<​note>​Les utilisateurs de write list doivent être dans les valid users sinon ils n'ont pas d'​accès !</​note>​ 
 ==== Droits sur les répertoires partagés : à la maison ==== ==== Droits sur les répertoires partagés : à la maison ====
  
Ligne 465: 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 ====
  
-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. ​+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 : 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 :
Ligne 475: Ligne 391:
 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 : 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>​ <​code>​
-valid user = @sambausers ​                # seuls les utilisateurs du groupe sambausers peuvent se connecter au répertoire partagé+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 ..... 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. write list = utilisateur01 ​            #​........sauf pour utilisateur01 (qui est dans le groupe sambausers) qui pourra y écrire.
Ligne 488: 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) ​+Obsolète avec Samba 4((cf. la page sur [[https://​wiki.samba.org/​index.php/​Samba_4.0_Whitepaper]])) (version actuellement supportée)
  
 ===== security = ADS ===== ===== security = ADS =====
Ligne 574: Ligne 490:
 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]].
  • samba_smb.conf.1498984132.txt.gz
  • Dernière modification: Le 02/07/2017, 10:28
  • par 82.236.148.9