#!/bin/bash
# 
# Script til at generere en bevis-fil for jump serveren.
# Skal først bruges efter jump.sh scriptet er kørt.
# 
# 
# Author: Martin Beck <mb@sde.dk>
# Version 26.04
# 
#=============================================
#Global Variables
filename="$(hostname --short).bevis.txt"
bevis_folder="/tmp/bevis"

egen_bruger=mb
#=============================================


init () {
  # Opretter bevis mappen, hvis den ikke allerede eksisterer.
  mkdir -p "$bevis_folder"
}


ny_overskrift () {
  echo -e "\n\n\n"
  echo "#####################################################################"
  # Ny linie som tilføjer funktionens første parameter
  echo "### $1"
  echo "#####################################################################"
}


bevis_init () {
  ny_overskrift "Bevis af init"
  rpm -qa nano vim-enhanced mc dnf-automatic
  hostnamectl status
}


bevis_brugere () {
  ny_overskrift "Bevis af brugere"
  id $egen_bruger
  id pingu
}


bevis_selinux () {
  ny_overskrift "Bevis af SELinux"
  sestatus
}


bevis_allow_ssh () {
  ny_overskrift "Bevis af SSH gruppe tilladelse"
  echo "/etc/ssh/sshd_config :"
  grep "AllowGroups" /etc/ssh/sshd_config
}


bevis_dnf_automatic () {
  ny_overskrift "Bevis af DNF automatisk opsættning"
  echo "/etc/dnf/automatic.conf :"
  grep "upgrade_type" /etc/dnf/automatic.conf
  grep "apply_updates" /etc/dnf/automatic.conf
}


bevis_firewalld () {
  ny_overskrift "Bevis af Firewalld"
  nmcli
  firewall-cmd --list-all --zone=internal
}


main () {
  # Kør de kommandoer som er nødvendige for resten af scriptet.
  init
  
  # Samler den absolute sti til bevis filen udfra begge variabler.
  # Gør resten af funktionen nemmere at læse.
  output=${bevis_folder}/${filename}
    
  # Kør bevis_init funktionen og redirigere outputtet til bevis filen.
  bevis_init >> $output
  
  # Kør bevis_brugere funktionen og redirigere outputtet til bevis filen.
  bevis_brugere >> $output
  
  # Kør bevis_selinux funktionen og redirigere outputtet til bevis filen.
  bevis_selinux >> $output
  
  # Kør bevis_allow_ssh funktionen og redirigere outputtet til bevis filen.
  bevis_allow_ssh >> $output
  
  # Kør bevis_dnf_automatic funktionen og redirigere outputtet til bevis filen.
  bevis_dnf_automatic >> $output
  
  # Kør bevis_firewalld funktionen og redirigere outputtet til bevis filen.
  bevis_firewalld >> $output
  
  echo "Beviser er skrevet til filen: $output"
}

# Tjekker om scriptet er kørt som root eller med sudo, og afbryder hvis ikke.
if [ "$EUID" -ne 0 ]
  then echo -e "\033[31mKør Scriptet som root eller med sudo.\033[0m"
  exit
fi

main
