Construiți-vă programul pas cu pas folosind Shell Scripting - Partea 5

În publicațiile anterioare ale acestei runde numite „Construiți-vă programul pas cu pas folosind Shell Scripting” Am abordat deja cum să implementăm următoarele module:

shell a Scripting

Acum, în această nouă publicație, vom vedea cum să implementăm:

MODULUL DE AUTORIZARE A UTILIZATORULUI CU PAROLĂ

Care ar trebui să fie modulul (secțiunea) programului dvs care vă permite să vă asigurați că numai utilizatorul(ii) definit(i) anterior să-l folosească pot executa operațiunile desemnate pentru programul dumneavoastră. Poate include sau nu o parolă pentru utilizatorii autorizați menționați. În acest caz, vom explora unul cu validarea numelui de utilizator și a parolei.

Personal adaug următoarele linii pentru a crea acest modul:

Sub cod:


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

După cum puteți vedea, acest modul vă configurează mai întâi ecran terminal pe fundal albastru pentru unul o mai bună apreciere vizuală a utilizatorului, apoi iesiri mesaje auditive cu vorbi y vizuale cu ecou y Dialog. Apoi buclă folosind comanda până la validează că valoarea introdusă pentru nume utilizator fi comparat cu valorile de utilizator valide definite anterior, oferind utilizatorului posibilitatea de a închide corect programul prin tastarea cuvântului IEȘI. Dacă validarea utilizatorului are succes, aceeași procedură trebuie efectuată cu parola. Pentru a finaliza, dacă a avut succes, validarea utilizatorului și a parolei se finalizează cu a meniu simplu făcut în Dialog întrebând dacă Utilizatorul X dorește să continue procesul de program sau nu. Dacă da, emite un simplu bară progresivă așteptare terminată cu comanda caz.

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

recomandare:

Programeaza sau gandeste! Ce vine mai întâi? o Ce este mai important?

Fără îndoială, atunci când începem să programăm, primul lucru pe care ar trebui să-l învățăm sunt algoritmii sau diagramele de flux ca baze teoretice pentru a învăța logica și matematica pentru a ne crește raționamentul logico-matematic, totuși, este această bază suficientă sau adecvată pentru a începe programarea. Ințelege asta Învață să programezi, Nu este suficient, este necesar Învață să Gândești.

ÎN CE LIMBA DE PROGRAMARE TREBUIE SĂ ÎNCEP PENTRU A ÎNVĂȚ RAPID CUM SĂ PROGRAMEZ?

Aceasta este cu siguranță o întrebare obligatorie pe care ne-o punem cu toții atunci când începem în lumea minunată a programării. Dar nu este prima întrebare corectă pe care ar trebui să ne-o punem, ci mai degrabă:

AM ABILITĂȚILE ANALITICE NECESARE PENTRU A ANALIZA O PROBLEMĂ, ÎI EXTRAGI ELEMENTELE ȘI A VIZUALIZĂ UN RĂSPUNS?

Și cu siguranță învățarea programării în oricare dintre cele mai comune sau puternice limbi are multe beneficii incontestabile. Deoarece ne oferă instrumentele necesare pentru a ne dezvolta propriile aplicații, ne ajută să găsim probleme în dispozitivele tehnologice și ne deschide porți pe piața muncii, dar programarea este doar o mică parte a informaticii.

în timp ce Programați sau scrieți cod Constă în predarea unui calculator (printr-o aplicație, software sau sistem) să efectueze o anumită operație, după a Opțiune efectuat de un operator sau a Eveniment de către sau în cadrul aceluiași Hardware sau Software care îl acceptă; Principiile Informaticii (Informatica/Sisteme) Ele ne învață raționament și abilități logice care sunt utile în alte domenii decât tehnologia. Informatica, in esenta, invata cum sa procesezi si sa reprezinte informatia.

Prin urmare, consider că aceasta este cea mai potrivită modalitate de a face acest lucru Învață să programezi.

Vă explic, luând ca exemplu, această altă postare numită „Nu învățați să codificați. Învață să gândești» de Evgheni Brikman, unde acest inginer explică pe scurt diferența dintre a ști să programezi și a ști să gândești ca un informatician cu această analogie:

