SAMBA : Configuration de A à Z
Grâce à Samba, vous allez pouvoir partager sur le réseau local les répertoires que vous désirez sur le serveur.
Ce partage pourra se faire entre les postes clients Windows/Linux/Mac et le serveur, il vous suffira de créer l’utilisateur sur le serveur et de le déclarer comme un utilisateur Samba.
Commencez par vérifier que vous avez la dernière version à jour de Samba, le plus simple étant de le réinstaller, si vous avez la dernière version, il ne se passera rien :
apt-get install samba
Une fois terminé l’installation/mise à jour, la configuration va pouvoir commencer.
SAMBA et les utilisateurs UNIX
De base, les utilisateurs UNIX ne sont pas déclarés pour SAMBA. Pour remédier à cela, il suffit de les déclarer dans SAMBA :
smbpasswd -a nom_utilisateur
Le système vous demandera alors le mot de passe de l’utilisateur (à saisir deux fois pour vérification).
Pour plus d’information un petit man smbpasswd
vous donnera satisfaction.
CAS PARTICULIER : L’utilisateur root et Ubuntu
Dans le cas ou vous travailleriez sur Ubuntu, vous risquez de rencontrer certaines difficultés pour l’utilisateurs root ; en effet, le compte root n’est pas activé par défaut sous Ubuntu et si vous souhaitez faire plus qu’un partage simple avec SAMBA, vous devrez alors l’activer :
sudo passwd root
Saisissez deux fois le mot de passe.
Ensuite, il faudra le déclarer dans SAMBA :
sudo smbpasswd -a root
Configuration de SAMBA en partage simple
Vous trouverez ici un fichier d’exemple de configuration.
La première étape sera d’éditer le fichier de configuration pour le modifier à votre convenance.
nano /etc/samba/smb.conf
Ajouter la ligne « interfaces yyy.yyy.yyy.0/24 eth1
» (à adapter à votre configuration).
Dans notre exemple, nous ne créerons pas plusieurs utilisateurs sur le serveur, seul un utilisateur sera créé pour le partage.
Nous placerons donc la ligne « security = share
».
Pour chaque partage que vous voudrez créer, il faudra insérez les lignes suivantes :
[nom du partage] comment = ce que vous voulez path = chemin du partage guest ok = Yes read only = no #mettez à Yes si vous voulez partager en lecture seule force user = login force group = group du login
Une fois les modifications effectuées, relancez samba :
service smbd restart
Configuration en Contrôleur de Domaine (PDC)
Un domaine permet de réaliser certains objectifs de gestion de réseau, tels que la structuration d’un réseau, la connexion utilisateur par authentification, la délimitation de la sécurité, l’application d’une stratégie de groupe et la réplication d’informations.
Une fois mis en place, vous pourrez également profiter des avantages tels que :
– Mise en place de script de connexion automatique des partages réseaux à la connexion utilisateur,
– Gestion des droits utilisateurs depuis Windows (en théorie car difficile depuis Windows 7),
– Utilisation des profils itinérants avec synchronisation d’une copie en local (par exemple, après une réinstallation complète du poste de travail, vous pourrez récupérer votre espace de travail aisément puisqu’il est stocké sur le serveur et synchronisé sur le poste de travail),
– D’autres avantages existent, une recherche sur internet vous permettra de comprendre le profit que vous pouvez tirer de la mise en place d’un PDC sur votre réseau.
La mise en place d’un contrôleur de domaine est plus compliqué que pour le partage simple, plusieurs étapes sont nécessaires pour son bon fonctionnement.
Pour gagner du temps, vous trouverez ici un exemple de configuration.
Utilisateurs et Groupes Samba
Dans un Domaine NT, on peut retrouver une notion de groupe et d’utilisateurs très proche de ce que nous connaissons sous Debian (avec uid/gid). Les groupes systèmes du Domaines possèdent un code identifiant fixe et connu, nous allons donc mettre en place des groupes équivalent sur le serveur, avec le même gid.
Le groupe Administrateur du Domaine (ID 512) :
addgroup domainadmin –gid 512
Le groupe Utilisateurs du Domaine (ID 513) :
addgroup domainuser –gid 513
Le groupe Machines du Domaine (ID 515) :
addgroup machines –gid 515
Le gid 514 n’est pas utilisé ici, il sera affecté aux invités du Domaine (utilisateur ne faisant pas partie du Domaine)
Nous allons maintenant faire correspondre les groupe que nous venons de créer avec les groupes pour le domaine sous Samba/Windows :
net groupmap add ntgroup=Domain\ Admins unixgroup=domainadmin rid=512 type=d net groupmap add ntgroup=Domain\ Users unixgroup=users rid=513 type=d net groupmap add ntgroup=Domain\ Guests unixgroup=nogroup rid=514 type=d net groupmap add ntgroup=Domain\ Computers unixgroup=machines rid=515 type=d
IMPORTANT : Le caractére « \ » est à utiliser avant un espace pour que ce dernier ne soit pas reconnu comme un caractére d’échappement.
Pour conserver l’intégrité de Windows, il est préférable d’assigner ces valeurs aux groupes créés pour le domaine ; par la suite, il ne sera plus nécessaire de spécifier de valeurs pour le groupe utilisateur, exemple :
net groupmap add ntgroup=”Nom du Groupe” unixgroup=GroupUnix type=d
Si vous souhaitez ajouter un utilisateur à un groupe du domaine, il vous suffira de saisir la commande suivante :
adduser nom_utilisateur nom_du_groupe
Dossier « système »
Il vous faudra créer 2 répertoires qui devront être partagés, l’un en lecture seule et l’autre en lecture écriture. Le premier de ces répertoires servira à stocker le(s) script(s) de démarrage des utilisateurs (le script peut être commun à tous les groupes ou personnalisés par groupe/utilisateur)
mkdir /var/samba/netlogon chmod 775 /var/samba/netlogon
Le second répertoires servira à stocker le profil utilisateur : Bureau, Documents, etc…
mkdir /var/samba/profiles chmod 777 /var/samba/profiles
Astuce : Vous pouvez utiliser LVM pour créer le repertoire de profile, cela vous permettra de gérer l’espace réservé sans pour autant saturer la partition racine.
- Modification du Fichier de configuration SAMBA
Commencez par faire une sauvegarde de votre fichier de configuration de samba (au cas où) :
cp /etc/samba/smb.conf /etc/samba/smb.conf.bak
Éditez maintenant votre fichier de configuration et trouver puis modifiez les lignes suivantes (dans la section [global]) :
Workgroup = nomdudomaine Netbios name = nomdevotreserveur security = user unix password sync = yes domain logons = yes max protocol = NT1 add user script = /usr/sbin/useradd -d /dev/null -c 'Samba User Account' -s /dev/null %u add user to group script = /usr/sbin/useradd -d /dev/null -c 'Samba User Account' -s /dev/null -g %g %u add group script = /usr/sbin/groupadd %g delete user script = /usr/sbin/userdel %u delete user from group script = /usr/sbin/userdel %u %g delete group script = /usr/sbin/groupdel %g add machine script = /usr/sbin/useradd -g machines -c 'Samba Machine Account' -d /dev/null -s /bin/false %u domain master = yes os level = 65 server signing = auto server schannel = Auto logon drive = H: logon home = \\%N\%U logon script = netlogon.bat logon path = \\%N\profiles\%U
Cas de Windows 7 : A priori ces paramètres ne seraient peut être pas nécessaires mais vous pouvez les mettre tout de même car il n’empêche pas Samba de fonctionner en tant que contrôleur de domaine avec des clients Win7
client ntlmv2 auth = yes lanman auth = yes ntlm auth= yes
Déclaration des partages
- Partage du répertoire personnel
Ce partage est un partage « dynamique », c’est-à-dire qu’il est défini de manière à ce qu’il soit différent pour chaque utilisateur.
Par défaut, il est prévu pour pointer sur le répertoire « home » de l’utilisateur Unix.
Toujours dans le fichier de configuration smb.conf :
[homes] path = /home/%S comment = %H-%p Home directory for user:%u-%U service:%S groupe:%g-%G browseable = no guest ok = no writable = yes printable = no nt acl support = yes inherit permissions = yes inherit acls = yes create mode = 0660 hide unreadable = yes create mask = 777 directory mask = 777 veto files = lost+found valid users = %S preexec = mkdir /home/%S
Les paramètres « veto files
» et « hide unreadable
» permettent de ne pas faire apparaître certains fichiers et/ou répertoires.
« preexec
» permet de créer le répertoire correspondant au path avant que le partage ne soit créé (juste par précautions, surtout utile si vous changer le répertoire path par défaut).
Les paramètres « nt acl support
« , « inherit permissions
» et « inherit acls
» sont utilisés pour la gestion des droits d’accès du partage.
- Partage des dossier systèmes
Ces partages sont utilisés soit pour la connexion au domaine, soit pour le serveur d’impression.
Le partage « netlogon
» contient le(s) script(s) utilisé(s) lors de la connexion au domaine (voir plus loin)
[netlogon] comment = Network Logon Service path = /var/lib/samba/netlogon guest ok = yes write list = @"Domain Admins"
Le partage “profiles” permettra de stocker les informations du profil utilisateur.
[profiles] comment = Users profiles path = /var/lib/samba/profiles read only = no profile acls = yes browseable = no valid users = @"Domain Users"
Astuce : Si vous souhaitez que vos utilisateurs soient en profil itinérant (profil stockés sur le serveur et synchronisés a l’ouverture/fermeture de session quel que soit le poste de travail utilisé), vous pouvez créer un volume logique pour ne pas saturer la partition root. Il faut compter une moyenne de 500Mo max par utilisateur pour un profil normal, sinon le temps de chargement/synchronisation risque d’être très long.
Les partages suivants concernent la partie serveur d’impression.
[printers] comment = All Printers browseable = yes path = /var/spool/samba printable = yes guest ok = no read only = yes create mask = 0700 use client driver = yes [print$] comment = Printer Drivers path = /var/lib/samba/printers browseable = yes read only = yes guest ok = no write list = @"Domain Admins" root inherit permissions = yes
- Partages Utilisateurs
Pour tous les partages que vous souhaitez créer sur votre domaine, vous devrez insérez une section contenant les informations suivantes :
[NomduPartage] comment = Descriptif du Partage path = /CheminduPartage writable = yes printable = no nt acl support = yes inherit permissions = yes inherit acls = yes create mode = 0660 hide unreadable = yes veto files = lost+found
Fichier de démarrage netlogon.bat
Le fichier de démarrage netlogon.bat est exécuté par Windows lors du démarrage de la session.
Ce fichier va vous permettre de déclarer les actions telles que :
– Mise à l’heure de l’ordinateur,
– Mise à disposition des partages réseau sous forme de lecteur réseau,
Ce fichier doit être mis à disposition dans le partage \\nomduserveur\netlogon.
Par le biais de ce fichier, il est également possible de faire appel à d’autres fichiers de commande correspondant aux utilisateurs du domaines, seul inconvénient, vous devrez créer un fichier par utilisateur pour lesquels vous souhaitez attribuer un traitement de faveur.
Fichier simple, exemple :
@echo off => n’affichera pas les commandes NET TIME \\nomduserveur /SET /YES => synchronisation de l’heure du pc (doit être autorise dans les polices de groupes NET USE J: \\nomduserveur\partage =>monte le partage en J :
Vous pouvez mettre autant de partage que vous désirez.
Fichier avec appels de script spécifique de groupe/utilisateurs, exemple :
@echo off => n’affichera pas les commandes NET TIME \\nomduserveur /SET /YES => synchronisattion de l’heure du pc (doit être autorise dans les polices de groupes NET USE J: \\nomduserveur\partage =>monte le partage en J : call \\nomduserveur\netlogon\%username%.bat => appelle le fichier de commande portant le nom de l’utilisateur
Dans cet exemple, le script supplémentaires devra porter le nom de l’utilisateur, c’est-à-dire que si l’utilisateur s’appelle « julien », vous devrez créer un script nommé « julien.bat » dans le répertoire netlogon.
A noter : %username% est la variable Windows contenant le nom de l’utilisateur.
Vous pourrez trouver ici un exemple de fichier netlogon.bat.
Redémarrage de Samba
Il ne vous reste plus qu’a redémarrer Samba et de vous connecter depuis un poste Windows pour passer à la prochaine étape.
service samba restart
Pour Ubuntu :
sudo service smbd stop ;sudo service nmbd stop;sudo service smbd start;sudo service nmbd start
- Partage de fichier entre Samba, Docker et SELinux – 29/11/2017
- Mise à jour vers Windows 10 : Pas assez de mémoire vive… – 24/08/2015
- Améliorer les performances RAID – 15/05/2015