I installed samba, but the samba.conf file does not exist

Hi everyone, I have installed samba, as well as the kde packages for folder sharing, but the smb.conf file in /etc/samba does not exist.

Neither on eos nor on arch, the file is not present. Where can I fix it?

I have two other distros on my PC, makulu linux and openmamba, the smb.conf file is present in the folder there. Can I use that?

How do I enable folder sharing?

Looks like they have moved it to /etc/conf.d/samba ?

I can see: EnvironmentFile=-/etc/conf.d/samba in /usr/lib/systemd/system/smb.service:

[Unit]
Description=Samba SMB Daemon
Documentation=man:smbd(8) man:samba(7) man:smb.conf(5)
Wants=network-online.target
After=network.target network-online.target nmb.service winbind.service

[Service]
Type=notify
PIDFile=/run/smbd.pid
LimitNOFILE=16384
EnvironmentFile=-/etc/conf.d/samba
ExecStart=/usr/bin/smbd --foreground --no-process-group $SMBDOPTIONS
ExecReload=/bin/kill -HUP $MAINPID
LimitCORE=infinity


[Install]
WantedBy=multi-user.target

Yes, on eos I see the same thing (on arch the conf.d folder does not exist).

screenshot1

screenshot2

screenshot3

Have a look at the list of the files shipped with samba package from Arch’s repo:

https://archlinux.org/packages/extra/x86_64/samba/files/

Ok thanks, something is definitely missing, but I installed samba with “sudo pacman -S samba” on arch, strange that it doesn’t install everything I need.

Anyway, let’s focus on eos, how can I enable samba on eos?

I better let other people more experienced in networking to assist you on this.

In the meantime have a look at the following link and see if you can dig up some useful info to get you started: https://discovery.endeavouros.com/?s=samba

2 Likes

Thanks, I’ll look into it now.

1 Like

For some reason, Archlinux does not include a smb.conf file. I include a smb.conf file for the ARM installs. Here is where you can find the smb.conf file I use for EnOS ARM. It should be the same for x86_64.

Here is an ARM how to I wrote for setting up Samba. Again, it should work for x86_64.

https://discovery.endeavouros.com/arm/install-and-setup-a-samba-server/2021/04/

and

https://discovery.endeavouros.com/arm/homeserver-5-configure-a-windows-client-for-samba/2021/04/

I hope that helps.

Pudge

@pebcak I guess I should have read the entire Topic before responding. I basically just repeated what you wrote!

3 Likes

I don’t think we have established this yet. There are two ways to set this up.

  1. The Archlinux machine is the server, and the Windows machine is the client.
  2. The Windows machine is the server, and the Archlinux machine is the client.

All the instructions listed in the above post is based on # 1
The linux server machine is serving files to the client Windows machine

How are you wanting to set up your machines?

Pudge

1 Like

So, what I would like to do is enable folder sharing, since I have KDE as my desktop environment, and make the Public folder in Home shareable on my PC.

I have EOS, Arch and W11 on the same PC, as well as 2 other distros (Makulu and Openmamba).

However, I have a second PC, which would be a minipc, with EOS installed with the XFCE desktop environment.

And then at home I have my sister’s PC, which has W10.

But for now I would like to configure my main PC, where I have EOS and Arch KDE.

This is why I’m confused: I don’t know how to configure the smb.conf file to share the Public folder in Home and enable the KDE folder sharing feature.

The more I look at a smb.conf file the more I get confused because I don’t know how to set it. Assuming it can be done.

This is essentially what I want to do.

I have never done that before, so I am not exactly sure how to do it.

This is how I share files between several computers.
I have a Raspberry Pi Linux ARM set up as a file server.
This runs 24 X 7 so it is always available.

All the other computers are set up as clients

The wife’s EnOS plasma computer
The wife’s Windows 10 computer
My EnOS plasma computer
My Windows 10 computer (only used for income taxes once a year)
I have a RPi 5b that I use for development.
Various ARM Devices I shuffle in and out for development

For Linux clients, I use ssh and sshfs to automatically mount, at login, the RPi server to a mount point in the home directory named enosServer.

For Windows clients I use Samba that connects at login to the RPI server

That way every computer has access to the same files stored on the server.

I also have a USB SSD that is identical to the Data USB SSD and I use rsync to
back up all my data.

Pudge

So, let’s give an example, on Windows I can create a shared folder. If I have a server configured, or I configure it later, I will see it there, otherwise not. But in any case I can create a group and a shared folder as I like, even if I only see it on my PC.

Not on Linux. I have to have samba with its config file, and then enable the service, from what I understand.

On Eos as on Arch, installing samba does not create the configuration file, and consequently I cannot even enable the service. And consequently not even enable folder sharing.

To enable some folders on KDE do I have to point Samba to a server?

