TEMP-SCRIPT/script_post.sh

325 lines
13 KiB
Bash
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/bin/bash
# authors : https://gitlab.com/Mxaxax - https://gitlab.com/edricus
if [ "$EUID" -ne 0 ]
then echo "Lancer en tant que root"
exit
fi
###################
## USER CREATION ##
###################
printf "\033[32;5m== Creation des utilisateurs...\033[0m\n"
## BELLINUXIEN
if id "bellinuxien" >/dev/null 2>&1; then
echo -e "\e[93ml'utilisateur bellinuxien existe déjà"
else
if (whiptail --yesno "Voulez-vous créer l'utilisateur bellinuxien ?" 8 78 --title "Creation de l'utilisateur bellinuxien" 3>&1 1>&2 2>&3); then
adduser bellinuxien --gecos "" --disabled-password --quiet
usermod -aG sudo bellinuxien
newgrp sudo
PASSWORD=1
while [[ $PASSWORD != $VERIF ]]; do
PASSWORD=$(whiptail --passwordbox "Entrez le mot de passe de bellinuxien" 8 78 --title "Creation de l'utilisateur bellinuxien" 3>&1 1>&2 2>&3)
VERIF=$(whiptail --passwordbox "Entrez une nouvelle fois le mot de passe" 8 78 --title "Creation de l'utilisateur bellinuxien" 3>&1 1>&2 2>&3)
if [[ $PASSWORD != $VERIF ]]; then
whiptail --msgbox "Les mots de passe ne correspondent pas !" --title "Creation de l'utilisateur bellinuxien" 8 78
fi
done
echo "bellinuxien:"$PASSWORD"" | chpasswd
usermod -aG sudo bellinuxien
cat << EOF > /var/lib/AccountsService/users/bellinuxien
[User]
SystemAccount=true
EOF
fi
fi
## PERSO / VISITEUR
PERSO='1 1' # ugly workaround to start the space-in-string verfication loop
PASSWORD=1
if (whiptail --yesno "Voulez-vous créer un utilisateur ?" 8 78 --title "Creation d'un utilisateur perso" 3>&1 1>&2 2>&3); then
while [[ ! -z $(echo $PERSO | grep "[[:space:]]") ]]; do
PERSO="$(whiptail --inputbox --separate-output --title "Creation d'un utilistateur perso" 3>&1 1>&2 2>&3 \
"Entrez le nom d'utilisateur à créer" 8 40 visiteur)"
if [[ ! -z $(echo $PERSO | grep "[[:space:]]") ]]; then
whiptail --msgbox "Le nom d'utilisateur ne doit pas contenir d'espaces !" --title "Creation d'un utilisateur perso" 8 78
fi
done
if [[ $PERSO == visiteur ]]; then
if id "visiteur" >/dev/null 2>&1; then
echo -e "\e[93mL'utilisateur visiteur existe déjà"
else
adduser visiteur --gecos "visiteur" --disabled-password --quiet
usermod -a -G cdrom,floppy,audio,bluetooth,dip,video,plugdev,scanner,netdev,lp,lpadmin visiteur
echo 'visiteur:visiteur' | chpasswd
fi
else
while [[ $PASSWORD != $VERIF ]]; do
PASSWORD=$(whiptail --passwordbox "Entrez le mot de passe" 8 78 --title "Creation d'un utilisateur perso" 3>&1 1>&2 2>&3)
VERIF=$(whiptail --passwordbox "Entrez une nouvelle fois le mot de passe" 8 78 --title "Creation d'un utilisateur perso" 3>&1 1>&2 2>&3)
if [[ $PASSWORD != $VERIF ]]; then
whiptail --msgbox "Les mots de passe ne correspondent pas !" --title "Creation d'un utilisateur perso" 8 78
else
adduser $PERSO --gecos "${PERSO^}" --disabled-password --quiet
echo "$PERSO:"$PASSWORD"" | chpasswd
if (whiptail --yesno "Voulez-vous ajouter cet utilisateur au groupe sudo ?" --title "Creation d'un utilisateur perso" 8 78 3>&1 1>&2 2>&3) then
usermod -aG sudo $PERSO
fi
fi
done
fi
else PERSO=$(id -nu 1000)
fi
if [[ -z $PERSO ]]; then
PERSO=$(id -nu 1000)
fi
##################
## QUESTIONS DE ##
##################
printf "\033[0;32m== Choix de l'environnement de bureau... \033[0m\n"
DE=$(whiptail --separate-output --title "Environnements de bureau" --radiolist \
"Quel environnement de bureau utiliser ?" 10 60 3 \
"MATE" "Leger, convient aux PC anciens" OFF \
"KDE" "Complexe, adapté au multi-tâche" OFF \
"GNOME" "Moderne, ergonomie et visuel soigné " ON 3>&1 1>&2 2>&3)
printf "\033[0;32m== Choix du profil... \033[0m\n"
PROFIL=$(whiptail --separate-output --title "Profils" --checklist \
"Quels profils d'utilisateurs sur cet ordinateur?" 15 90 10 \
"Team-Working" "Des logiciels pour le travail collaboratif" ON \
"Enfants" "Des jeux et des outils éducatifs" OFF \
"Seniors" "Des outils d'accessibilité" OFF \
"Gamer" "Des jeux, des jeux ,des jeux" OFF \
"MAO" "Des logiciels pour la création musicale" OFF \
"DevOps" "Des logiciels pour s'initier à l'approche DevOps" OFF \
"Toshiba_toughbook" "Correction de bug pour le son" OFF 3>&1 1>&2 2>&3)
#####################
## PACKAGE MANAGER ##
#####################
printf "\033[0;32m== Configuration de APT... \033[0m\n"
cp files/sources.list /etc/apt/sources.list
# dpkg --add-architecture i386
apt-get update -y
apt-get upgrade -y
#############################
## INTERNET ACCESS CONTROL ##
#############################
echo $'[main]\ndns=none' | tee /etc/NetworkManager/conf.d/90-dns-none.conf &>/dev/null
systemctl reload NetworkManager
sed -i '1,4 s/^/#/' /etc/resolv.conf && sed -i -e '$anameserver 1.1.1.2\nnameserver 2606:4700:4700::1112' /etc/resolv.conf
systemctl reload NetworkManager
#cloudflare DNS Anti Malware
###################
## BASE PACKAGES ##
###################
printf "\033[0;32m== Installation des programmes de base... \033[0m\n"
apt-get install -yqq git curl wget zip unzip bash-completion gnome-tweaks flatpak gnome-software-plugin-flatpak libxdo3
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
##################
## CONFIG FILES ##
##################
ACCOUNTSSERVICE="/var/lib/AccountsService/users/"$PERSO""
# SOURCES.LIST
printf "\033[0;32m== Ajout des backports dans sources.list... \033[0m\n"
if [ -z "$(grep 'bookworm-backports' /etc/apt/sources.list)" ]; then
echo "deb http://deb.debian.org/debian bookworm-backports main non-free-firmware contrib non-free" >> /etc/apt/sources.list
apt-get update
fi
# BASHRC
printf "\033[0;32m== Modification de bashrc... \033[0m\n"
mv /home/"$PERSO"/.bashrc /home/"$PERSO"/.bashrc.BACK
cp -r files/bashrc /home/"$PERSO"/.bashrc
################
## INSTALL DE ##
################
if [ -z "$DE" ]; then
echo -e "\e[91mAucun profil n'a été choisi"
else
for i in $DE; do
echo -e "\e[93mVous avez choisis le bureau : $DE"
case "$i" in
"MATE")
if [[ ! -z $(ps -aux | grep mate-panel$) ]]; then
echo "MATE est déjà installé"
else
apt-get purge --autoremove *gnome* *kde* -y
apt-get install -yqq gnome-system-tools blueman gnome-software ttf-mscorefonts-installer -y
tasksel install mate-desktop
sed -i '/XSession/d' $ACCOUNTSSERVICE
sed -i '/Session/a XSession=mate' $ACCOUNTSSERVICE
whiptail --msgbox "Les changements seronts appliqués au prochain redémarrage" 8 78
fi
;;
"KDE")
if [[ ! -z $(ps -aux | grep kded4$) ]]; then
echo "KDE est déjà installé"
else
apt-get purge --autoremove *gnome* *mate* -y
tasksel install kde-desktop
apt-get install -yqq ttf-mscorefonts-installer -y
sed -i '/XSession/d' $ACCOUNTSSERVICE
sed -i '/Session/a XSession=kde' $ACCOUNTSSERVICE
whiptail --msgbox "Les changements seronts appliqués au prochain redémarrage" 8 78
fi
;;
"GNOME")
if [[ ! -z $(ps -aux | grep gnome-session$) ]]; then
echo "GNOME est déjà installé"
else
apt-get purge --autoremove *mate* *kde* -y
tasksel install gnome-desktop
apt-get install -yqq gnome-tweak-tool gnome-screensaver arc-theme dmz-cursor-theme -y
sed -i '/XSession/d' $ACCOUNTSSERVICE
sed -i '/Session/a XSession=gnome' $ACCOUNTSSERVICE
whiptail --msgbox "Les changements seronts appliqués au prochain redémarrage" 8 78
fi
;;
*)
echo -e "\e[91mUnsupported item $DE !" >&2
exit 1
;;
esac
done
fi
#####################
## INSTALL PROFILE ##
#####################
for i in $PROFIL; do
echo -e "\e[93mVous avez choisi le profil : $PROFIL"
case "$i" in
"Enfants")
echo $'[main]\ndns=none' | tee /etc/NetworkManager/conf.d/90-dns-none.conf
sed -i '1,6 s/^/#/' /etc/resolv.conf
sed -i -e '$anameserver 1.1.1.3\nnameserver 2606:4700:4700::1113' /etc/resolv.conf
apt-get install -yqq veyon-service tuxpaint pingus numptyphysics warmux xmoto slimevolley arduino -y
apt-get install -yqq -t bookworm-backports gcompris-qt -y
;;
"Seniors")
# Skype
wget --timeout 5 --tries 3 https://go.skype.com/skypeforlinux-64.deb
dpkg -i skypeforlinux-64.deb
apt-get install -yqq -f
rm -rf skypeforlinux-64.deb
# Rustdesk install
cd /tmp && wget https://github.com/rustdesk/rustdesk/releases/download/1.1.9/rustdesk-1.1.9.deb && dpkg -i rustdesk-1.1.9.deb && rm -rf rustdesk-1.1.9.deb
;;
"Gamer")
# Steam
dpkg --add-architecture i386
apt-get update
apt-get -y install steam-installer
# Discord
wget --timeout 5 --tries 3 -O discord.deb "https://discordapp.com/api/download?platform=linux&format=deb"
sudo dpkg -i discord.deb
sudo apt-get install -f
mkdir -p Discord
dpkg -x discord.deb Discord/
desktop-file-validate Discord/usr/share/applications/discord.desktop
sudo mv Discord/usr/share/applications/discord.desktop /usr/share/applications/
sudo mv Discord/* /usr/share/
sudo rm -f /usr/bin/discord
sudo ln -s /usr/share/Discord/Discord /usr/bin/discord
# Autres
#snap install urban-terror warzone2100 flightgear stuntrally extreme-tux-racer tmnationsforever mc-installer mari0-ce liveforspeed opensurge crrcsim-simulator love
#snap install {savagexr,pixels-game} --beta
;;
"MAO")
apt-get install -yqq playonlinux lmms audacity mixxx ardour rosegarden soundconverter qtractor -y
wget --timeout 5 --tries 3 https://dl.4kdownload.com/app/4kyoutubetomp3_4.6.2-1_amd64.deb
dpkg -i ./4kyoutubetomp3_4.6.2-1_amd64.deb
apt-get install -yqq -f
rm -rf ./4kyoutubetomp3_4.6.2-1_amd64.deb
;;
"Team-Working")
apt-get install -yqq gimp gitso soundcgimp onverter scribus chromium chromium-l10n vlc brasero pdfarranger -y
# Signal
echo 'deb [signed-by=/usr/share/keyrings/signal-desktop-keyring.gpg arch=amd64] https://updates.signal.org/desktop/apt xenial main' > /etc/apt/sources.list.d/signal.list
wget --timeout 5 --tries 3 -O- https://updates.signal.org/desktop/apt/keys.asc | gpg --dearmor > signal-desktop-keyring.gpg
cat signal-desktop-keyring.gpg > /usr/share/keyrings/signal-desktop-keyring.gpg
rm -rf signal-desktop-keyring.gpg
# Zoom (à passer en flatpak bientôt) flatpak install flathub us.zoom.Zoom
flatpak install -y flathub us.zoom.Zoom
# Telegram (à passer en flatpak bientôt) flatpak install flathub org.telegram.desktop
wget --timeout 5 --tries 3 "https://telegram.org/dl/desktop/linux" -O telegram.tar.xz
tar -xf telegram.tar.xz
mv Telegram/Telegram /usr/local/bin/telegram
cp files/telegram-desktop.desktop /usr/share/applications/
# Autres
#snap install messenger-collabee yakyak whatsdesk && \
#snap install slack --classic
#snap install cawbird --edge
;;
"DevOps")
mkdir devops && git clone https://git.legaragenumerique.fr/GARAGENUM/installations.git devops/ && bash devops/devops.sh && rm -rf ./devops/
;;
*)
echo -e "\e[91mUnsupported item $PROFIL!" >&2
exit 1
;;
esac
done
###########
# Firefox #
###########
## ne fonctionne plus : https://blog.mozilla.org/addons/2019/10/31/firefox-to-discontinue-sideloaded-extensions/
# printf "\033[0;32m== Téléchargement des extensions firefox depuis addons.mozilla.org... \033[0m\n"
# mkdir ./addons
# # Ublock
# curl -s https://api.github.com/repos/gorhill/uBlock/releases/latest \
# | grep "browser_download_url.*firefox.xpi" \
# | cut -d : -f 2,3 \
# | tr -d \" \
# | wget -qi - -P addons/ublock-origin.xpi
##########################
# SOFTWARES INSTALLATION #
##########################
if ! dpkg -l | grep -q dbus-x11; then
printf "\033[0;32m== dbus-x11 n'est pas installé. Installation en cours... \033[0m\n"
sudo apt update -y
sudo apt install -y dbus-x11
printf "\033[0;32m== dbus-x11 installé avec succès.\033[0m\n"
fi
#On retire Firefox ESR & LibreOffice
sudo apt autoremove --purge firefox-esr* -y
sudo apt autoremove --purge libreoffice* -y
printf "\033[0;32m== Installation des logiciels : Thunderbird, Element, Firefox, LibreOffice, VLC, Parabolic via Flatpak\033[0m\n"
flatpak install -y flathub io.github.flattool.Warehouse org.mozilla.Thunderbird org.mozilla.firefox im.riot.Riot org.libreoffice.LibreOffice org.videolan.VLC org.nickvision.tubeconverter
printf "\033[0;32m== Fin de l'installation ==\033[0m\n"
###############
## APPARENCE ##
###############
## Desktop environment
echo "DE is $DE"
echo "User is $PERSO"
if [ "$(echo $DE)" == 'GNOME' ]; then
apt-get install gettext meson ninja-build dmz-cursor-theme -y
printf '\n'
echo "Pour la configuration de gnome, basculer sur $PERSO et executez le script \'gnome.sh\' sans sudo. Si aucun utilisateur n'a été créé, juste executez gnome.sh tout de suite"
printf '\n'
fi
#solution temporaire (ils en existent d'autres comme kill pour kill un processus mais dommageable pour le système je pense)
sudo bash -c "sleep 10 && reboot"
#Restart GNOME
#su -c "busctl --user call "org.gnome.Shell" "/org/gnome/Shell" "org.gnome.Shell" "Eval" "s" 'Meta.restart("Restarting…")';" $PERSO