Last active
May 12, 2024 10:22
-
-
Save sbnsec/e1057c692ed74ca0c028c376be4e76fa to your computer and use it in GitHub Desktop.
init linux server
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#/bin/bash | |
function info(){ | |
local -r message="${1}" | |
echo -e "\033[1;36m[+] ${message}\033[0m" 2>&1 | |
} | |
function check_sudo_and_run() { | |
# Vérifier si l'utilisateur a des droits sudo | |
if sudo -n true 2>/dev/null; then | |
echo "Vous avez les droits sudo. Exécution du script..." | |
else | |
echo "Droits sudo requis pour exécuter ce script. Veuillez ajoute rles droits sudo pour l'utilisateur." | |
exit 1 | |
fi | |
} | |
# This script makes the nessary change to configure this devices to my tastes | |
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )" | |
trace(){ | |
echo "# $*" | |
"$@" | |
} | |
function copy_vimrc_if_absent() { | |
FILE="$HOME/.vimrc" | |
if [ ! -f "$FILE" ]; then | |
info "Le fichier .vimrc n'a pas été trouvé dans $HOME. Copie en cours depuis $DIR..." | |
cp "$DIR/utils/.vimrc" "$HOME" | |
info ".vimrc copié avec succès dans $HOME." | |
else | |
info "Le fichier .vimrc existe déjà dans $HOME." | |
fi | |
} | |
check_pkg() | |
{ | |
PKG_OK=$(dpkg-query -W --showformat='${Status}\n' $1|grep "install ok installed") | |
info "Checking for $1: $PKG_OK" | |
if [ "" == "$PKG_OK" ]; then | |
info "Not installed. Setting up $1" | |
trace sudo apt-get --force-yes --yes install $1 | |
fi | |
} | |
update_issue_with_ips() { | |
message="" | |
issue_net_template="\l ---- \d \nUtilisateurs Connectés: \u \n" | |
message+=$issue_net_template | |
# Sauvegarder le fichier /etc/issue original | |
sudo cp /etc/issue /etc/issue.bak | |
# Obtenir la liste des interfaces réseau | |
interfaces=$(ip -o link show | awk -F': ' '{print $2}') | |
message+="IP de interface par default: \4\n" | |
# Parcourir chaque interface | |
for interface in $interfaces; do | |
# Vérifier si l'interface a une adresse IP | |
ip_address=$(ip -o -4 addr list $interface | awk '{print $4}' | cut -d/ -f1) | |
if [ ! -z "$ip_address" ]; then | |
# Ajouter la ligne pour l'interface dans /etc/issue | |
message+="IP de $interface: \4{$interface}\n" #>> /etc/issue | |
fi | |
done | |
echo -e $message | sudo tee /etc/issue | |
} | |
function replace_nano_with_message() { | |
local script_content="#!/bin/bash | |
echo \"⚠️ ERREUR: 'nano' n'est PAS l'éditeur que vous cherchez ! ⚠️\" | |
echo \"⚠️ ERREUR: 'nano' n'est PAS l'éditeur que vous cherchez ! ⚠️\" | |
echo \"⚠️ ERREUR: 'nano' n'est PAS l'éditeur que vous cherchez ! ⚠️\" | |
echo \"⚠️ ERREUR: 'nano' n'est PAS l'éditeur que vous cherchez ! ⚠️\" | |
echo \"┌───────────────────────────────────────────┐\" | |
echo \"│ Oups ! Il semble que vous ayez tapé │\" | |
echo \"│ 'nano' par erreur. Ne vous inquiétez │\" | |
echo \"│ pas, c'est une erreur courante chez │\" | |
echo \"│ les apprentis sorciers de l'informatique. │\" | |
echo \"│ │\" | |
echo \"│ Les vrais magiciens utilisent 'vim', │\" | |
echo \"│ un éditeur plus puissant et magique │\" | |
echo \"└───────────────────────────────────────────┘\" | |
echo \"Quelques commandes de base pour démarrer avec vim :\" | |
echo \" vim <fichier> - Pour ouvrir un fichier\" | |
echo \" :q - Pour quitter\" | |
echo \" :q! - Pour quitter sans sauvegarder\" | |
echo \" :w - Pour sauvegarder\" | |
echo \" :wq ou :x - Pour sauvegarder et quitter\" | |
echo \" i - Pour passer en mode insertion\" | |
echo \" Esc - Pour revenir en mode normal\" | |
echo \"Amusez-vous bien avec vim ! 😎\"" | |
# Écrivez le contenu dans /bin/nano (nécessite des droits sudo) | |
echo "$script_content" | sudo tee /bin/nano > /dev/null | |
# Rendre le nouveau 'nano' exécutable | |
sudo chmod +x /bin/nano | |
} | |
info "Verification que l'utilisateur a les droits sudo" | |
sleep 1 | |
check_sudo_and_run | |
check_pkg vim | |
check_pkg tree | |
check_pkg git | |
check_pkg zsh | |
check_pkg curl | |
info "fix vimrc" | |
sleep 1 | |
copy_vimrc_if_absent | |
# Appeler la fonction | |
info "Mise à jour /etc/issue avec les adresses IP des interfaces" | |
sleep 1 | |
update_issue_with_ips | |
info "remove nano" | |
sleep 1 | |
sudo apt purge -y nano | |
info "set message instead if nano" | |
sleep 1 | |
replace_nano_with_message | |
wget https://raw.githubusercontent.com/sbnsec/openvpn-install/master/openvpn-install.sh | |
chmod +x openvpn-install.sh | |
export AUTO_INSTALL=y | |
export APPROVE_INSTALL=y | |
export APPROVE_IP=y | |
export IPV6_SUPPORT=n | |
export PORT_CHOICE=1 | |
export ROTOCOL_CHOICE=1 | |
export DNS=1 | |
export COMPRESSION_ENABLED=n | |
export CUSTOMIZE_ENC=n | |
export CLIENT=clientname | |
export PASS=1 | |
./openvpn-install.sh |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment