Crea il tuo programma passo dopo passo usando Shell Scripting - Parte 5

Nelle precedenti pubblicazioni di questo round chiamato «Crea il tuo programma passo dopo passo usando Shell Scripting» Abbiamo già spiegato come implementare i seguenti moduli:

Shell Scripting

Ora in questa nuova pubblicazione vedremo come implementare a:

MODULO AUTORIZZAZIONE UTENTE CON PASSWORD

Quale dovrebbe essere il modulo (sezione) del tuo programma che consente di garantire che solo l'utente o gli utenti precedentemente definiti per utilizzarlo possano eseguire le operazioni designate per il programma. Può includere o meno una password per detti utenti autorizzati. In questo caso, ne esploreremo uno con la convalida di nome utente e password.

Personalmente aggiungo le seguenti righe per creare questo modulo:

Di seguito il codice:


###############################################################################
# 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
###############################################################################

Come puoi vedere, questo modulo prima configura il tuo file schermo del terminale su sfondo blu a migliore apprezzamento visivo dell'utente, quindi emette messaggi uditivi con parlare y visivo con eco y dialogo. Quindi attraverso un ciclo utilizzando il comando fino a quando convalida che il valore immesso per nome utente essere paragonato a il valore utente valido precedentemente definito, dando la possibilità all'utente di chiudere correttamente il programma digitando la parola SALIR. Se la convalida dell'utente ha esito positivo, procedere con la stessa procedura con la password. Per terminare la conclusione in caso di successo la convalida dell'utente e della password con un menu semplice fatto in dialogo chiedendo se l'utente X desidera continuare o meno il processo del programma. In tal caso, emetti un semplice file barra progressiva attesa eseguita con il comando Custodie.

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

raccomandazione:

Pianifica o pensa! Qual è il primo? o Cos'è più importante?

Senza dubbio, quando iniziamo a programmare, la prima cosa che dovremmo imparare sono algoritmi o diagrammi di flusso come basi teoriche per apprendere la logica e la matematica per aumentare il nostro ragionamento logico-matematico, tuttavia, questa base è sufficiente o adeguata per iniziare a programmare . Capire che Impara a programmare, non è sufficiente, è necessario Impara a pensare.

IN QUALE LINGUA DI PROGRAMMAZIONE DEVO INIZIARE A RAGGIUNGERE PER IMPARARE RAPIDAMENTE A PROGRAMMARE?

Questa è sicuramente una domanda d'obbligo che tutti ci poniamo quando iniziamo nel meraviglioso mondo della programmazione. Ma non è la prima domanda corretta che dovremmo porci, ma:

HO LA CAPACITÀ ANALITICA NECESSARIA PER ANALIZZARE UN PROBLEMA, ESTRARRE I SUOI ​​ELEMENTI E VISUALIZZARE UNA RISPOSTA?

E certamente imparare a programmare in una qualsiasi delle lingue più comuni o potenti ha molti innegabili vantaggi. Poiché ci fornisce gli strumenti necessari per sviluppare le nostre applicazioni, ci aiuta a localizzare i problemi nei dispositivi tecnologici e ci apre le porte nel mercato del lavoro, ma la programmazione è solo una piccola parte dell'informatica.

Mentre Programmare o scrivere codice consiste nell'insegnare a un computer (tramite un'applicazione, un software o un sistema) a eseguire una determinata operazione, dopo a Opzione X eseguita da un operatore o da un X evento da o all'interno dello stesso Hardware o Software che lo supporta; I principi dell'informatica (informatica / sistemi) ci insegnano capacità di ragionamento e logica utili in settori diversi dalla tecnologia. L'informatica, in sostanza, insegna come elaborare e rappresentare le informazioni.

Pertanto, considero questo il modo più appropriato di Impara a programmare.

Spiego, prendendo come esempio, quest'altro post chiamato Non imparare a programmare. Impara a pensare » de Evgenij Brikman, dove questo ingegnere ci espone brevemente la differenza tra saper programmare e saper pensare come un informatico con questa analogia:

