In this post, we show how to setup a simple/small LAN samba server. The setup is done on an OpenBSD distribution.
First we start by installing the samba package. This is done by first defining which mirror we will use to download the package and it dependencies.
export PKG_PATH=http://openbsd.cs.fau.de/pub/OpenBSD/`uname -r`/packages/`uname -m`/ pkg_add -r samba-3.6.15p15
The commands above install samba and its dependencies. One of these dependencies is python 2.7. To make this version of python the default one, we need to create the following symbolic links:
ln -sf /usr/local/bin/python2.7 /usr/local/bin/python ln -sf /usr/local/bin/python2.7-2to3 /usr/local/bin/2to3 ln -sf /usr/local/bin/python2.7-config /usr/local/bin/python-config ln -sf /usr/local/bin/pydoc2.7 /usr/local/bin/pydoc
We have now installed the samba package. The next step is to configure it. We are going to configure two shared folders. The first is a public share accessible on read and write for everyone. The second is accessible only to members of pre-defined group.
The following commands create the directory, set up the permissions and configure the required group and user.
mkdir -p /pub chmod -R 777 /pub mkdir -p /smb chmod -R 777 /smb groupadd staff useradd samba usermod -G staff samba smbpasswd -a samba
The next step is changing the samba configuration file to reflect the setup we described above. The file
/etc/samba/smb.conf should looks like the following:
[global] workgroup = WORKGROUP server string = Samba Server security = user log file = /var/log/samba/smbd.%m max log size = 50 dns proxy = no allow insecure wide links = no map to guest = bad user [pub] comment = Public file space path = /pub read only = no public = yes force user = nobody max connections = 10 [share] comment = Shared directory path = /smb public = no valid users = samba, @staff writable = yes browseable = yes create mask = 0765
Most of the configuration above are default and self explanatory. It is worth mentioning that
map to guest = bad user is necessary to have Windows user access the public share without being prompted an authentication popup.
Finally, we need to add some configuration flags to the samba service and enable it to auto start at boot time.
echo ' smbd_flags="-D" nmbd_flags="-D" ' >> /etc/rc.conf.local rcctl enable samba
After restarting the samba service
rcctl restart samba, the shared folder should be accessible for our LAN users. You should also have the ports 139 and 445 open and on listening mode.