That is, having kde plasma I at the moment would only like to enable folder sharing (in addition to samba I have installed the kde-filesharing package I think it’s called).

I would leave the connection to a home server, or between my PC and my sister’s, for later, as the next step.

I hope I explained myself better. XD

PS: I saw that Makulu and Openmamba both have the smb.conf file, but I guess it’s a default file. I could try to copy the one from Openmamba, where I use kde as the desktop environment, and put it on eos and try to see what happens.

Small update: I did a test on Arch, maybe then I’ll try on EOS. I did everything via desktop, I didn’t use the terminal. I took the smb.conf file (it’s a default configuration file without modifications) from the Openmamba disk and copied it to the Arch disk to the relevant folder, after which I had to create a “usershares” folder in “/var/lib /samba”. Having done this by going to the “Public” folder and going to the properties, in the sharing menu I get the error “This folder cannot be shared because your user account is not a member of the “root” group”

Screen 1

If I press the button under “Make me a member of the group” it again gives an error, i.e. “For security reasons, it is not possible to make the user “%1(I18N_ARGUMENT_MISSING)” a member of the group “%2(I18N_ARGUMENT_MISSING)”. The group name is unsafe; valid group names include the text “samba” and do not include the text “admin” or “root”.”

Screen 2

So at this point I think there needs to be some modification somewhere, but I don’t know how to do it or what to do.

I don’t know if it goes the same way on EOS, but probably yes. I have to try.

EDIT: I did the same thing on EOS, it gives me the same type of errors it gave me on Arch.

I set it up a while back and currently still have it working. First off here is a link to the arch wiki for samba they mention that they don’t ship a smb.conf file, but give examples. https://wiki.archlinux.org/title/samba

I’ll try and walk you through the relevant steps from the wiki and anything extra that I did.

  1. Manually create the /etc/samba/smb.conf file with whatever settings I want.
  2. Inside of the smb file add at minimum the following lines.
[global]
usershare path = /var/lib/samba/usershares
usershare max shares = 100
usershare allow guests = yes
usershare owner only = yes
map to guest = bad user
guest account = nobody

You can change this if you like depending on if you plan on allowing guests and stuff, but since my goal was to share with anyone on the network I needed those settings.

  1. sudo mkdir -p /var/lib/samba/usershares. You need to create the directory(s) if they don’t exist.
  2. Create a samba user group with sudo groupadd -r sambashare. You shouldn’t be adding yourself to the root group.
  3. Change the owner and group of the directory we just created. The owner should be root and the group should be the newly created sambashare group.
  4. Change the permission of the usershares directory so that members of the sambashare group can access it. By doing sudo chmod 1770 /var/lib/samba/usershares.
  5. Add your user to the sambashare group with sudo gpasswd sambashare -a [your_username].
  6. Start the smb and nmb services. I’m not sure about the nmb service that is taken directly from the arch wiki. Anyways you can do this by sudo systemctl start smb nmb.

Hope this helps.

1 Like

Step 1: Create smb.conf File

Create or open the smb.conf file in /etc/samba:

sudo nano /etc/samba/smb.conf

Paste the following basic configuration into the file:

[global]
   workgroup = WORKGROUP
   server string = Samba Server
   netbios name = your_hostname
   security = user
   map to guest = bad user
   dns proxy = no

[shared]
   path = /path/to/your/shared/folder
   browsable = yes
   writable = yes
   guest ok = yes
   read only = no

Replace /path/to/your/shared/folder with the actual path to the folder you want to share.

Step 2: Start and Enable Samba Services

After configuring the smb.conf file, start and enable the Samba services:

sudo systemctl start smb.service
sudo systemctl start nmb.service
sudo systemctl enable smb.service
sudo systemctl enable nmb.service

Step 3 Set Up Samba Users

sudo smbpasswd -a your_username

Step 4: KDE Folder Sharing

Since you are using KDE, you can enable folder sharing through Dolphin (the KDE file manager):

1 Right-click on the folder you want to share.
2 Select "Properties".
3 Go to the "Share" tab.
4 Enable sharing and adjust the permissions as needed.

Step 4: Test Your Samba Configuration

To ensure your Samba configuration is correct, test it with the following command:

testparm

1 Like

Thanks guys, I’ll try it when I get back from work.

1 Like

A noob question about smb.conf: I leave the “netbios name = your_hostname” line like this, or instead of “your_hostname” I put the hostname I have on the distro (for example my hostname on arch is archlinux). ?

put the hostname that you have for example my is Host: zdislav and yours is archlinux

Ok, thanks!

no problem with it doesn’t work try:

https://bbs.archlinux.org/viewtopic.php?id=234432

https://www.reddit.com/r/archlinux/comments/kvtt5j/smbconf_doesnt_exist_in_etcsamba/