Construisez votre programme étape par étape en utilisant Shell Scripting - Partie 5

Dans les publications précédentes de ce cycle appelé «Construisez votre programme étape par étape en utilisant Shell Scripting» Nous avons déjà expliqué comment implémenter les modules suivants:

Shell Scripting

Maintenant, dans cette nouvelle publication, nous allons voir comment implémenter un:

MODULE D'AUTORISATION D'UTILISATEUR AVEC MOT DE PASSE

Quel devrait être le module (section) de votre programme Cela vous permet de vous assurer que seuls le ou les utilisateurs préalablement définis pour l'utiliser peuvent exécuter les opérations désignées pour votre programme. Il peut inclure ou non un mot de passe pour lesdits utilisateurs autorisés. Dans ce cas, nous en explorerons un avec la validation du nom d'utilisateur et du mot de passe.

J'ajoute personnellement les lignes suivantes pour créer ce module:

Sous le code:


###############################################################################
# INICIO DEL MODULO DE AUTORIZACIÓN DE USUARIO CON CONTRASEÑA
###############################################################################

setterm -background blue

espeak -v es-la+m1 -a 100 -p 50 -s 150 -b UTF-8 --stdout "ESTIMADO USUARIO: RECUERDA QUE EL LINUX POST INSTALL SCRIPT BICENTENARIO SOLICITA TU AUTENTICACION Y VALIDACION PARA EVITAR USOS INDEBIDOS POR PARTE DE PERSONAL NO AUTORIZADO. EN CASO DE NO SABER USUARIO Y CONTRASEÑA, ESCRIBA SALIR EN MAYUSCULA." | aplay -q

echo "ESTIMADO USUARIO: RECUERDA QUE EL LINUX POST INSTALL SCRIPT BICENTENARIO SOLICITA TU AUTENTICACION Y VALIDACION PARA EVITAR USOS INDEBIDOS POR PARTE DE PERSONAL NO AUTORIZADO. EN CASO DE NO SABER USUARIO Y CONTRASEÑA ESCRIBA, SALIR EN MAYUSCULA." | clear

dialog --infobox "\n \n \nESTIMADO USUARIO: RECUERDA QUE EL LINUX POST INSTALL SCRIPT BICENTENARIO SOLICITA TU AUTENTICACION Y VALIDACION PARA EVITAR USOS INDEBIDOS POR PARTE DE PERSONAL NO AUTORIZADO. EN CASO DE NO SABER USUARIO Y CONTRASEÑA, ESCRIBA SALIR EN MAYUSCULA." 10 80

################################################################################

USUARIO=0

until [ "$USUARIO" = "sysadmin" ];

do

espeak -v es-la+m1 -a 100 -p 50 -s 150 -b UTF-8 --stdout "ESTIMADO USUARIO: INTRODUZCA UN NOMBRE DE USUARIO VALIDO." | aplay -q

read -p "INTRODUZCA UN NOMBRE DE USUARIO VALIDO / PLEASE ENTER A VALID USER: " USUARIO
echo ""

if [ "$USUARIO" = "SALIR" ]; then

   setterm -background green
   play /usr/share/sounds/warning.wav 2> /dev/null

   echo -e "\nUsted ha decidido salir del Programa, hasta luego.\nYou have decided to leave the program, later.\n\n\nPuede intentarlo mas tarde.\nYou can try later."

   exit 0

fi


if [ "$USUARIO" != "$USR1_VALID" ]; then

   setterm -background red
   play /usr/share/sounds/error.wav 2> /dev/null

   echo -e "\nError al introducir un Usuario valido.\nFailed to enter a valid user.\n\n\nVuelva a intentarlo de nuevo.\nPlease try again."

fi

done

if [ "$USUARIO" = "$USR1_VALID" ]; then

   setterm -background blue
   play /usr/share/sounds/info.wav 2> /dev/null

   echo -e "\nAuntenticación de Usuario valido exitosa.\nValid user authentication successful.\n\n\nEspere unos segundos para continuar.\nWait a few seconds before continuing"

   sleep 3

fi

################################################################################

CLAVE=0

until [ "$CLAVE" = "lpi*sb8" ];

do

espeak -v es-la+m1 -a 100 -p 50 -s 150 -b UTF-8 --stdout "ESTIMADO USUARIO: INTRODUZCA UNA CONTRASEÑA VALIDA." | aplay -q

read -p "INTRODUZCA UNA CONTRASEÑA VALIDA / ENTER A VALID PASSWORD: " CLAVE
echo ""

if [ "$CLAVE" = "SALIR" ]; then

   setterm -background green
   play /usr/share/sounds/warning.wav 2> /dev/null

   echo -e "\nUsted ha decidido salir del Programa, hasta luego.\nYou have decided to leave the program, later.\n\n\nPuede intentarlo mas tarde.\nYou can try later."

   exit 0

fi


