Configuration de Samba
Ce qu’il faut savoir, c’est qu’avec Samba, on peut faire un milliard de choses, et qu’il y a déjà une configuration de base.
Histoire de simplifier et sécuriser un minimum Samba, nous allons supprimer la config de base et ne mettre que les partages qui nous intéressent.
pour cela, on va renommer le fichier existant et en créer un nouveau vide :
sudo mv /etc/samba/smb.conf /etc/samba/smb.conf.save
sudo touch /etc/samba/smb.conf
On ouvre le fichier vide
sudo nano /etc/samba/smb.conf
Et on colle tout ça dedans
#======================= Global Settings =======================
[global]
## Browsing/Identification ###
workgroup = Workgroup
server string = openHAB (%h)
netbios name = openhab-demo
dns proxy = no
### Access rights ###
create mask = 0664
directory mask = 0755
#### 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
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
[cedcox]
path = /home/cedcox
comment = home cedcox
read only = no
valid users = cedcox
[openHAB2-userdata]
comment=Userdata openHAB
path=/var/lib/openhab2
browseable=Yes
writeable=Yes
only guest=no
public=no
valid users = cedcox openhab
force user = openhab
force group = openhab
create mask=0644
directory mask=0755
[openHAB2-conf]
comment=Configuration openHAB
path=/etc/openhab2
browseable=Yes
writeable=Yes
only guest=no
public=no
valid users = cedcox openhab
force user = openhab
force group = openhab
create mask=0644
directory mask=0755
[openHAB2-logs]
comment=Logs openHAB
path=/var/log/openhab2
browseable=Yes
writeable=Yes
only guest=no
public=no
valid users = cedcox openhab
force user = openhab
force group = openhab
create mask=0644
directory mask=0755
Un petit CTRL+O pour sauvegarder mais on ne quitte pas maintenant car, ce fichier doit être modifié pour correspondre à ta config. Il te faudra changer “cedcox” qui est mon login de test par ton login à toi, partout dans le fichier de config. Sinon, ça va faire des chocapics 🙂
Une fois ça fait, on peut faire CTRL+O pour enregistrer et CTRL+X pour quitter.
Et on oublie pas de créer et synchroniser notre utilisateur samba :
sudo smbpasswd -a cedcox
Il te faudra alors entrer à 2 reprises un mot de passe pour l’utilisateur. Alors tu peux mettre le même mot de passe (conseillé) que celui pour te connecter en ssh, mais ils ne seront pas synchronisés. Ça signifie que si tu en changes un, ça ne change pas l’autre. Il est possible de synchroniser les 2, mais ce n’est pas le sujet de ce tuto donc, on fait l’impasse 🙂
New SMB password:
Retype new SMB password:
Added user cedcox.
cedcox@openhab-demo:~$
Et pour être sûr que tout fonctionne correctement, on redémarre le service Samba (smbd) :
sudo systemctl restart smbd
Il est possible de vérifier le fichier de configuration en exécutant cette commande :
sudo testparm /etc/samba/smb.conf
Qui dans mon cas renvoie ce résultat :
cedcox@openhab-demo:~$ sudo testparm /etc/samba/smb.conf
rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384)
WARNING: The "syslog" option is deprecated
Registered MSG_REQ_POOL_USAGE
Registered MSG_REQ_DMALLOC_MARK and LOG_CHANGED
Load smb config files from /etc/samba/smb.conf
rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384)
WARNING: The "syslog" option is deprecated
Processing section "[cedcox]"
Processing section "[openHAB2-userdata]"
Processing section "[openHAB2-conf]"
Processing section "[openHAB2-logs]"
Loaded services file OK.
Server role: ROLE_STANDALONE
Press enter to see a dump of your service definitions
On finira par taper “entrée” et le tour est joué.
Petit point particulier
Je voulais juste revenir sur le fichier de config et plus particulièrement ces lignes ci dessous que tu retrouves dans chacun des partages déclarés :
force user = openhab
force group = openhab
En fait, je précise que lorsqu’on se connecte à ce partage avec un utilisateur autorisé (dans mon cas cedcox), l’accès lecture/écriture ne se fera pas avec le compte linux cedcox, mais avec le compte linux openhab.
En effet, openHAB a son propre utilisateur pour faire tourner son service et seul cet utilisateur a les droits pour accéder à ces fichiers.
Et comme je n’aime pas créer un utilisateur samba pour openHAB, j’utilise le compte utilisateur existant 🙂
3 article d’affilée du fait pas semblant
😉