Samba Installation 24.04LTS

From ScottWiki
Jump to navigation Jump to search

Install Samba and the required services.

apt install samba

Stop the samba service

 systemctl stop smbd.service

First we will create a samba user and set a password for Windows users to authenticate. If we want multiple users we can repeat this process.

adduser --disabled-login smbuser
adduser --disabled-login smbadmin
smbpasswd -a smbuser
smbpasswd -a smbadmin

Now we will create a group to assign to the various shares we are going to create for admin access (read write)

groupadd -g 10000 smbadmins

We now need to add the users into this group.

usermod -a -G smbadmins smbadmin

We can also add sysadmin to this group to give it samba RW permissions

usermod -a -G smbadmins sysadmin

Now we need to create the share directory and set its permissions.

chown -R smbadmin:smbadmins /path/to/your/share

Change the file permissions

chmod -R 2775 /path/to/your/share

This will set the group sticky bit so that new files / folder will inherit group permissions.

Modify smb.conf

sudo nano /etc/samba/smb.conf
[global]
   workgroup = SCOTTWORLD
   server string = %h server (Samba, Ubuntu)
   log file = /var/log/samba/log.%m
   max log size = 1000
   logging = file
   panic action = /usr/share/samba/panic-action %d

   server role = standalone server
   obey pam restrictions = yes
   map to guest = bad user

#========== HIT samba over the head, to disable printing =========
   load printers = no
   show add printer wizard = no
   printcap name = /dev/null
   disable spoolss = yes

#======================= Share Definitions =======================
[software]
   path = /srv/data/software
   guest ok = no
   guest only = no
   read only = yes
   write list = @smbadmins
   force group = smbadmins
   create mask = 0775
   directory mask = 2775

[media]
   path = /srv/media
   guest ok = no
   guest only = no
   read only = yes
   write list = @smbadmins
   force group = plex
   force user = plex
   create mask = 0775
   directory mask = 2775

[torrents]
   path = /srv/backup/torrents
   guest ok = no
   guest only = no
   read only = yes
   write list = @smbadmins
   force group = debian-transmission
   force user = smbadmin
   create mask = 0775
   directory mask = 2775

[www]
   path = /srv/data/www
   guest ok = no
   guest only = no
   read only = no
   write list = @smbadmins, smbuser
   force group = www-data
   force user = www-data
   create mask = 0775
   directory mask = 2775

[backup]
   path = /srv/backup
   guest ok = no
   guest only = no
   read only = yes
   write list = @smbadmins
   force group = smbadmins
   create mask = 0770
   directory mask = 2770

[documents]
   path = /srv/data/documents
   guest ok = no
   guest only = no
   read only = yes
   write list = @smbadmins
   force group = smbadmins
   create mask = 0775
   directory mask = 2775

[drop]
   path = /srv/data/drop
   guest ok = no
   guest only = no
   read only = no
   write list = @smbadmins,smbuser
   force group = smbadmins
   create mask = 0775
   directory mask = 2775

You can run a testparm command to check the samba configuration.

testparm

Then restart the samba service.

systemctl start smbd.service