if [ "$CLAVE" != "$PASSWD_VALID" ]; then

   setterm -background red
   play /usr/share/sounds/error.wav 2> /dev/null

   echo -e "\nError al introducir una Contraseña valida.\nFailed to enter a valid password.\n\n\nVuelva a intentarlo de nuevo.\nPlease try again."

fi

done

################################################################################

if [ "$CLAVE" = "$PASSWD_VALID" ]; then

   setterm -background blue
   play /usr/share/sounds/info.wav 2> /dev/null

   echo -e "\nAuntenticación de Contraseña valida exitosa.\nValid password authentication successful.\n\n\nEspere unos segundos para continuar.\nWait a few seconds before continuing"

   sleep 3

fi

espeak -v es-la+m1 -a 100 -p 50 -s 150 -b UTF-8 --stdout "ESTIMADO USUARIO: ACCESO GARANTIZADO - USUARIO Y CONTRASEÑA CORRECTA" | aplay -q

echo "ESTIMADO USUARIO: ACCESO GARANTIZADO - USUARIO Y CONTRASEÑA CORRECTA." | sleep 5 | clear

dialog --infobox "\n \n \nESTIMADO USUARIO: ACCESO GARANTIZADO - USUARIO Y CONTRASEÑA CORRECTA." 10 80 ; sleep 5

DIALOG=${DIALOG=dialog}

$DIALOG --title "LINUX POST INSTALL - SCRIPT BICENTENARIO" --clear \
        --yesno "\n \n \nBIENVENIDO USUARIO: $(whoami), PRESIONE "SI" PARA CONTINUAR O "NO" PARA FINALIZAR." 10 80

case $? in
  0)
    echo ""
    echo ""
    echo "Continuando el proceso..."
    echo ""
    echo "."
    sleep 1
    echo ".."
    sleep 1
    echo "..."
    sleep 1
    clear;;
  1)
    exit 0;;
  255)
    exit 0;;
esac

dialog --infobox "\n \n \n ESPERE UNOS SEGUNDOS MIENTRAS EL PROGRAMA SE INICIALIZA..." 10 80 ; sleep 3

###############################################################################
# FINAL DEL MODULO DE AUTORIZACIÓN DE USUARIO CON CONTRASEÑA
###############################################################################

Comme vous pouvez le voir, ce module configure d'abord votre écran du terminal sur fond bleu un meilleure appréciation visuelle de l'utilisateur, puis émettre messages auditifs avec espionner y visuels avec echo y dialogue. Puis à travers une boucle en utilisant la commande jusqu'à valide que la valeur saisie pour le nom d'utilisateur être comparé à la ou les valeurs utilisateur valides préalablement défini, donnant à l'utilisateur la possibilité de fermer correctement le programme en tapant le mot SORTIR. Si la validation utilisateur est réussie, procédez à la même procédure avec le mot de passe. Pour finir de terminer en cas de succès la validation de l'utilisateur et du mot de passe avec un menu simple fait en dialogue demandant si l'utilisateur X souhaite continuer ou non le processus du programme. Si tel est le cas, émettez un simple barre progressive attendre fini avec la commande maisons.

=============

recommandation:

Planifiez ou pensez! Qu'est-ce que le premier? o Qu'est-ce qui est le plus important?

Sans aucun doute, lorsque nous commençons à programmer, la première chose que nous devrions apprendre est des algorithmes ou des diagrammes de flux comme bases théoriques pour apprendre la logique et les mathématiques afin d'augmenter notre raisonnement logico-mathématique, cependant, c'est une base suffisante ou adéquate pour commencer la programmation. . Comprendre que Apprendre à programmer, ce n'est pas assez, il faut Apprenez à penser.

DANS QUELLE LANGUE DE PROGRAMMATION DOIS-JE COMMENCER À PARVENIR À APPRENDRE RAPIDEMENT À PROGRAMMER?

C'est sûrement une question obligatoire que nous nous posons tous lorsque nous commençons dans le monde merveilleux de la programmation. Mais ce n'est pas la première bonne question que nous devrions nous poser, mais:

AI-JE LA CAPACITÉ ANALYTIQUE NÉCESSAIRE POUR ANALYSER UN PROBLÈME, EXTRACTER SES ÉLÉMENTS ET VOIR UNE RÉPONSE?

Et certainement apprendre à programmer dans l'une des langues les plus courantes ou les plus puissantes présente de nombreux avantages indéniables. Puisqu'il nous fournit les outils nécessaires pour développer nos propres applications, cela nous aide à localiser les problèmes dans les dispositifs technologiques, et cela nous ouvre des portes sur le marché du travail, mais la programmation n'est qu'une petite partie de l'informatique.

