Partage
  • Partager sur Facebook
  • Partager sur Twitter

script gestionnaire de tache

    18 avril 2017 à 9:30:55

    hello :D, je vous presente mon script de gestionnaire de tache dite moi ce que vous en penssez :) soyez indulgent je debute ^^

    #!/bin/bash 
    
    ###############################################################################################################fonctions########################################
    
    function menu_principale
    {
    	clear
    
    	echo -e "\033[1;31m Bienvenue dans le gestionnaire pc \033[0m \n\n\n"
    	echo -e "Que faire ?:\n\n"
    	echo -e "1.Gestion des utilisateurs\n"
    	echo -e "2.Gestion des groupes\n"
    	echo -e "3.Gestion des proprietaire d un fichier\n"
    	echo -e "4.Gestion des droits d acces a un fichier\n"
    	echo -e "5.Surveillance de l activite systeme\n"
    	echo -e "6.Arret/Redemarrage du pc\n"
    	echo -e "7.Gestion de la date et de l heure du systeme\n"
    	echo -e "8.Gestion du clavier\n"
    	echo -e "q.Quitter\n"
    	read choixMenu
    
    	clear
    }
    
    function menu_gestion_utilisateur
    {
    	echo -e "\033[1;31m Bienvenue dans la gestion d'utilisateur \033[0m \n\n\n"
    	echo -e "Que faire ?:\n\n"
    	echo -e "1.Ajouter un utilisateur\n"
    	echo -e "2.Changer un mot de passe\n"
    	echo -e "3.Supprimer un utilisateur\n"
    	echo -e "4.Menu precedent\n"
    	read choixMenuGestionUtilisateur
    
    	clear
    }
    
    function menu_gestion_groupe
    {
    	echo -e "\033[1;31m Bienvenue dans le gestionnaire de groupe \033[0m \n\n\n"
    	echo -e "Que faire ?:\n\n"
    	echo -e "1.Creer un groupe\n"
    	echo -e "2.Changer un utilisateur de groupe\n"
    	echo -e "3.Supprimer un groupe\n"
    	echo -e "4.menu precedent\n"
    	read choixMenuGestionGroupe
    
    	clear
    }
    
    function menu_gestion_proprietaire_fichier
    {
    	echo -e "\033[1;31m Bienvenue dans le gestionnaire de propriete d un fichier \033[0m \n\n\n"
    	echo -e "Que faire ?:\n\n"
    	echo -e "1.changer le proprietaire d un fichier\n"
    	echo -e "2.changer le groupe proprietaire d un fichier\n"
    	echo -e "3.Menu precedent\n"
    	read choixMenuGestionProprietaireFichier
    
    	clear
    }
    
    function menu_gestion_droits_fichier
    {
    	echo -e "\033[1;31m Bienvenue dans le gestionnaire de droits d acces a un fichier \033[0m \n\n\n"
    	echo -e "Que faire ?:\n\n"
    	echo -e "1.Donner touts les droits a tout le monde\n"
    	echo -e "2.Etre le seul a avoir tout les droits sur le fichier\n"
    	echo -e "3.Donner touts les droits au groupe\n"
    	echo -e "4.Donner seulement le droit de lecture au groupe\n"
    	echo -e "5.Donner seulement le droit de lecture a tout le monde\n"
    	echo -e "6.Menu Precedent\n"
    	read choixMenuGestionDroitsFichier
    
    	clear
    }
    
    function menu_outils_de_surveillance_systeme
    {
    	echo -e "\033[1;31m Bienvenue dans l'outil de surveillance systeme \033[0m \n\n\n"
    	echo -e "Que faire ?:\n\n"
    	echo -e "1.Liste des utilisateur connecter a la machine\n"
    	echo -e "2.Lister les processus\n"
    	echo -e "3.Arreter un processus\n"
    	echo -e "4.Menu precedent\n"
    	read choixMenuOutilsSurveillanceSysteme
    
    	clear
    }
    
    function menu_listage_processus
    {
    	echo -e "\033[1;31m Listage des processus \033[0m \n\n\n"
    	echo -e "Que faire ?:\n\n"
    	echo -e "1.Liste basique des processus\n"
    	echo -e "2.Liste avancer des processus\n"
    	echo -e "3.Liste des processus d un utilisateur precis\n"
    	echo -e "4.Menu precedent\n"
    	read choixMenuListageProcessus
    
    	clear
    }
    
    function menu_arret_redemarrage
    {
    	echo -e "\033[1;31m Arret/Redemarrage \033[0m \n\n\n"
    	echo -e "Que faire ?:\n\n"
    	echo -e "1.Arreter l ordinateur\n"
    	echo -e "2.Redemarrer l ordinateur\n"
    	echo -e "3.Menu precedent\n"
    	read choixMenuArretRedemarrage
    
    	clear
    }
    
    function changement_date
    {
    	echo -e "\033[1;31m Bienvenue dans le gestionnaire de date/heure \033[0m \n\n\n"
    	echo -e "entrer l'année(ex:2017)\n"
    	read annee
    
    	echo -e "\nentrer le mois(ex:04)\n"
            read mois
    
    	echo -e "\nentrer le jour(ex:05)\n"
    	read jour
    
    	echo -e "\nentrer l'heure (ex: 19:17:00)\n"
    	read heure
    
    
    	sudo date -s "$annee$mois$jour $heure"
    
    	pause
    }
    
    function menu_gestion_clavier
    {
    	echo -e "\033[1;31m Bienvenue dans le gestionnaire du clavier \033[0m \n\n\n"
            echo -e "Que faire ?:\n\n"
    	echo -e "1.passer en clavier azerty\n"
    	echo -e "2.passer en clavier qwerty\n"
    	echo -e "3.Menu precedent\n"
    	read choixMenuGestionClavier
    }
    
    function pause
    {
    	echo -e "\n\nappuyez sur entrer pour continuer\n\n"
    	read
    
    	clear
    
    }
    
    
    ################################################################################
    
    ################################################################################
    #################################script#########################################
    
    choixMenu=0
    
    while [ $choixMenu != 'q' ]
    do
    	recommencer=1
    
    	menu_principale
    
    #############################################################################################################quitter############################################
    
    if [ $choixMenu = 'q' ]
    then
    	exit
    fi
    
    ################################################################################
    
    	until [ $recommencer != 1 ]
    	do
    
    ###############################################################################
    ###########################gestion utilisateur##################################
    
    if  [ $choixMenu -eq 1 ]
    	then
    		menu_gestion_utilisateur
    
    		if [ $choixMenuGestionUtilisateur -eq 4 ]
    		then
    			recommencer=2
    		fi
    
    		if [ $choixMenuGestionUtilisateur -eq 1 ]
    		then
    			echo -e "Entrer le nom du nouvel utilisateur\n"
    			read utilisateur
    
    			echo -e "Entrer le mot de passe du nouvel utilisateur\n"
    			read -s motDePasse
    
    			sudo useradd -m $utilisateur -p $motDePasse 2> /dev/null
    
    			if [ ! -e /home/$utilisateur ]
    			then
    				echo -e "\n\nL utilisateur n a pas pu etre creer\n\n"
    			else
    				echo -e "\n\nl utilisateur a pu etre creer\n\n"
    			fi
    
    			pause
    
    
    		elif [ $choixMenuGestionUtilisateur -eq 2 ]
    		then
    			echo -e "Entrer le nom de l'utilisateur dont le mot de passe doit etre changer :\n"
    			read utilisateur
    
    			sudo passwd $utilisateur
    
    			echo -e "\n\nle mot de passe de $utilisateur a ete changer avec succes\n\n"
    			pause
    
    
    		elif [ $choixMenuGestionUtilisateur -eq 3 ]
    		then
    			echo -e "Entrer le nom de l utilisateur a supprimer\n"
    			read utilisateur
    
    			sudo deluser --remove-home $utilisateur
    
    			if [ ! -e /home/$utilisateur ]
    			then
    				echo -e "\n\nL utilisateur a bien ete supprimer\n\n"
    			else
    				echo -e "\n\nL utilisateur n a pas pu etre supprimer\n\n"
    				pause
    			fi
    
    
    		fi
    
    ################################################################################
    
    ################################################################################
    ############################gestion de groupe###################################
    
    elif [ $choixMenu -eq 2 ]
    then
    	menu_gestion_groupe
    
    	if [ $choixMenuGestionGroupe -eq 4 ]
    	then
    		recommencer=2
    
    		elif [ $choixMenuGestionGroupe -eq 1 ]
    		then
    
    		echo -e "Entrer le nom du groupe a creer\n"
    		read groupe
    
    		sudo addgroup $groupe
    
    		echo -e "\n\nLe groupe $groupe a ete creer avec succes\n\n"
    
    		pause
    
    
    	elif [ $choixMenuGestionGroupe -eq 2 ]
    	then
    		echo -e "Entrer le nom de l'utilisateur a changer de groupe\n"
    		read utilisateur
    		echo -e "\nEntrer le nom du nouveau groupe\n"
    		read groupe
    
    		sudo usermod -g $groupe $utilisateur
    
    		echo -e "\n\nL utilisateur $utilisateur fait maintenant partie du groupe $groupe\n\n"
    
    		pause
    		
    
    	elif [ $choixMenuGestionGroupe -eq 3 ]
    	then
    		echo -e "Entrer le nom du groupe a supprimer\n"
    		read groupe
    
    		delgroup $groupe
    
    		echo -e "\n\nLe groupe $groupe a ete supprimer avec succes\n\n"
    
    		pause
    
    	fi
    
    ################################################################################
    
    ###################################################################################################Gestion de proprieter d un fichier###########################
    
    elif [ $choixMenu -eq 3 ]
    then
    	menu_gestion_proprietaire_fichier
    
    	if [ $choixMenuGestionProprietaireFichier -eq 3 ]
    	then
    		recommencer=2
    
    	elif [ $choixMenuGestionProprietaireFichier -eq 1 ]
    	then
    		echo -e "Entrer le nom du futur proprietaire du fichier\n"
    		read utilisateur
    
    		echo -e "\nentrer le nom du fichier\n"
    		read fichier
    
    		sudo chown $utilisateur $fichier
    		
    		pause
    
    
    	elif [ $choixMenuGestionProprietaireFichier -eq 2 ]
    	then
    		echo -e "Entrer le nom du nouveau groupe proprietaire du fichier\n"
    		read groupe
    
    		echo -e "\nentrer le nom du fichier\n"
    		read fichier
    
    		chgrp $groupe $fichier
    
    		pause
    	fi
    
    ################################################################################
    
    ################################################################################
    #####################gestion des droits d acces a un fichier####################
    
    elif [ $choixMenu -eq 4 ]
    then
    	menu_gestion_droits_fichier
    
    	if [ $choixMenuGestionDroitsFichier -eq 6 ]
    	then
    		recommencer=2
    	
    	elif [ $choixMenuGestionDroitsFichier -eq 1 ]
    	then
    		echo -e "Entrer le nom du fichier\n"
    		read fichier
    
    		chmod 777 $fichier
    
    		pause
    
    	elif [ $choixMenuGestionDroitsFichier -eq 2 ]
    	then
    		echo -e "Entrer le nom du fichier\n"
    		read fichier
    
    		chmod 600 $fichier
    
    		pause
    
    	elif [ $choixMenuGestionDroitsFichier -eq 3 ]
    	then
    		echo -e "Entrer le nom du fichier\n"
    		read fichier
    
    		chmod 770 $fichier
    
    		pause
    
    	elif [ $choixMenuGestionDroitsFichier -eq 4 ]
    	then
    		echo -e "Entrer le nom du fichier\n"
    		read fichier
    
    		chmod 740 $fichier
    
    		pause
    
    	elif [ $choixMenuGestionDroitsFichier -eq 5 ]
    	then
    		echo -e "Entrer le nom du fichier\n"
    		read fichier
    
    		chmod 744 $fichier
    
    		pause
    	fi
    
    ################################################################################
    
    ################################################################################
    ###########################surveillance systeme#################################
    
    elif [ $choixMenu -eq 5 ]
    then
    	retour=1
    
    	menu_outils_de_surveillance_systeme
    
    	if [ $choixMenuOutilsSurveillanceSysteme -eq 4 ]
    	then
    		recommencer=2
    		retour=2
    
    	elif [ $choixMenuOutilsSurveillanceSysteme -eq 1 ]
    	then
    		w
    
    		pause
    	fi
    		
    		if [ $choixMenuOutilsSurveillanceSysteme -eq 2 ]
    		then
    			until [ $retour != 1 ]
    			do
    
    			menu_listage_processus
    
    		if [ $choixMenuListageProcessus -eq 4 ]
    		then
    			retour=2
    		
    
    			elif  [ $choixMenuListageProcessus -eq 1 ]
    			then
    				ps
    
    				pause
    
    			elif [ $choixMenuListageProcessus -eq 2 ]
    			then
    				ps -ef
    
    				pause
    
    			elif [ $choixMenuListageProcessus -eq  3 ]
    			then
    				echo -e "Entrer le nom de l utilisateur\n"
    				read utilisateur
    
    				ps -u $utilisateur
    
    				pause
    			fi
    		done
    	fi
    
    
    	if [ $choixMenuOutilsSurveillanceSysteme -eq 3 ]
    	then
    		echo -e "Entrer le nom de l'utilisateur dont vient le processus a tuer\n"
    		read utilisateur
    
    		echo -e "\nEntrer le nom du processus\n"
    		read processus
    
    		ps -u $utilisateur | grep $processus
    
    		echo -e "\n\nEntrer le PID du processus(ex:32678):\n"
    		read PIDprocessus
    
    		kill $PIDprocessus
    
    		pause
    	fi
    
    ################################################################################
    
    ################################################################################
    ##############################Arret/demarrage###################################
    
    elif [ $choixMenu -eq 6 ]
    then
    	menu_arret_redemarrage
    
    	if [ $choixMenuArretRedemarrage -eq 3 ]
    	then
    		recommencer=2
    
    	elif [ $choixMenuArretRedemarrage -eq 1 ]
    	then
    		sudo halt
    
    	elif [ $choixMenuArretRedemarrage -eq 2 ]
    	then
    		sudo reboot
    	fi
    
    ################################################################################
    
    ##########################################################################################################changement date/heure#################################
    
    elif [ $choixMenu -eq 7 ]
    then
    	changement_date
    
    	recommencer=2
    
    ################################################################################
    
    ##############################################################################################################gestion clavier###################################
    
    elif [ $choixMenu -eq 8 ]
    then
    	menu_gestion_clavier
    
    	if [ $choixMenuGestionClavier -eq 3 ]
    	then
    		recommencer=0
    
    	elif [ $choixMenuGestionClavier -eq 1 ]
    	then
    		setxkbmap fr
    
    	elif [ $choixMenuGestionClavier -eq 2 ]
    	then
    		setxkbmap us
    	fi
    
    	clear
    
    ################################################################################
    
    fi
    
    done
    done
    
    clear
    
    ################################################################################
    



    • Partager sur Facebook
    • Partager sur Twitter
      18 avril 2017 à 9:37:47

      Débutant ou non, je trouve que tu as un sacre courage pour te taper un fichier de 500 lignes en bash ^^ (oui ce message est inutile)

      • Partager sur Facebook
      • Partager sur Twitter
        18 avril 2017 à 10:07:25

        bah j 'ai fini depuis peu le cours sur linux ^^ , une fois que je suis lancer je m arrete plus mdr
        • Partager sur Facebook
        • Partager sur Twitter
          18 avril 2017 à 11:08:54

          J'ai pensé la même chose que Elried ! Honnêtement le problème c'est que je pense pas que les personnes auront autant de courage que toi et vont lire tout ton script :p

          J'ai regardé quand même mais je ne l'ai pas testé. Cependant, si tout ce que tu as mis fonctionne félicitations ! Honnêtement je suis pas assez bon pour te conseiller des choses à modifier ou simplifier d'un simple coup d’œil comme ça mais ça peut m(intéresser d'avoir le retour d'autres personnes également concernant ton script ;)

          • Partager sur Facebook
          • Partager sur Twitter
          "J'aimerai faire un jeu, mais pas un gros jeu hein. Un petit truc simple du style MMO." Dixit un utilisateur d'OC !
            18 avril 2017 à 11:15:22

            En lisant rapidement le bestiau, je te propose une amélioration rigolote a effectuer. Pour le moment ton script réalise certaines opérations avec sudo. pourquoi ne pas procéder ainsi :

            • N7affiche les options concernées (comme le changement de date) que si le script est lance avec les privilèges admin
            • si ton script est lance sans privilèges , alors affiche une option pour passer en mode super user.
            • Partager sur Facebook
            • Partager sur Twitter
              18 avril 2017 à 11:19:31

              merci -razerback- , normalement tout fonctionne ^^ bonne idee elried je n'y avait pas pensser je vais ajouter cela :)
              • Partager sur Facebook
              • Partager sur Twitter
                18 avril 2017 à 11:25:00

                salut,

                selon moi-même ;) un script d'administration devrait appartenir à root, et n'être exécutable qu'en tant que tel, ou avec sudo.

                tu gagnerais en lisibilité et en réduction du nombre de lignes en utilisant case/esac, plutôt que tous ces if/else/../fi

                il manque des vérification sur les données saisies par l'utilisateur : l'année est-elle un nombre ? le groupe existe-t-il ?...

                • Partager sur Facebook
                • Partager sur Twitter

                Validez la réponse utile « Un problème clairement exposé est à moitié résolu. » Pas de MP technique

                  18 avril 2017 à 11:32:29

                  dantonq a écrit: > selon moi-même ;) un script d'administration devrait appartenir à root, et n'être exécutable qu'en tant que tel, ou avec sudo.

                  Pour un truc en production, c'est effectivement une approche qui se tient. Dans le cas de quelqu'un qui apprends et viens de finir le cour sur Linux, je pense qu'une approche moins pense "admin système" mais plus axee "pratique du bash" est preferable

                  • Partager sur Facebook
                  • Partager sur Twitter
                    18 avril 2017 à 11:37:47

                    si c'est pour coller des sudo partout, autant faire comme je le préconise.
                    • Partager sur Facebook
                    • Partager sur Twitter

                    Validez la réponse utile « Un problème clairement exposé est à moitié résolu. » Pas de MP technique

                      18 avril 2017 à 11:41:44

                      j'ai rajouter ceci en debut de script qui force a lancer le script en root :)

                      if [ "$UID" -ne "0" ]
                      then
                         echo -e "lancer le script en root\n"
                         exit 1
                      fi



                      • Partager sur Facebook
                      • Partager sur Twitter
                        18 avril 2017 à 11:56:09

                        ça me convient.
                        • Partager sur Facebook
                        • Partager sur Twitter

                        Validez la réponse utile « Un problème clairement exposé est à moitié résolu. » Pas de MP technique

                        script gestionnaire de tache

                        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                        • Editeur
                        • Markdown