How would you add a share to smb.conf via a script?
Solution 1:
To fit with modern sysadmin best practices it would be good to add your configs as individual files in /etc/smb/smb.d
and then reference them with an include
. Sadly samba does not support wildcard include
s so you have to do add something like:
include = /etc/smb/includes.conf
in your smb.conf
and then generate the includes.conf
with something like:
ls /etc/smb/smb.d/* | sed -e 's/^/include = /' > /etc/smb/includes.conf
For a bit more context:
chicks@silver 23:57:23 smb !531 $ ls smb.d
a.conf c.conf e.conf
chicks@silver 23:57:29 smb !532 $ ls /etc/smb/smb.d/* | sed -e 's/^/include = /' > /etc/smb/includes.conf
chicks@silver 23:57:40 smb !533 $ cat includes.conf
include = /etc/smb/smb.d/a.conf
include = /etc/smb/smb.d/c.conf
include = /etc/smb/smb.d/e.conf
So now you can stick any additional samba configs into /etc/smb/smb.d
, regenerate includes.conf
and restart samba and life is good.