Indiferent cât de omniprezentă este o tehnologie, asta nu înseamnă că o învățăm atunci când o studiem într-un Centru de predare. Ca exemplu, am putea lua că aproape orice persoană, la un moment dat în viață, a zburat cu un avion, dar de acolo până la obținerea licenței de pilot, există un drum foarte lung de parcurs, care în general nu face parte din studiile formale. a unei persoane, ci mai degrabă studii foarte particulare despre o anumită zonă.

Explicat mai detaliat, aceasta înseamnă că cunoştinţele pe care oricine le poate avea despre modul în care funcţionează avioanele, mulţi dintre noi le deţin practic din învăţământul secundar şi universitar sau din orice carieră tehnică (inginer), precum fizica şi matematica care ne ajută să înţelegem ca forțele prezente în zbor și elemente externe precum gravitația, presiunea atmosferică, viteza, frecarea sau portanța. Și la fel cum biologia ne ajută să înțelegem cum se comportă o ființă umană la înălțimea X sau cum este afectată de lipsa de oxigen și de frigul extrem. Sau istoria care ne permite să cunoaștem procesul care a dat naștere modului în care au fost create avioanele și ce rol au acestea în transport și comerț. Toate aceste cunoștințe dobândite împreună într-un Centru de Predare, din diverse domenii de cunoaștere, ne oferă o idee generală despre ce este un avion și cum funcționează. Subiectele generale ne ajută să înțelegem o mare varietate de probleme, inclusiv modul în care zboară avioanele. Ceva foarte diferit de o materie de specialitate care te învață doar cum să manevrezi una dintre acele mașini, un tip de avion. Prin urmare, din același motiv, ar trebui să ne concentrăm pe studiul Informaticii, și nu doar pe programare. Întrucât în ​​timp ce Informatica ne învață global să gândim într-un sens general (sistemic), programarea este doar un instrument care ne permite să surprindem, prin codul X, o idee sau problemă Y, analizată anterior (corect sau incorect).

Acesta și multe alte puncte de vedere contribuite de Evgheni Brikman în postarea lui despre program Este doar o parte a cunoștințelor mai largi încorporate în Informatică, care sunt esențiale pentru fiecare programator.

În cele din urmă, amintiți-vă să avansați într-un mod autodidact, învățând despre cele mai importante comenzi ale GNU / Linux pentru a continua să avanseze cunoștințele pe care le vor folosi mai târziu și că tot ce s-a afirmat aici despre dezvoltarea unora modul, funcție, variabilă, comandă sau acțiune În general, se poate face în diferite moduri sau metode alternative, altele decât cele descrise aici.

Sub un Screencast realizat de mine, unde puteți vedea cum este executat acest modul, modulele anterioare sau ulterioare care urmează să fie predate, astfel încât să puteți vedea potențialul Shell Scripting la un nivel mediu (Neavansat):

Test ScreenCast LPI-SB8

(LINUX POST INSTALL - SCRIPT BICENTENAR 8.0.0) - Partea 2


Lasă comentariul tău

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *

*

*

  1. Responsabil pentru date: Miguel Ángel Gatón
  2. Scopul datelor: Control SPAM, gestionarea comentariilor.
  3. Legitimare: consimțământul dvs.
  4. Comunicarea datelor: datele nu vor fi comunicate terților decât prin obligație legală.
  5. Stocarea datelor: bază de date găzduită de Occentus Networks (UE)
  6. Drepturi: în orice moment vă puteți limita, recupera și șterge informațiile.

  1.   Încă unul în trecere el a spus

    Sa vedem daca am inteles bine. Cereți utilizatorului să-și introducă numele de utilizator... bine. Si dupa ce iti introduci parola... si rezulta ca parola este "lpi*sb8"... si ca este "hardcoded" in script.

    Daca utilizatorul are acces la citire la script...bingo!!... stie deja ce username si parola trebuie sa introduca!!!

    Nu știu dacă am greșit cu ceva... dar dacă da, este foarte incert...

  2.   Jose Albert el a spus

    ADEVĂRAT! Am dat o metodă, acum oricine are acea curiozitate înnăscută care caracterizează rasa umană trebuie să caute perfecțiunea sau întărirea ei în domeniile securității.