Samba is an open-source implementation of SMB networking protocol used for sharing files and printers across different operating systems. It helps system administrators to share files between multiple operating systems. Samba can also be used to join a Linux machine to Windows active directory domain controller. If you are looking for an open-source file-sharing solution, then Samba is the best choice for you.
In this post, we will show you how to install the Samba server on Fedora.
Step 1 – Install Samba Server
By default, the Samba package is included in the Fedora default repository. You can install it with other packages using the following command.
dnf install samba samba-common samba-client
Once all the packages are installed, you can proceed to the next step.
Step 2 -Create a Samba User
Next, you will need to create a user and group to control access on Samba Share.
Let’s create a new user using the following command.
useradd smbuser
Next, set a password for the Samba user.
smbpasswd -a smbuser
Set the password as shown below.
New SMB password: Retype new SMB password: Added user smbuser.
Next, create a Samba group with the following command.
groupadd smbgroup
Next, add smbuser to smbgroup.
usermod -g smbgroup smbuser
Step 3 -Create a Public Share with Samba
With Samba, you can create a public share for all users in a network. It can be accessed without providing a user or password.
First, create a directory for Public share using the following command.
mkdir -p /data/share/public
Next, set the permission and ownership to the Public share.
chmod -R 755 /data/share/public chown -R nobody:nobody /data/share/public
Next, create some files inside the Public directory.
cd /data/share/public touch public1 public2
Next, back up the Samba main configuration file and create a new one.
mv /etc/samba/smb.conf /etc/samba/smb.conf.bak nano /etc/samba/smb.conf
Add the following lines to define your public share.
[global] workgroup = WORKGROUP server string = Samba Server %v netbios name = sambaserver security = user map to guest = bad user dns proxy = no ntlm auth = true [Public] path = /data/share/public browsable =yes writable = yes guest ok = yes read only = no
Save and close the file, then test the configuration with the following command.
testparm
Next, start and enable both smb and nmb services.
systemctl start smb nmb systemctl enable smb nmb
Step 4 -Verify Public Share
Now, you can verify your Public share using the following command.
smbclient -L samba-server-ip
Just press the enter key without providing any password to list your share.
Enter WORKGROUP\root's password: Sharename Type Comment --------- ---- ------- Public Disk IPC$ IPC IPC Service (Samba Server 4.14.12) SMB1 disabled -- no workgroup available
Next, access the Public share with the following command.
smbclient //samba-ip-address/public
You will get into the Samba share.
Enter WORKGROUP\root's password: Try "help" to get a list of possible commands.
Run the following command to list all files inside the public share directory.
smb: \> ls
You will see both files in the following output.
. D 0 Fri Jun 23 22:45:10 2023 .. D 0 Fri Jun 23 22:49:40 2023 public1 N 0 Fri Jun 23 22:45:10 2023 public2 N 0 Fri Jun 23 22:45:10 2023 52416512 blocks of size 1024. 50410328 blocks available
Step 5 – Create a Private Share with Samba
Private share is very useful when you want to control access to the share.
Let’s create a private share with the following command.
mkdir -p /data/share/private
Next, create two files inside the private share.
cd /data/share/private touch private1 private2
Now, set permissions and ownership on the private share.
chmod -R 770 /data/share/private chown -R root:smbgroup /data/share/private
Now, edit the Samba configuration file.
nano /etc/samba/smb.conf
Add the following configurations to define your private share.
[Private] path = /data/share/private valid users = @smbgroup guest ok = no writable = no browsable = yes
Save and close the file, then restart both services to apply the changes.
systemctl restart smb nmb
Step 6 – Verify Private Share
Now, you can access your private share using the following command.
smbclient //samba-ip-address/private -U smbuser
Provide your smbuser password to access the share as shown below.
Enter WORKGROUP\smbuser's password: Try "help" to get a list of possible commands. smb: \> ls . D 0 Fri Jun 23 22:50:26 2023 .. D 0 Fri Jun 23 22:49:40 2023 private1 N 0 Fri Jun 23 22:50:26 2023 private2 N 0 Fri Jun 23 22:50:26 2023 52416512 blocks of size 1024. 50410392 blocks available smb: \>
To exit from the Samba shell, run the following command.
smb: \> exit
Conclusion
In this post, we explained how to install the Samba server on Fedora. We also showed you how to create a public and private share with Samba. You can now use this solution in your local network to share files between multiple systems. You can now share files and folders with Samba on dedicated server hosting from Atlantic.Net!