Alors que Programmer ou écrire du code consiste à apprendre à un ordinateur (via une application, un logiciel ou un système) à effectuer une certaine opération, après une Option X effectuée par un opérateur ou un Événement X par ou au sein du même matériel ou logiciel qui le prend en charge; Les principes de l'informatique (informatique / systèmes) ils nous enseignent des capacités de raisonnement et de logique utiles dans des domaines autres que la technologie. L'informatique, par essence, enseigne comment traiter et représenter l'information.

Par conséquent, je considère que c'est la manière la plus appropriée de Apprenez à programmer.

J'explique, en prenant comme exemple, cet autre post appelé N'apprends pas à coder. Apprenez à penser » de Evgueni Brikman, où cet ingénieur résume la différence entre savoir programmer et savoir penser comme un informaticien avec cette analogie:

Aussi omniprésente qu'une technologie soit, cela ne nous fait pas l'apprendre lorsque nous l'étudions dans un centre d'enseignement. À titre d'exemple, nous pourrions prendre que presque tout le monde à un moment de la vie a déjà volé dans un avion, mais de là à l'obtention d'une licence de pilote, il y a un très long chemin à parcourir, qui ne fait généralement pas partie de la études formelles d'une personne, mais études très particulières sur un domaine spécifique.

Expliqué plus en détail, cela signifie que les connaissances que tout le monde peut avoir sur le fonctionnement des avions sont essentiellement issues de l'enseignement secondaire et universitaire ou de toute carrière technique (ingénierie), telle que la physique et les mathématiques, qui nous aident à comprendre comment les forces présentes en vol et les éléments externes tels que la gravité, la pression atmosphérique, la vitesse, la friction ou la portance. Et tout comme la biologie nous aide à comprendre comment un être humain se comporte à hauteur X, ou comment il est affecté par un manque d'oxygène et un froid extrême. Ou l'histoire qui nous permet de connaître le processus qui a donné lieu à la création des avions, et quel rôle ils jouent dans le transport et le commerce. L'ensemble de ces connaissances acquises dans un centre d'enseignement, à partir de différents domaines de connaissances, nous donne une idée générale de ce qu'est un avion et de son fonctionnement. Les sujets généraux nous aident à comprendre une grande variété de problèmes, y compris la façon dont les avions volent. Quelque chose de très différent d'un sujet spécialisé qui ne vous apprend à faire fonctionner qu'une de ces machines, un type d'avion. Par conséquent, pour la même raison, nous devrions nous concentrer sur l'étude de l'informatique, et pas seulement sur la programmation. Puisque si l'informatique nous apprend globalement à penser dans un sens général (systémique), la programmation n'est qu'un outil qui nous permet de traduire une idée ou un problème Y à travers un code X, préalablement analysé (correctement ou incorrectement).

Ceci et bien d'autres points de vue apportés par Evgueni Brikman dans son article sur quoi Calendrier ce n'est qu'une partie d'une connaissance plus large intégrée dans le Informatique, qui sont essentiels pour chaque programmeur.

Enfin, n'oubliez pas de progresser de manière autodidacte en apprenant les commandes les plus importantes de GNU / Linux pour continuer à faire progresser les connaissances qu'ils utiliseront plus tard, et que tout ce qui est présenté ici sur le développement de certains module, fonction, variable, commande ou action en général, il peut être réalisé de différentes manières ou méthodes alternatives, différentes de celles décrites ici.

Ci-dessous un Screencast fait par moi, où vous pouvez voir comment ce module est exécuté, les modules précédents ou ultérieurs à enseigner, afin que vous puissiez voir le potentiel du Shell Scripting à un niveau moyen (non avancé):

ScreenCast de test LPI-SB8

(LINUX POST INSTALL - BICENTENNIAL SCRIPT 8.0.0) - Partie 2


2 commentaires, laissez le vôtre

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont marqués avec *

*

*

  1. Responsable des données: Miguel Ángel Gatón
  2. Finalité des données: Contrôle du SPAM, gestion des commentaires.
  3. Légitimation: votre consentement
  4. Communication des données: Les données ne seront pas communiquées à des tiers sauf obligation légale.
  5. Stockage des données: base de données hébergée par Occentus Networks (EU)
  6. Droits: à tout moment, vous pouvez limiter, récupérer et supprimer vos informations.

  1.   Un autre qui passait dit

    A avoir si je l'ai bien compris. Vous demandez à l'utilisateur d'entrer son nom d'utilisateur ... très bien. Et après avoir entré votre mot de passe ... et il s'avère que le mot de passe est "lpi * sb8" ... et qu'il est "codé en dur" dans le script.

    Si l'utilisateur a un accès en lecture au script… bingo !!… il sait déjà quel nom d'utilisateur et mot de passe il doit saisir !!!

    Je ne sais pas si j'ai fait une erreur sur quelque chose ... mais si c'est le cas, c'est très dangereux ...

  2.   Ing. José Albert dit

    Vrai! J'ai donné une méthode maintenant, tout le monde avec cette curiosité innée qui caractérise la race humaine doit chercher sa perfection ou son renforcement dans les lignes de sécurité.