TP associé au cours Samba
© Hervé Pierron Vialard
Tous droits réservés
M7 - Administration système serveurs
Table des matières
I - Sujet du TP 3
1. Mise en œuvre rapide d'un serveur SAMBA ... 3
2. Linux - Client de Windows ... 5
3. Partager un répertoire ... 7
4. Partager des périphériques ... 7
5. Partager un répertoire réservé à un groupe ... 8
6. Configurer Samba en tant que CPD (Contrôleur principal de domaine) ... 10
6.1. Activer le service PDC sur le serveur SAMBA ... 11
6.2. Paramétrer le client XP ... 12
6.3. Mise en œuvre de scripts de connexion ... 13
7. Stratégie de groupe ... 14
8. Installer des applicatifs réseaux ... 15
II - Annexes du TP 16
III - Améliorations possibles du TP 25
1. Mise en œuvre rapide d'un serveur SAMBA
Installer le serveur samba avec la commande aptitude install samba. Debconf vous pose la question suivante :
Nom de domaine ou de groupe de travail : WORKGROUP Vérifier son fonctionnement. Comment ?
Objectif
Il s'agit de constituer des groupes différents de façon à pouvoir expérimenter sur une machine serveur Linux/Samba et sur une machine cliente Windows. Pour éviter les conflits entre serveurs, on adoptera les notations suivantes :
ajoutez un nom netbios pour le serveur Samba : netbios name = votre nom nom du groupe de travail : workgroup = T2SI
Attention
Bien utiliser des noms différents d'un stagiaire à l'autre...
Conseil
Faites une sauvegarde du fichier de configuration d'origine /etc/samba/smb.conf en le copiant sous le nom /etc/samba/smb.conf.origine
A chaque modification du fichier de configuration, relancer le service avec service samba ou (et ne pas oublier de "rafraichir" le voisinage restart /etc/init.d/samba restart
réseau).
Configuration du serveur
Éditer le fichier /etc/smb.conf. Y porter les modifications pour avoir :
[global]
workgroup = T2SI
netbios name = votre nom security = user
hosts allow = 172.16. 127.
encrypt passwords = yes
Sujet du TP
I
Tester la syntaxe du fichier /etc/samba/smb.conf
Lancer l'utilitaire testparm pour vérifier la syntaxe du fichier /etc/samba/smb.conf et éventuellement déceler des fautes de saisie.
Créer un compte Linux nommé test par exemple.
root@debian:~# adduser test
Ajout de l'utilisateur « test » ...
Ajout du nouveau groupe « test » (1001) ...
Ajout du nouvel utilisateur « test » (1001) avec le groupe
« test » ...
Création du répertoire personnel « /home/test »...
Copie des fichiers depuis « /etc/skel »...
Entrez le nouveau mot de passe UNIX : T2SI <--- Non affiché
Retapez le nouveau mot de passe UNIX : T2SI <---- Non affiché
passwd : le mot de passe a été mis à jour avec succès Modification des informations relatives à l'utilisateur test
Entrez la nouvelle valeur ou « Entrée » pour conserver la valeur proposée
Nom complet []: Comtpe de test N° de bureau []:
Téléphone professionnel []:
Téléphone personnel []:
Autre []:
Cette information est-elle correcte ? [O/n]O
Fermer la session root, et se connecter avec le compte test. Vérifier le contenu du répertoire personnel.
login as: test
[email protected]'s password:
Linux debian 2.6.32-5-686 #1 SMP Sun May 6 04:01:19 UTC 2012 i686
The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.
Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
test@debian:~$ ls -la total 24
drwxr-xr-x 2 test test 4096 17 août 20:23 . drwxr-xr-x 4 root root 4096 17 août 20:06 ..
-rw--- 1 test test 29 17 août 20:23 .bash_history -rw-r--r-- 1 test test 220 17 août 20:06 .bash_logout -rw-r--r-- 1 test test 3184 17 août 20:06 .bashrc -rw-r--r-- 1 test test 675 17 août 20:06 .profile
Fermer la session test et se reconnecter à l'aide du compte root. Créer le compte Samba de test.
root@debian:~# smbpasswd -a test New SMB password:
Sur la station cliente (XP)
Créer un compte test avec le mot de passe T2SI. Se connecter avec ce compte.
Après redémarrage :
Pouvez-vous vous connecter au serveur ? Parcourez votre répertoire personnel Pouvez vous y déposer un fichier ?
Retourner dans smb.conf dans la section [homes] et permettre l'écriture : writable = yes
Redémarrer Samba. Et maintenant ?
Suivre les connexions Samba sur votre serveur
Pour suivre attentivement les connexions des utilisateurs au serveur Samba, examinez tous les journaux (des serveurs smbd et nmbd et des stations), situés à /var/log/samba/.
La commande smbstatus fournit en temps réel des informations sur l'activité du serveur Samba, et de ses connexions qu'ils ouvre aux clients. Observer au fur et à mesure du travail, le suivi des connexions des clients Windows, avec les indications du nom de l'utilisateur, de la machine cliente et de son numéro IP, la date et l'heure.
root@debian:~# smbstatus Samba version 3.5.6
PID Username Group Machine
--- 2132 test test xp (::ffff:192.168.1.91)
Service pid machine Connected at
--- test 2132 xp Fri Aug 17 20:32:17 2012
No locked files
2. Linux - Client de Windows
Il s'agit d'inverser les rôles. On montera sur le client Linux, un répertoire partagé sous Windows.
Installer la partie client
aptitude install smbclient smbfs
Partager un dossier sous XP
Se connecter avec un compte administrateur.
Créer un dossier Dossier_partagé sur votre disque de données.
Créer dans ce dossier un répertoire travail. Dans ce dossier créer un fichier texte nommé qui contient la chaîne suivante : "Bienvenue - T2SI".
T2SI.txt
Partager le dossier Dossier_partagé avec comme nom de partage Partage_XP. Dans les
, mettre à .
autorisations de partage Contrôle total tout le monde
La commande smbmount permet de monter des répertoires distants d'une machine Windows, sur l'arborescence Linux, et ainsi d'accéder aux fichiers. Elle a été remplacée avantageusement par la commande mount.cifs.
• Pour monter la ressource //PCy/C sur le répertoire /mnt/disk du système de fichiers : On parcourt ensuite le répertoire /mnt/disk comme on le ferait sur un dossier local.
Supposons que C:\tmp soit un sous-répertoire du disque C: du serveur WorkGroup PCy C: est partagé en lecture seule sous le nom de partage C
C:\tmp est partagé en lecture/écriture sous le nom de partage C_tmp Monter les ressources :
smbmount //PC1/C /mnt/disk
smbmount //PC1/C_tmp /mnt/disk_tmp Tester :
Transférer des fichiers dans C:\tmp, en copiant des fichiers dans /mnt/disk_tmp
• Pour démonter la ressource Windows, utiliser subumount point-montage : smbumount /mnt/disk
root@debian:/# mount.cifs //XP/Partage_XP /mnt/XP -o user=test
Password: T2SI <--- non affiché
On parcourt ensuite le répertoire /mnt/XP comme on le ferait sur un dossier local. Parcourir le dossier partagé en utilisant la commande tree (l'installer le cas échéant - aptitude
).
install tree
root@debian:/# tree /mnt/XP /mnt/XP
travail T2SI.txt
1 directory, 1 file root@debian:/#
Conseil
S'il y a blocage, terminer la commande par Ctrl-C et se demander : Le client Samba connaît-il la machine nommée XP ?
Il peut être nécessaire que le nom de l'hôte (ici XP) ait été déclaré dans /etc/hosts
Il suffit de temps en temps que l'explorateur de réseau ait découvert la machine XP
On peut utiliser son adresse IP si on ne souhaite pas faire de modifications sur la machine serveur...
La ressource Partage_XP est-elle déclarée partagée sur le serveur Windows Vérifier les autorisations de partage sur le dossier partagé
Le client Samba respecte le type de partage Windows en lecture seule ou lecture/écriture. La sécurité Windows donne-t-elle un accès au dossier à l'utilisateur qui se connecte sur le partage.
3. Partager un répertoire
Objectifs
Il s'agit de paramétrer les partages de système de fichiers périphériques sur le serveur. Vérifier la visibilité et l'accessibilité aux partages pour les utilisateurs autorisés, le respect des restrictions en écriture ...
Pour l'écriture des sections correspondantes dans /etc/smb.conf, se reporter au cours.
Paramétrer ce partage sur le serveur
Paramétrer ce partage sur le serveur.
[logiciel]
comment = Installation de logiciels path = /home/samba/logiciel
guest ok = no browseable = yes create mask = 0600 directory mask = 0700 write list = root admin
Ce partage sera utilisé pour le déploiement de logiciels...
4. Partager des périphériques
Objectifs
Il s'agit de paramétrer les partages de système de fichiers périphériques sur le serveur. Vérifier la visibilité et l'accessibilité aux partages pour les utilisateurs autorisés, le respect des restrictions en écriture ...
Pour l'écriture des sections correspondantes dans /etc/smb.conf, se reporter au cours.
Partager le lecteur de CD-ROM
Paramétrer ce partage sur le serveur.
[cdrom]
# chemin d'accès au point de montage du CDROM path = /mnt/cdrom
# accessible à en lecture public = yes
# l'écriture sera forcément interdite writeable = no
Accéder à la ressource cdrom partagée. Que faut-il préalablement effectuer sur le serveur ? Si on dispose d'un CD de logiciels Windows, procéder à une installation pour tester l'utilisation du partage.
Complément
En cas d'absence de CD-ROM, il est possible de partager un dossier sur le serveur, d'y insérer un programme d'installation et de tester le nouveau partage en lançant une le fichier d'installation.
5. Partager un répertoire réservé à un groupe
Il s'agit de mettre en oeuvre le partage [stagiaires]. Voici un plan de travail :
Créer le groupe stagiaires. Y placer quelques comptes utilisateurs (les créer le cas échéant).
Créer le répertoire partagé, par exemple /home/samba/stagiaires
Accorder les droits de propriété de groupe de ce répertoire au groupe stagiaires. Comment ? Et les bonnes permissions : 1770 (pourquoi ?)
addgroup stagiaire
adduser stage1 (passe : T2SI) usermod -G stagiaire stage1 adduser stage2 (passe : T2SI) usermod -G stagiaire stage2 mkdir -p /home/samba/stagaire
chown -R root:stagiaire /home/samba/stagiaire smbpasswd -a stage1
New SMB password: T2SI
Retype new SMB password: T2SI Added user stage1.
smbpasswd -a stage2 New SMB password: T2SI
Retype new SMB password: T2SI Added user stage2.
Vérifier la bonne création du groupe.
car /etc/group
root@debian:/# cat /etc/group root:x:0:
daemon:x:1:
bin:x:2:
sys:x:3:
adm:x:4:
tty:x:5:
disk:x:6:
...
stage1:x:1003:
stage2:x:1004:
stagiaire:x:1005:stage2,stage1 <--- ICI
Vérifier la bonne création des utilisateurs. En lisant le listing ci-dessus on s'aperçoit que le groupe stagiaire (gid=1005) contient les utilisateurs stage1 et stage2.
root@debian:~# cat /etc/passwd root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/bin/sh bin:x:2:2:bin:/bin:/bin/sh
sys:x:3:3:sys:/dev:/bin/sh ...
t2si:x:1000:1000:utilisateur T2SI,,,:/home/t2si:/bin/bash messagebus:x:104:106::/var/run/dbus:/bin/false
test:x:1001:1001:Comtpe de test,,,:/home/test:/bin/bash stage1:x:1002:1003:,,,:/home/stage1:/bin/bash <--- ICI stage2:x:1003:1004:,,,:/home/stage2:/bin/bash <--- ICI
Vérifier la création des dossiers.
root@debian:/# tree /home /home
samba
stagiaire stage1
stage2 t2si test
ainsi que les permissions :
root@debian:~# ls -la /home/samba total 12
drwxr-xr-x 3 root root 4096 17 août 21:25 . drwxr-xr-x 7 root root 4096 17 août 21:25 ..
drwxrwx--T 2 root root 4096 17 août 21:25 stagiaire
Créer la section du partage [stagiaires] avec les droits d'accès et d'écriture cohérents.
[stagiaire]
comment = Partage du groupe des stagiaires path = /home/samba/stagiaire
# liste des utilisateurs et des groupes autorisés valid users = @stagiaire
# on pourra y écrire (bien sûr ceux qui peuvent y accéder..)
writeable = yes
# permissions par défaut des fichiers et des rép.créés create mask = 0660
directory mask = 0770
# pour "forcer" la propriété de groupe : elle doit etre accordée au groupe
# des stagiaires (et non par défaut, au groupe primaire du créateur)
force group = stagiaire
Tester complètement sur la station, sous l'identité de plusieurs utilisateurs, faisant ou non partie du groupe. Conclusion : ce partage est-il satisfaisant ?
Oui : le partage stagiaire n'est inscriptible que par les membres du groupe.
Non : le partage est visible par TOUS les utilisateurs SAMBA
6. Configurer Samba en tant que CPD (Contrôleur principal de domaine)
Il s'agit de mettre en œuvre le paramétrage du serveur Samba qui lui permet de jouer le rôle d'un contrôleur de domaine Windows.
Définition
Un contrôleur principal de domaine (PDC) est un service chargé du contrôle de l'authentification des requêtes de connexion sur un réseau (comme d'habitude par nom de connexion (login) et mot de passe (password).
Samba peut assurer ce service partiellement en émulant les fonctionnalités d'un serveur Windows, ce qui permet une connexion beaucoup plus fiable. On peut également mettre en place des scripts de connexion (logon scripts).
6.1. Activer le service PDC sur le serveur SAMBA
2. Activer le service PDC pour votre domaineT2SI. Modifier ainsi la partie globale de smb.conf
[global]
...
# ce serveur est le controleur du domaine domain master =yes
# explorateur maitre de domaine local master =yes
# explorateur préféré de son groupe de travail preferred master =yes
# autoriser les scripts de connexion (logons) sur le domaine
domain logons = yes
# pour fixer le nom des scripts de connexion
# %U est le paramétre Netbios du nom de login logon script = %U.bat
# autre choix possible, pour permettre des scripts communs à un groupe
# logon script = script.bat
Création du partage netlogon
Ce partage est destiné à recevoir les logons. Il se situera dans le répertoire /home/saba/netlogon.
On prévoit qu'un utilisateur privilégié admin/admin sera créé pour gérer ces scripts. Ainsi le répertoire /home/netlogon/ sera accessible en lecture et en parcours pour tous mais seulement en écriture pour admin.
mkdir -p /home/samba/netlogon chmod777 /home/samba/netlogon
[netlogon]
comment = Service de connexion réseau
# répertoire où les scripts seront placés path = /home/samba/netlogon
# paramétrage pour une statégie de groupe path = /home/netlogon/%g
# ensuite ce partage sera rendu invisible browseable = no
# en lecture seule, sauf pour admin write list = admin
Attention
Seul l'utilisateur peut écrire dans netlogon. Encore faut-il qu'il aie une existence.
root@debian:~# adduser admin
Ajout de l'utilisateur « admin » ...
Ajout du nouveau groupe « admin » (1006) ...
Ajout du nouvel utilisateur « admin » (1004) avec le groupe « admin » ...
Création du répertoire personnel « /home/admin »...
Copie des fichiers depuis « /etc/skel »...
Entrez le nouveau mot de passe UNIX : T2SI Retapez le nouveau mot de passe UNIX : T2SI
Modification des informations relatives à l'utilisateur admin
Entrez la nouvelle valeur ou « Entrée » pour conserver la valeur proposée
Nom complet []:
N° de bureau []:
Téléphone professionnel []:
Téléphone personnel []:
Autre []:
Cette information est-elle correcte ? [O/n]
root@debian:~# smbpassd -a admin
-bash: smbpassd : commande introuvable root@debian:~# smbpasswd -a admin New SMB password:
Retype new SMB password:
Added user admin.
6.2. Paramétrer le client XP
Attention : Création du compte machine dans la base locale Linux/Samba
Avant de faire la jonction au domaine, il convient de créer le compte de machine.
On va créer un groupe de machines.
groupadd machines
Puis à chaque machine qu'on souhaite intégrer, (exemple : une machine appelée XP) il faut créer le compte Linux. Par convention les machines prennent le signe comme suffixe.$
useradd -g machines -d /dev/null -s /bin/false XP$
puis samba.
smbpasswd -a -m XP$
Addes user XP.
Jonction au domaine
Poste de travail / Clic droit /Propriétés Nom de ordinateur
Bouton Modifier Cocher Domaine
Ecrire le nom de domaine, ici T2SI OK
Renseigner le login (root) et mot de passe (T2SI) - C'est l'administrateur du serveur qui fait la jonction...
Et bien sûr ... redémarrer !
Résultats et tests
Vous constatez que la boite d'invite à la connexion est modifiée : le champ Domaine y est ajouté avec T2SI.
A chaque demande de connexion, nom et mot de passe valides sont exigés sur le contrôleur du domaine indiqué, sinon la connexion au réseau est refusée.
Se connecter sous le compte stage1.
Observations : bureau, voisinage réseau ?
6.3. Mise en œuvre de scripts de connexion
Samba accepte la mise en place de script de connexion Windows (c'est-à-dire les fichiers de commande .bat) liés à la connexion d'un utilisateur, et renvoie le fichier correspondant sur la station Windows, afin que celle-ci l'exécute.
Ce mécanisme permet donc d'adapter complétement et dynamiquement la configuration du poste client au profil de l'utilisateur (ou de son groupe).
Nous avons déjà créé le compte admin, ainsi que le dossier netlogon...
Écriture d'un script pour l'utilisateur stage1
Le but est d'automatiser certaines tâches comme la connexion de lecteurs réseaux....
Attention
Il s'agit d'un fichier "batch" qui va s'exécuter sur la station Windows juste après l'authentification. Il doit donc être écrit avec un éditeur de texte utilitaire Windows, du genre NotePad, sur la station, puis ensuite enregistré sur le serveur dans le dossier netlogon, c'est-à-dire dans /home/samba/netlogon/.
Connectez vous comme admin sur la station XP.
Écrivez un script nommé stage1.bat correspondant à des partages existants, que vous sauvegarderez dans votre répertoire personnel (/home/admin/).
Ensuite root sur le serveur le sauvegardera dans /home/samba/netlogon.
rem fichier /home/samba/netlogon/stage1.bat net use H: \\debian\homes /PERSISTENT:NO net use L: \\debian\logiciel /PERSISTENT:NO net use S: \\debian\stagiaire /PERSISTENT:NO cls
echo ***************************************
echo * Bienvenue sur le réseau Linux/Samba * echo ***************************************
pause
7. Stratégie de groupe
Il s'agit ici d'expérimenter une autre "stratégie" de connexion : à la connexion, le script ne sera plus personnel, le script qui s'exécutera et donc le paramétrage du client qui en résultera, seront fonctions de son groupe d'appartenance primaire.
Pour cela il suffit de paramétrer smb.conf de façon à ce que le script exécuté soit , où le variable netbios sera remplacée par le nom du
/home/samba/netlogon/%g/script.bat %g
groupe primaire de l'utilisateur. Finalement on aura besoin d'un seul script portant le même nom, script.bat, à placer dans des sous-répertoires de /home/samba/netlogon, qui doivent porter le nom des groupes.
3. Créer 3 groupes profs, élèves, admins avec quelques comptes les ayant comme groupe primaire :
groupadd profs
adduser prof1 -g profs passwd prof1
smbpasswd -a prof1
Créer les 3 sous-répertoires profs, élèves et admins dans /home/samba/netlogon/
cd /home/samba/netlogon mkdir profs eleves admins chmod 644 profs eleves admins
Créer 3 partages dans /home, portant les mêmes noms que les groupes auxquels ils doivent être réservés. Accorder les propriétés de groupe convenables.
cd /home
mkdir profs eleves admins chgrp profs profs
Écrire les fichiers script.bat pour chaque groupe.
8. Installer des applicatifs réseaux
root a créé un utilisateur admin T2SI/ chargé d'installer les applications sur le serveur, et de la gestion des scripts de connexion.
Appelez le partage [logiciels]. Il est situé dans /home/samba/logiciel. Donnez alors la propriété de /home/samba/logiciel à admin.
chgrp -R admin /home/samba/logiciel
chmod -R 775 chgrp -R /home/samba/logiciel
Paramétrer ce partage :
[logiciel]
comment = Installation de logiciels path = /home/samba/logiciel
guest ok = no browseable = yes create mask = 0600 directory mask = 0700 write list = root admin guest ok = yes
Installer winscp dans /home/samba/logiciel
Il s'agit ici d'installer winscp dans /home/samba/logiciel/winscp. admin crée sur la station le dossier winscp dans L:
il y copie le fichier auto décompactable à partir de l'emplacement d'origine il procède à l'installation dans L:\winscp
Il crée un raccourci sur le bureau de façon à ce que les paramètres personnels se trouvent dans le répertoire personnel H: de l'utilisateur
cible : L:\winscp\winscp.exe H:\winscp démarrer en L:\winscp
root crée le sous répertoire /etc/skel/winscp, pour que le dossier H:\winscp soit généré automatiquement à la création d'un nouvel utilisateur.
Petite liste des paramètres et des options les plus utilisées
Cette annexe donne un extrait de la liste des options de Samba.
Option Valeur par défaut
browsable = <yes/no> yes
Permet d'annoncer un partage dans la liste d'exploration.
comment = <texte> vide
Définit le commentaire à côté du partage dans le résultat fournit par net view ou dans une fenêtre de répertoires Windows.
[global] config file = chemin d'accès vide
Sélectionne un fichier de configuration Samba supplémentaire à utiliser à la place du fichier de configuration courant.
default case = <LOWER/UPPER> LOWER
Définit la casse des nouveaux noms de fichiers. LOWER signifie que la casse est mixte, UPPER la force en majuscules.
delete veto file = <no/yes> no
Autorise les demandes de suppression d'un répertoire contenant des fichiers ou sous-répertoires non visibles pour l'utilisateur à cause d'une option veto files. Si elle est égale à no, le répertoire ne sera pas supprimé et contiendra toujours des fichiers invisibles.
[global] dns proxy = <yes/no> yes
Si elle est égale à yes, alors que wins server = yes, recherche les noms d'hôtes dans le DNS quand ils sont introuvables à l'aide de WINS.
[global] domain master = <yes/no> no
Transforme l'ordinateur en collecteur de liste d'exploration principale pour l'ensemble du groupe de travail ou du domaine.
[global] encrypt passwords = <yes/no> no
Utilise le chiffrement des mots de passe Windows. Requiert un fichier smbpasswd sur le serveur Samba.
Sous debian squeeze, il s'agit de /var/lib/samba/passdb.tdb follow symlinks = <yes/no> yes
Si l'option est égale à yes, Samba suit les liens symboliques d'un ou de plusieurs partages de
Annexes du TP
II
Définit le nom du compte Unix sans privilèges utilisé pour des tâches comme l'impression ou l'accès à des partages ayant pour option guest ok.
guest ok = <yes/no> no
Si elle est égale à yes, aucun mot de passe n'est requis pour ce partage. Synonyme de public.
hide dot files = <yes/no> yes
Associe l'attribut "caché" de DOS/Windows aux fichiers cachés de Unix, c'est-à-dire commençant par un point.
hide files = <lite séparée par des / > vide
Liste des noms de fichiers ou de réperoires auxquels l'attribut "caché" de DOS doit être associé. Les caractères génériques ? et * ainsi que les varaibles sont autorisés.
hosts allow = <liste d'hôtes> vide
Synonyme de allow hosts. Dresse la liste des machines autorisées à accéder à un ou plusieurs partages. Si la liste est vide et que l'option hosts deny n'est pas définie, toutes les machines peuvent accéder aux partages.
hosts deny = <liste d'hôtes> vide
Synonyme de deny hosts. Dresse la liste des machines n'ayant pas le droit d'établir des connexions ou d'accéder à des partages.
include = <chemin absolu> vide
Inclut le fichier indiqué à l'endroit où son nom figure dans le fichier smb.conf. Cette fonction n'interprète pas les variables %u (utilisateur), %P (répertoire racine du partage courant) et %S (nom du partage courant), car elle ne sont pas encore définies au moment de la lecture du fichier.
invalid users= <liste d'utilisateurs> vide
Liste d'utilisateurs n'étant pas autorisés à accéder à un ou plusieurs partages.
[global] load printers = <yes/no> yes
Charge tous les noms d'imprimantes du fichier système des imprimantes dans la liste d'exploration. Reprend les options de configuration de la section [printers].
local master= <yes/no> yes
Postule à l'élection d'explorateur local principal. Voir domain master et os level. [global] logon home = <chemin d'accès
Windows>
\\%N\%U
Définit le répertoire personnel d'un utilisateur Windows. Autorise l'exécution de la commande net use
depuis l'invite système.
H: /HOME
[global] message command=</chemin d'accès absolu/commande>
vide
Commande du serveur à exécuter lors de la réception d'un message WinPopup émanant d'un client. Ajoutez le suffixe au nom de la commande pour qu'un accusé de réception soit émis&
netbios name = <nom d'hôte> nom DNS de l'hôte
Définit le nom NetBIOS identifiant un serveur SAmba, ou le nom principal si des alias NetBIOS existent.
[global] os level = <nombre> 20
Définit le poids d'un serveur lors de l'élection d'un explorateur principal. Utilisée conjointement avec les options domain master ou local master. voir annexe (élection explorateur principal)
[global] password server = <nom NetBIOS> vide
Liste des serverus SMB validant les mots de passe. Utilisé avec un serveur de mot de passe Windows (PDC ou BDC) et l'option security = server ou security = domain. Attention, un serveur de mot de passe Windows doit accepter les connexions venant d'un serveur Samba.
path = <chemin d'accès> variable
Définit le chemin d'accès au répertoire fourni par un partage de fichiers ou utilisé par un partage d'imprimantes. Dans le cas du partage [homes], désigne automatiquement le répertoire personnel
de l'utilisateur, sinon pointe par défaut sur /tmp. Accepte les varaibles %u (utilisateur) et %m (machine).
[global] preferred master = <yes/no> no
Si elle est positionnée à yes, Samba est explorateur préféré lors de l'élection de l'explorateur principal qu'il déclenche à son démarrage.
preserved case = <yes/no> no
Si elle est égale à yes, cette option conserve la casse des noms de fichiers envoyés par le client.
Dans le cas contraire, convertit les noms de fichiers dans la casse spécifiée par l'option .
default case
print ok = <yes/no> no
Synonyme de printable = yes.
printable = <yes/no> no
Définit un partage comme service d'impression. Requis pour toutes les imprimantes.
[global] printcap name = <chemin d'accès> /etc/printcap
Définit le chemain d'accès au fichier de définition des imprimantes sur le système Unix, et utilisé par le partage [printers].
printer = <nom> lp
Définit le nom d'imprimante Unix. Synonyme de printer name. printer driver = <nom du pilote de
l'imprimante>
vide
Définit la chaîne à envoyer à Windows lorsqu'il demande quel pilote employer pour préparer des fichiers à soumettre à un partage d'imprimante. Attention, la casse est différenciée dans cette option et le nom du pilote doit être exactement celui utilisé par Windows.
printing = <bsd,sysv,hpux,aix,qnx,plp,lprng> bsd
Redéfinition du style d'impression utilisé, en remplacement du style d'impression prédéfini à la
Si elle est égale à yes, le partage ne requiert pas de mot de passe. Synonyme de guest ok. read list = <liste délimitée par des virgules> vide
Liste d'utilisateurs ayant accès en lecture seule à un partage en lecture-écriture.
read only = <yes/no> no
Définit un partage en lecture seule. Antonyme de writable et de write ok.
revalidate = <yes/no> no
Si elle est égale à yes, les utilisateurs doivent entrer leur mot de passe à chaque accès au partage, même après une authentification réussie.
[global] security = <share, user, server, domain>
user
Définit la politique de sécurité des mots de passe. Si security = share, chaque service possède son propre mot de passe, partagé par tous les utilisateurs.
Si security = user, chaque utilisateur possède un compte et un mot de passe Unix.
Si security = server, un server se charge de l'authentification de l'utilisateur, qui possède ses propres compte et mot de passe.
Si security = domain, le processus d'authentification est de type domaine. Voir les options password server et encrypt passwords
[global] server string = <texte> %v
Définit le nom figurant à côté d'un serveur dans la liste d'exploration. Accepte les variables %v (numéro de version de Smaba) et %h (nom d'hôte).
[global] smb passwd ?le = <chemin> /var/lib/samba/pssdb.tdb
Redéfinit le chemin d'accès du fichier des mots de passe, fixé lors de la compilation, si .
encrypt passwords = yes
short preserve case= <yes/no> no
Si elle est égale à yes, conserve les noms de fichier au format 8.3 dans la casse utilisée par le client. Dans le cas contraire, les noms 8.3 sont convertis vers la casse par défaut (option
).
default case
valid users = <liste d'utilisateurs> vide Liste des utilisateurs autorisés à se connecter à un partage.
veto files = <liste de noms de fichiers séparés par />
vide
Liste des fichiers que le client ne peut voir lors de l'exploration d'un répertoire. Voir aussi .
delete veto files
volume = <nom de partage> vide
Définit l'étiquette de volume d'un partage de disque ; utile pour les CD-ROM.
[global] wins proxy = <yes/no> no
Si elle est égale à yes, nmbd relaie les requêtes de résolution émanent de clients anciens utilisant des diffusions vers un serveur WINS. Le seveur WINS réside généralement sur un
Si elle est égale à yes, Samba fait office de serveur WINS. L'option wins server ne doit pas être définie si wins support = yes.
[global] workgroup= <nom> WORKGROUP
Définit le groupe de travail servi par Samba. Remplace la valeur définie lors de la compilation.
Un nom différent de WORKGROUP est vivement conseillé. Par convention, on utilise un nom écrit en majuscules.
writable = <yes/no> yes
Antonyme de read only et synonyme de write ok. write list = <liste délimitée par de virgules> vide
Liste d'utilisateurs ayant accès en lecture-écriture à un partage en lecture seule. Voir aussi .
read list
write ok = <yes/no> yes
Synonyme de writable
Extrait (non exhaustif) de la liste des options de Samba.
Poids des systèmes d'exploitation lors d'une élection
Système d'exploitation Valeur
Valeur maximale 255
Windows 7 21
Windows 2008 Server 36
Windows Vista 20
Windows 2003 Server 35
Windows XP 19
Windows 2000 Server 34
Windows 2000 Workstation 18
Windows NT 4 33
Windows NT 3.51 32
Windows NT 4 Workstation 17
Windows NT 3.51 Workstation 16
Windows 98, 98 ME 2
Windows 3.1, Windows 95 1
Poids des systèmes d'exploitation lors d'une élection
Variables de Samba
Variable Définition
Variables client
%a Architecture du client (Samba,
WinNT,Win95,...)
%I Adresse IP du client
%m Nom NetBIOS du client
%M Nom DNS du client
Variables utilisateur
%u Nom d'utilisateur Unix actuel
%U Nom d'utilisateur client demandé
%g Groupe principal de %u
%G Groupe principal de %U
%H Répertoire de base de %u
Variables de partage
%p Chemin d'accès du montage automiatique
associé au répertoire racine du partage (si différent de %P)
%P Répertoire racine du partage en cours
%S Nom du partage en cours
Variables serveur
%d ID de processus du serveur en cours
%h Nom d'hôte du serveur Samba
%L Nom NetBIOS du serveur Samba
%N Serveur de répertoire de base établi à partir de
la table d'automount
%v Version de Samba
Autres variables
%R Niveau de protocole SMB pris en compte dans
la négociation
%T Date et heure courantes
Variables de Samba
# Change this to the workgroup/NT-domain name your Samba server will part of
workgroup = T2SI netbios name = debian
# server string is the equivalent of the NT Description field
server string = %h server
# Windows Internet Name Serving Support Section:
# WINS Support - Tells the NMBD component of Samba to enable its WINS Server
# wins support = no
# WINS Server - Tells the NMBD components of Samba to be a WINS Client
# Note: Samba can be either a WINS Server, or a WINS Client, but NOT both
; wins server = w.x.y.z
# This will prevent nmbd to search for NetBIOS names through DNS.
dns proxy = no
# What naming service and in what order should we use to resolve host names
# to IP addresses
; name resolve order = lmhosts host wins bcast
#### Networking ####
# The specific set of interfaces / networks to bind to
# This can be either the interface name or an IP address/netmask;
# interface names are normally preferred
interfaces = 192.168.1.0/24 172.16.0.0/16 127.0.0.0/8 eth0
# Only bind to the named interfaces and/or networks; you must use the
# 'interfaces' option above to use this.
# It is recommended that you enable this feature if your Samba machine is
# not protected by a firewall or is a firewall itself.
However, this
# option cannot handle dynamic or non-broadcast interfaces correctly.
; bind interfaces only = yes
#### Debugging/Accounting ####
# This tells Samba to use a separate log file for each machine
# that connects
log file = /var/log/samba/log.%m
# Cap the size of the individual log files (in KiB).
max log size = 1000
# If you want Samba to only log through syslog then set the following
# parameter to 'yes'.
# syslog only = no
# We want Samba to log a minimum amount of information to syslog. Everything
# should go to /var/log/samba/log.{smbd,nmbd} instead. If you want to log
# through syslog you should set the following parameter to something higher.
syslog = 0
# Do something sensible when Samba crashes: mail the admin a backtrace
panic action = /usr/share/samba/panic-action %d
####### Authentication #######
# "security = user" is always a good idea. This will
# in the samba-doc package for details.
# security = user
# You may wish to use password encryption. See the section on
# 'encrypt passwords' in the smb.conf(5) manpage before enabling.
encrypt passwords = true
# If you are using encrypted passwords, Samba will need to know what
# password database type you are using.
passdb backend = tdbsam obey pam restrictions = yes
# This boolean parameter controls whether Samba attempts to sync the Unix
# password with the SMB password when the encrypted SMB password in the
# passdb is changed.
unix password sync = yes
# For Unix password sync to work on a Debian GNU/Linux system, the following
# parameters must be set (thanks to Ian Kahan
<<[email protected]> for
# sending the correct chat script for the passwd program in Debian Sarge).
passwd program = /usr/bin/passwd %u
passwd chat = *Enter\snew\s*\spassword:* %n\n
*Retype\snew\s*\spassword:* %n\n
*password\supdated\ssuccessfully* .
# This boolean controls whether PAM will be used for password changes
# when requested by an SMB client instead of the program listed in
# 'passwd program'. The default is 'no'.
pam password change = yes
########## Domains ###########
# Is this machine able to authenticate users. Both PDC and BDC
# must have this setting enabled. If you are the BDC you must
# change the 'domain master' setting to no
#
domain master = yes local master = yes preferred master = yes domain logons = yes
#
# The following setting only takes effect if 'domain logons' is set
# It specifies the script to run during logon. The script must be stored
# in the [netlogon] share
# NOTE: Must be store in 'DOS' file format convention logon script = \\%L\netlogon\stage1.bat
########## Printing ##########
# If you want to automatically load your printer list rather
# than setting them up individually then you'll need this
# load printers = yes
; printcap name = cups
#======================= Share Definitions
=======================
[homes]
comment = Home Directories browseable = no
read only = no writeable = yes create mask = 0700 directory mask = 0700 valid users = %S [printers]
comment = All Printers browseable = no
path = /var/spool/samba printable = yes
guest ok = no read only = yes create mask = 0700
# Windows clients look for this share name as a source of downloadable
# printer drivers [print$]
comment = Printer Drivers path = /var/lib/samba/printers browseable = yes
read only = yes guest ok = no [stagiaire]
comment = Partage du groupe des stagiaires path = /home/samba/stagiaire
# liste des utilisateurs et des groupes autorisés valid users = @stagiaire
# on pourra y écrire (bien sûr ceux qui peuvent y accéder..)
writeable = yes
# permissions par défaut des fichiers et des rép.créés create mask = 0660
directory mask = 0770
# pour "forcer" la propriété de groupe : elle doit etre accordée au groupe
# des stagiaires (et non par défaut, au groupe primaire du créateur)
force group = stagiaire [logiciel]
comment = Installation de logiciels path = /home/samba/logiciel
guest ok = no browseable = yes create mask = 0600 directory mask = 0700 write list = root admin guest ok = yes
[netlogon]
comment = Service de connexion réseau
# répertoire où les scripts seront placés path = /home/samba/netlogon
# paramétrage pour une statégie de groupe path = /home/netlogon/%g
browseable = yes
# en lecture seule, sauf pour admin write list = admin root
Rendre les dossiers utilisateurs invisibles
Sous Windows, pour cacher un répertoire partagé, il suffit de lui accoler le signe ' '.$
Mise en place d'un partage caché
Ainsi, il ne sera plus visible sur le réseau. On pourra y accéder par la commande (entre autres) :
Améliorations
possibles du TP III
Résultat de la vue d'un partage caché
Intégrer un serveur Samba à un domaine Active Directory
Ce serveur deviendrait un serveur membre. Il faut pour cela, utiliser : le protocole Kerberos,
le paquet winbind
Gestion des profils errants, obligatoires, locaux avec Samba
Il s'agit de créer un partage [profiles] en dehors du dossier personnel de l'utilisateur et lui donner les droits appropriés.
Gestion de l'encodage Windows (ANSI, DOS) et Linux (UTF-8)
Les encodages entre les deux systèmes d'exploitation sont différents. Ainsi, la gestion des caractères accentués est prolématique...
Installation d'un programme complexe par déploiement
Il est possible de déployer OpenOffice pour l'ensemble des utilisateurs par un script d'administration.
Jusqu'à la version 9.2, il existait une option -net qui permettait ce déploiement.
Elle n'existe plus. Il faut donc procéder "à la main" avec des fichiers de réponses, pour anticiper la validation des questions posées pendant l'installation.
Attention
Notez que l'installation du JRE Java (runtime client Java, ou machine Java) est requis au préalable.