# - bof - #
#!/bin/bash



<<'comment'

# -  - #
# - Run this programs first - #


# :1
# -  - #
# - Data mount into fstab file - #
/DataPool/Images/Programs/Linux.Img/Linux_Arch.Img/Arch_Configuration/Arch_bashrc_fstab_pacman-conf.Ins/Data-fstab.sh

# :2
# -  - #
# - Data folders configuration - #
/DataPool/Images/Programs/Linux.Img/Linux_Arch.Img/Arch_Configuration/Data_FoldersConfiguration.Ins/3-DataFoldersConfiguration.sh

# :3
# -  - #
# - Install samba - #

cd ~/; rm -rf ~/Samba.sh; vim ~/Samba.sh;
copy & paste this content
chmod +x ~/Samba.sh; ~/./Samba.sh;

# -  - #
# - When this error happen on ssh command - #
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
# -  - #
# - Fixing this error - #
ssh-keygen -R "you server hostname or ip"
ssh-keygen -R 192.168.1.100;
ssh-keygen -R 10.0.0.
ssh-keygen -R 10.0.0.100
ssh-keygen -R 10.0.0.200

read -t 5 -p "I am going to wait for 5 seconds only ..."
comment



sambaF_=/etc/samba/smb.conf;
samba_='samba';
smbGuest_='smbguest';
groupF_=/etc/group;
passwdF_=/etc/passwd;
adminUser_='is_derayo';
adminPasswd_='Administrator2';



# :a
# -  - #
clear;
echo "";
read -t 2 -p "Creating & configuring folders to share";
echo "";

mkdir -p /Data/Documents/ToShare-FullAccess;
mkdir -p /Data/Documents/ToShare-JustRead;

chown -R is_derayo:is_derayo /Data/Documents/ToShare-FullAccess;
chown -R is_derayo:is_derayo /Data/Documents/ToShare-JustRead;

chmod 777 /Data/Documents/ToShare-FullAccess;
chmod 777 /Data/Documents/ToShare-JustRead;



# :b
# -  - #
echo "";
read -t 2 -p "Updating system...";
echo "";
sudo pacman -Syu --noconfirm && sudo pacman -Syyuu --noconfirm;

echo "";
read -t 2 -p "Installing samba...";
echo "";
sudo pacman -S samba --noconfirm --needed;
sudo pacman -S nautilus-share gvfs-smb --noconfirm --needed;



# :c
# -  - #
echo "";
read -t 2 -p "Deleting smb.conf file"
sudo rm -rf ~/smb.conf;

echo "Creating smb.conf file"
sudo cat <<EOT>> ~/smb.conf;

# -  - #
# - Samba configuration file location - #
# - sudo vim /etc/samba/smb.conf - #
# -  - #

[global]
   workgroup = L_IS
   wins support = yes
   security = user
   server string = Samba Server
   server role = standalone server
   log file = /var/log/samba/log.%m
   max log size = 50
   guest account = nobody
   map to guest = Bad Password

[ToShare-FullAccess]
    comment = ToShare-FullAccess to everybody in the net
    path = /Data/Documents/ToShare-FullAccess
    writeable = yes
    browseable = yes
    guest ok = no
    create mask = 0777
    valid users = is_derayo, smbguest

[ToShare-JustRead]
    comment = ToShare-JustRead to everybody in the net
    path = /Data/Documents/ToShare-JustRead
    writeable = no
    browseable = yes
    guest ok = no
    create mask = 0755
    valid users = is_derayo, smbguest

EOT

echo "";
echo "Copying smb.conf file to /etc/samba/ folder";
sudo cp ~/smb.conf /etc/samba/smb.conf;
sudo rm -rf ~/smb.conf;



# :d
# -  - #
echo "";
read -t 2 -p "Enable samba service";
sudo systemctl enable --now smb nmb;



# :e
# -  - #
echo "";
read -t 2 -p "Creating & configuring sambashare group & samba users...";

# :e.1
# -  - #
echo "Creating sambashare group...";
sudo groupadd -r sambashare;

# :e.2
# -  - #
echo "Creating & configuring samba user...";
#sudo useradd -r -s /usr/bin/nologin smbguest;
sudo useradd -r -s /usr/bin/nologin $smbGuest_;

echo "";
echo "Creating samba user password...";
#sudo passwd smbguest;
(echo $smbGuest_; sleep 1; echo $smbGuest_ ) | sudo passwd $smbGuest_;

echo "";
echo "Add smbguest user to sambashare group...";
sudo usermod -aG sambashare $smbGuest_;

echo "Add administrator user to sambashare group...";
sudo usermod -aG sambashare $adminUser_;

echo "Enable smbguest user in samba...";
sudo gpasswd sambashare -a $smbGuest_;

echo "Enable administrator user in samba...";
sudo gpasswd sambashare -a $adminUser_;

echo "Create samba user password on samba...";
(echo $smbGuest_; sleep 1; echo $smbGuest_ ) | sudo pdbedit -a -u $smbGuest_;

echo "Create administrator user password on samba...";
(echo $adminPasswd_; sleep 1; echo $adminPasswd_ ) | sudo pdbedit -a -u $adminUser_;



# :f
# -  - #
echo "";
echo "";
read -t 2 -p "Enable & start samba service";
sudo systemctl enable --now smb nmb;
sudo systemctl start smb.service nmb.service

rm -rf ~/Samba.sh;

echo "";
echo "Samba configuration completed successfully...";
echo "";
echo "You can check the status of samba service using the following command:";
echo "sudo systemctl status smb.service nmb.service";
echo "";



# - eof - #