Per quanto onnipresente sia una tecnologia, questo non ci obbliga a impararla quando la studiamo in un centro di insegnamento. Ad esempio, potremmo prendere che quasi chiunque ad un certo punto della vita abbia mai volato su un aereo, ma da lì al conseguimento della licenza di pilota, c'è una strada molto lunga da fare, che generalmente non fa parte del studi formali di una persona, ma studi molto particolari su un'area specifica.

Spiegato in modo più dettagliato, ciò significa che la conoscenza che chiunque può avere su come funzionano gli aeroplani fondamentalmente molti di noi hanno dall'istruzione secondaria e universitaria o in qualsiasi carriera tecnica (ingegneria), come fisica e matematica che ci aiutano a capire come le forze presenti in volo, ed elementi esterni come gravità, pressione atmosferica, velocità, attrito o portanza. E proprio come la biologia ci aiuta a capire come si comporta un essere umano all'altezza X, o come è influenzato dalla mancanza di ossigeno e dal freddo estremo. O la storia che ci permette di conoscere il processo che ha dato origine a come sono stati creati gli aeroplani e quale ruolo giocano nei trasporti e nel commercio. Tutte queste conoscenze acquisite insieme in un centro di insegnamento, da varie aree di conoscenza, ci forniscono un'idea generale di cosa sia un aeroplano e come funzioni. Le materie generali ci aiutano a comprendere un'ampia varietà di problemi, incluso il modo in cui volano gli aeroplani. Qualcosa di molto diverso da una materia specialistica che ti insegna solo a far funzionare una di quelle macchine, un tipo di aeroplano. Pertanto, per lo stesso motivo, dovremmo concentrarci sullo studio dell'informatica e non solo sulla programmazione. Poiché mentre l'informatica ci insegna a pensare globalmente in senso generale (sistemico), la programmazione è solo uno strumento che ci permette di tradurre un'idea o un problema Y attraverso un codice X, precedentemente analizzato (correttamente o non correttamente).

Questo e molti altri punti di vista hanno contribuito da Evgenij Brikman nel suo post su cosa Pianificare è solo una parte di una più ampia conoscenza incorporata nel Scienza del computer, che sono essenziali per ogni programmatore.

Infine, ricorda di progredire in modo autodidatta con l'apprendimento dei comandi più importanti di GNU / Linux per continuare ad avanzare nella conoscenza che useranno in seguito e che tutto ciò che è stato presentato qui sullo sviluppo di alcuni modulo, funzione, variabile, comando o azione in generale può essere eseguito in modi diversi o metodi alternativi, diversi da quelli qui descritti.

Di seguito a Screencast realizzato da me, dove puoi vedere come viene eseguito questo modulo, moduli precedenti o successivi da insegnare, in modo da poter vedere il potenziale dello Shell Scripting a livello medio (Non avanzato):

ScreenCast di test LPI-SB8

(LINUX POST INSTALL - SCRIPT BICENTENARIO 8.0.0) - Parte 2


Lascia un tuo commento

L'indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati con *

*

*

  1. Responsabile dei dati: Miguel Ángel Gatón
  2. Scopo dei dati: controllo SPAM, gestione commenti.
  3. Legittimazione: il tuo consenso
  4. Comunicazione dei dati: I dati non saranno oggetto di comunicazione a terzi se non per obbligo di legge.
  5. Archiviazione dati: database ospitato da Occentus Networks (UE)
  6. Diritti: in qualsiasi momento puoi limitare, recuperare ed eliminare le tue informazioni.

  1.   Un altro che stava passando suddetto

    Avere se l'ho capito bene. Chiedi all'utente di inserire il proprio nome utente ... bene. E dopo aver inserito la password ... e si scopre che la password è "lpi * sb8" ... e che è "hardcoded" nello script.

    Se l'utente ha accesso in lettura allo script ... bingo !! ... sa già quale nome utente e password deve inserire !!!

    Non so se ho commesso un errore su qualcosa ... ma se è così, è molto pericoloso ...

  2.   Ing. José Albert suddetto

    Vero! Ho dato un metodo adesso, chiunque abbia quell'innata curiosità che caratterizza il genere umano deve cercarne la perfezione o il rafforzamento nelle linee di sicurezza.