Samba Windows File Sharing
Introduction¶
If you have ever dealt with Windows systems chances are you are aware of SMB (Server Message Block) for file sharing. If you are a seasoned Linux administrator chances are that you have heard of Samba but if you have not, Samba is the de facto open-source implementation of SMB to enable file sharing and Active Directory access from Linux machines to Windows networks.
Installation¶
You need to install Samba using dnf
:
dnf install -y samba
Setting up a share¶
First make a directory you want to share with Windows clients:
mkdir /var/store
Next set the SELinux labels on the /var/store
directory:
semanage fcontext -a -t samba_share_t "/var/store(/.*)?"
restorecon -Rv /var/store
Replace /var/store
with the directory to be shared.
Now configure Samba:
vi /etc/samba/smb.conf
In the smb.conf
file navigate to the bottom and insert the following:
[Share]
path = /var/store
browseable = yes
writable = no
read only = yes
guest ok = yes
If you are unaware of the options above, they are:
path
is the directory we are sharing. Set this to your respective directory (/var/store
in our case).browseable
is to allow clients to browsing access. If you want to disallow browsing set this tono
.writable
is to allow clients writing access. If you want to allow write access set this toyes
.read only
is to mark the share as read-only. If you want to allow write or execute access set this tono
.guest ok
is to allow non-authenticated users access to our share. If you want to deny guests set this tono
.
To test the configuration you can run:
testparm
Enabling Samba¶
Once the configuration tests OK, open the Samba port in firewall-cmd
:
firewall-cmd --permanent --add-service=samba
firewall-cmd --reload
Next, you can enable Samba:
systemctl enable --now smb nmb
Accessing the Samba share¶
You can access the Samba share using the following URI (Note: replace SERVER_IP
with the IP address or FQDN of your machine running Samba):
- Windows:
\\SERVER_IP
- Linux or Mac:
smb://SERVER_IP
SERVER_IP
on the author's home network is 172.20.0.100
so while the instructions vary based on operating system, the author will access the new share from their Fedora 40 notebook:
All files accessible on the server are also available on client machines.
Conclusion¶
While SMB has a reputation of being Microsoft-centric, SMB is actually an industry standard and your Samba share can be accessed from Linux, Mac, BSD and even mobile devices. So congratulations, you are sharing your server's files now!
Author: Neel Chauhan
Contributors: Steven Spencer