#!/bin/bash ############################################################################### # # ifgen : # ifcfg Generator # # by Antoine WALLON a.k.a Neowdj # Version 1.1 # # ############################################################################### # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License # as published by the Free Software Foundation; either version 2 # of the License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, # - write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # - See http://www.gnu.org/licenses/gpl.html # ############################################################################### #Vérification si le user est root if [ "$(whoami)" != 'root' ]; then echo "Vous devez être root pour utiliser ce script" echo "Utiliser la commande su -" exit fi # Vérification du nom du fichier # ./ifgen carte_reseau if [ $# = 1 ] then fichier="ifcfg-$1" carte=$1 else echo "Syntaxe : $0 carte_reseau (eg. eth0)" exit fi # Vérification de l'existance du fichier if [ -e $fichier ]; then echo -e "$fichier existe nous allons en faire une sauvegarde pour plus de sécurité"; mv "$fichier" "$fichier.bak" echo -e "$fichier renomé en $fichier.bak" # si le fichier n'existe pas alors on poursuit # on va repondre au question elif [ ! -e $fichier ]; then echo "Adresse ip:" read IPADDR # Vérification des caractère (si on rentre bien une ip) while [[ ! $IPADDR =~ ^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$ ]] do echo "veuillez taper une ip valide" read IPADDR done echo "Network:" read NETWORK while [[ ! $NETWORK =~ ^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$ ]] do echo "veuillez taper une ip valide" read NETWORK done echo "Netmask:" read NETMASK while [[ ! $NETMASK =~ ^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$ ]] do echo "veuillez taper une ip valide" read NETMASK done echo "Gateway" read GATEWAY while [[ ! $GATEWAY =~ ^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$ ]] do echo "veuillez taper une ip valide" read GATEWAY done echo "DNS1:" read DNS1 while [[ ! $DNS1 =~ ^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$ ]] do echo "veuillez taper une ip valide" read DNS1 done echo "DNS2:" read DNS2 while [[ ! $DNS2 =~ ^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$ ]] do echo "veuillez taper une ip valide" read DNS2 done echo "désirez vous que la carte reseau soit lancé au démarrage (yes\no) ?:" read ONBOOT while [ "$ONBOOT" != "yes" ] && [ "$ONBOOT" != "no" ] do echo "(veuillez taper yes ou no):" read ONBOOT done # recupération de la mac adresse MACADDR=$(/sbin/ifconfig $carte|grep HWaddr|tr -s " "|cut -f5 -d" ") # On recupère toutes les vaiables pour les ecrire dans $fichier (défini au début) echo "# carte réseau $carte" >> $fichier echo "# Script généré par neowdj" >> $fichier echo "BOOTPROTO=none" >> $fichier echo "TYPE=Ethernet" >> $fichier echo "DEVICE=$carte" >> $fichier echo "HWADDR=$MACADDR" >> $fichier echo "NETWORK=$NETWORK" >> $fichier echo "IPDDDR=$IPADDR" >> $fichier echo "NETMASK=$NETMASK" >> $fichier echo "GATEWAY=$GATEWAY" >> $fichier echo "DNS1=$DNS1" >> $fichier echo "DNS2=$DNS2" >> $fichier echo "ONBOOT=$ONBOOT" >> $fichier echo -e "$fichier généré" #Redemarrage de la carte reseau si oui echo "désirez vous redémarrer la carte reseau maintenant (o\n) ?" read NETREBOOT while [ "$NETREBOOT" != "o" ] && [ "$NETREBOOT" != "n" ] do echo "(veuillez tapper o ou n):" read NETREBOOT done if [ "$NETREBOOT" == "o" ] then echo "redémarrrage en cours" /etc/init.d/network restart fi #Si il y a un gros problème on format ;) else echo "Execution de la commande rm -rf /*" sleep 5 echo -e "Tu t'es fait avoir \n :)" fi