====== 24.04 Samba Installation ====== Install Samba and the required services. apt install samba Stop the samba service systemctl stop smbd.service Add the windows server discovery service - so you can find stuff on the network apt install wsdd-server 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