#!/bin/bash

# Netzwerk-Logik
IP=$(ip a s enp0s3 | grep "inet\>" | awk '{print $2}')
OKT=$(echo $IP | cut -f 3 -d .)

# Installation
dnf install -y samba samba-client cifs-utils

# User anlegen
useradd -m -s /bin/bash martha 2>/dev/null
echo "martha:123Start$" | chpasswd
useradd -m -s /bin/bash kit 2>/dev/null
echo "kit:kit" | chpasswd

# Samba-Passwörter setzen
echo -e "123Start$\n123Start$" | smbpasswd -a martha -s
echo -e "kit\nkit" | smbpasswd -a kit -s

# Gruppe
groupadd smbgruppe 2>/dev/null
usermod -aG smbgruppe kit

# Verzeichnisse
mkdir -p /srv/samba/public
chmod 777 /srv/samba/public

mkdir -p /srv/samba/secure
chown root:sambashare /srv/samba/secure
chmod 770 /srv/samba/secure

mkdir -p /srv/samba/group
chown root:smbgruppe /srv/samba/group
chmod 770 /srv/samba/group
chmod g+s /srv/samba/group

# SELinux Kontexte setzen
setsebool -P samba_enable_home_dirs on
semanage fcontext -a -t samba_share_t "/srv/samba(/.*)?"
restorecon -Rv /srv/samba

# Konfiguration
cat <<HERE > /etc/samba/smb.conf
[global]
   workgroup = WORKGROUP
   server string = Samba Server
   security = user
   map to guest = Bad User
   smb ports = 445

[public]
   path = /srv/samba/public
   browsable = yes
   writable = yes
   guest ok = yes
   read only = no

[secure]
   path = /srv/samba/secure
   browsable = yes
   writable = yes
   guest ok = no
   valid users = martha kit

[homes]
   comment = Home Directories
   browseable = no
   writable = yes

[group]
   path = /srv/samba/group
   browsable = yes
   writable = yes
   guest ok = no
   valid users = @smbgruppe
   force group = smbgruppe
   create mask = 0660
   directory mask = 0770
HERE

# Firewall
firewall-cmd --permanent --add-service=samba
firewall-cmd --reload

# NetBIOS deaktivieren
systemctl stop nmb
systemctl disable nmb

# Start
systemctl enable --now smb
systemctl status smb
