Mon nouveau Nas apprend la samba
Voici la suite de mes travaux sur mon petit serveur dédié au stockage. Après l’installation des partages Linux (NFS), je m’attaque maintenant aux partages windows. Même si je n’utilise pas windows pour mes activités informatiques, mise à part quelques jeux, je trouve utile pour un serveur d’être accessible depuis n’importe quel système notamment lorsque je veux échanger avec des invités qui sont sous windows, de plus cela faisait partie de mon cahier des charges.
De plus cet article me permet de mettre en place mon nouveau thème graphique pour 2015.
Les installations sous Debian se suivent et se ressemblent :
sudo apt-get install samba
Après cette formalité je passe directement à la configuration du serveur en lui-même. Tout se configure depuis le fichier /etc/samba/smb.conf. Voici la configuration détaillée que j’utilise :
#======================= Global Settings ======================= [global] #Spécifie le groupe de travail workgroup = WORKGROUP #Description du serveur server string = %h server #pas de proxy dns proxy = no #Niveau de précision des log plus d'infos <a target="_blank" href="http://oreilly.com/openbook/samba/book/ch09_01.html"%20target="_blank" data-mce-href="http://oreilly.com/openbook/samba/book/ch09_01.html" data-mce-href="http://oreilly.com/openbook/samba/book/ch09_01.html"%20target="_blank" data-mce-href="http://oreilly.com/openbook/samba/book/ch09_01.html">ici[->]</a> log level = 1 #pas de log d'évènement syslog = 0 #où enregistrer le fichier de logs log file = /var/log/samba/log.%m #taille maximale du fichier max log size = 1000 #mot de passes chiffrés encrypt passwords = true smb password file = /etc/smbpasswd #niveau de sécurité : seul les utilisateurs avec un compte peuvent se connecter security = user #Permet de mapper les autorisation Unix vers windows, tous les fichiers créés à partir #d'un poste windows auront les autorisations linux 777 create mask = 0777 #pareil que create mask mais pour les dossiers directory mask = 0777 #améliore les transferts de fichiers use sendfile = yes aio read size = 16384 aio write size = 16384 #utilisateurs sans mot de passe interdit null passwords = no #seul maître à bords local master = yes #pas de serveur de temps ni de support <a target="_blank" href="https://fr.wikipedia.org/wiki/Windows_Internet_Naming_Service" data-mce-href="https://fr.wikipedia.org/wiki/Windows_Internet_Naming_Service">wins</a> time server = no wins support = no
Ensuite pour chaque utilisateurs autorisés à accéder aux partages je créer un compte samba. Exemple avec l’utilisateur olivier.
sudo smbpasswd -a olivier New SMB password: Retype new SMB password: Added user olivier.
Concernant les utilisateurs de passages avec qui je souhaite échanger, je crée un compte unique dédié avec leur répertoire. Ce qui me permet de détecter d’éventuels fichiers corrompus grâce à clamav avant de les intégrer à mes dossiers courants. Et cela évite que certain se baladent tranquillement dans mes photos ou autre.
# Création du répertoire pour les invités sudo mkdir /media/disk27B/johndoe # création de l'utilisateur invité sudo adduser johndoe Ajout de l'utilisateur « johndoe » ... Ajout du nouveau groupe « johndoe » (1001) ... Ajout du nouvel utilisateur « johndoe » (1001) avec le groupe « johndoe  » ... Création du répertoire personnel « /home/johndoe »... Copie des fichiers depuis « /etc/skel »... Entrez le nouveau mot de passe UNIX : Retapez le nouveau mot de passe UNIX : passwd : le mot de passe a été mis à jour avec succès Modification des informations relatives à l'utilisateur johndoe Entrez la nouvelle valeur ou « Entrée » pour conserver la valeur proposée Nom complet []: John Doe N° de bureau []: Téléphone professionnel []: Téléphone personnel []: Autre []: Cette information est-elle correcte ? [O/n]o #création du compte samba sudo smbpasswd -a johndoe New SMB password: Retype new SMB password: Added user johndoe.
Le serveur maintenant opérationnel je passe à la création des partages samba, toujours dans le fichier /etc/samba/smb.conf. En exemple le répertoire photos :
#======================= Share Definitions ======================= [photos] path = /media/disk27B/photos/ #invités interdit guest ok = no #lecture seule non read only = no #dossier navigable browseable = yes #hérite des différentes acl inherit acls = yes inherit permissions = no ea support = no store dos attributes = no printable = no #lorsqu'un dossier ou un fichiers est crée il hérite des autorisations suivantes create mask = 0755 force create mode = 0644 directory mask = 0755 force directory mode = 0755 hide dot files = yes
Une fois tous les partages configurés, je m’occupe du dossier John Doe.
#=============== Share Definitions fo John Doe user======================= [johndoe] path = /media/disk27B/johndoe #invités interdit guest ok = yes #lecture seule non read only = no #dossier navigable browseable = yes #hérite des différentes acl inherit acls = yes inherit permissions = no ea support = no store dos attributes = no printable = no #lorsqu'un dossier ou un fichiers est crée il hérite des autorisations suivantes create mask = 0755 force create mode = 0644 directory mask = 0755 force directory mode = 0755 hide dot files = yes
Avec ce système mes utilisateurs courant ont accès aux dossiers partagés, sauf john doe qui a accès uniquement à son répertoire. Cette configuration est un premier jet, je l’ai réfléchi sur le “papier”. Je verrai à l’usage si l’utilisateur John Doe est utile ou s’il faut que j’adapte cette configuration.