Izgradite svoj program korak po korak koristeći Shell skriptiranje - Dio 5

U prethodnim publikacijama ovog kruga tzv «Izgradite svoj program korak po korak koristeći Shell Scripting» Već smo opisali kako implementirati sljedeće module:

Shell skriptiranje

Sada ćemo u ovoj novoj publikaciji vidjeti kako implementirati:

MODUL OVLAŠTENJA KORISNIKA SA LOZINKOM

Koji bi trebao biti modul (odjeljak) vašeg programa koji vam omogućava da osigurate da samo korisnik ili korisnici koji su prethodno definirani da ga koriste mogu izvršavati operacije određene za vaš program. Može sadržavati ili ne uključivati ​​lozinku za navedene ovlaštene korisnike. U ovom slučaju istražit ćemo onaj s provjerom korisničkog imena i lozinke.

Lično dodajem sljedeće redove za stvaranje ovog modula:

Ispod koda:


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

Kao što vidite, ovaj modul prvo konfigurira vaš ekran terminala na plavu pozadinu for a bolja vizuelna zahvalnost korisnika, a zatim emituje slušne poruke con govoriti y vizuali con odjek y dijalog. Zatim kroz petlju pomoću naredbe do potvrđuje da je vrijednost unesena za korisničko ime biti upoređen sa važeće korisničke vrijednosti prethodno definirano, dajući korisniku mogućnost da pravilno zatvori program upisivanjem riječi IZAČI. Ako je provjera valjanosti korisnika uspješna, nastavite s istim postupkom s lozinkom. Završiti završetak u slučaju uspješne provjere valjanosti korisnika i lozinke pomoću a jednostavan meni made in dijalog pitajući želi li korisnik X nastaviti s nastavkom programskog procesa ili ne. Ako je tako, izdajte jednostavan progresivna traka čekanje završeno sa naredbom slučaj.

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

Preporuka:

Zakažite ili razmislite! Šta je prvo? o Šta je važnije?

Bez sumnje, kada započnemo s programiranjem, prvo što bismo trebali naučiti su algoritmi ili dijagrami toka kao teorijske osnove za učenje logike i matematike za povećanje našeg logičko-matematičkog zaključivanja, međutim, ova osnova je dovoljna ili dovoljna za započinjanje programiranja. Shvati to Naučite programirati, nije dovoljno, potrebno je Nauči razmišljati.

NA KOJEM JEZIKU PROGRAMIRANJA TREBA POČETI POSTIGNUTI BRZO UČENJE U PROGRAMU?

Ovo je sigurno obavezno pitanje koje si svi postavljamo kad krenemo u čudesni svijet programiranja. Ali to nije prvo ispravno pitanje koje bismo si trebali postaviti, već:

IMAM LI ANALITIČKU SPOSOBNOST ZA ANALIZU PROBLEMA, IZVLAČENJE ELEMENTA I POGLEDANJE ODGOVORA?

I svakako učenje programiranja na bilo kojem od najčešćih ili najsnažnijih jezika ima brojne neporecive prednosti. Budući da nam pruža potrebne alate za razvoj vlastitih aplikacija, pomaže nam u pronalaženju problema u tehnološkim uređajima i otvara nam vrata na tržištu rada, ali programiranje je samo mali dio informatike.

Dok Programirajte ili napišite kod sastoji se od podučavanja računara (putem aplikacije, softvera ili sistema) za izvođenje određene operacije, nakon a Opcija X izvodi operater ili a Događaj X od strane istog hardvera ili softvera koji ga podržava; Principi informatike (informatika / sistemi) podučavaju nas vještinama rasuđivanja i logike koje su korisne u drugim područjima osim tehnologije. Računarska nauka u osnovi uči kako se obrađuju i predstavljaju informacije.

Stoga smatram da je ovo najprikladniji način Naučite programirati.

Objašnjavam, uzimajući za primjer, ovaj drugi post Ne naučite kodirati. Naučite razmišljati » de Jevgenij Brikman, gdje ovaj inženjer rezimira razliku između znanja programiranja i znanja razmišljanja poput informatičara s ovom analogijom:

Koliko god tehnologija bila sveprisutna, to nas ne tjera da je učimo kada je proučavamo u nastavnom centru. Kao primjer bismo mogli uzeti da je gotovo bilo tko u nekom trenutku života ikada letio avionom, ali odatle do dobivanja pilotske dozvole, predstoji jako dug put, koji uglavnom nije dio formalnih studija osoba, ali vrlo konkretne studije o određenom području.

Objašnjeno detaljnije, to znači da znanje koje svako može imati o načinu rada aviona u osnovi mnogi od nas imaju iz srednjoškolskog i univerzitetskog obrazovanja ili bilo koje tehničke karijere (inženjering), poput fizike i matematike koja nam pomažu da shvatimo kako sile prisutni u letu i vanjski elementi poput gravitacije, atmosferskog pritiska, brzine, trenja ili dizanja. I kao što nam biologija pomaže da shvatimo kako se ljudsko biće ponaša na visini X ili kako na njega utječe nedostatak kisika i velika hladnoća. Ili priča koja nam omogućava da znamo proces koji je doveo do toga kako su avioni stvoreni i koju ulogu imaju u transportu i trgovini. Sva ova znanja stečena u nastavnom centru iz različitih područja znanja pružaju nam opštu predstavu o tome šta je avion i kako on funkcioniše. Opšti predmeti pomažu nam da shvatimo širok spektar problema, uključujući način na koji avioni lete. Nešto vrlo različito od specijalizovane teme koja vas samo uči da upravljate jednom od tih mašina, tipom aviona. Stoga bismo se iz istog razloga trebali usredotočiti na proučavanje informatike, a ne samo na programiranje. Iako nas računarstvo uči globalno da razmišljamo u općenitom (sistemskom) smislu, programiranje je samo alat koji nam omogućuje prevođenje ideje ili problema Y kroz kod X, prethodno analiziran (ispravno ili netačno).

Ovom i mnogim drugim gledištima doprinio je Jevgenij Brikman u svom postu o čemu Raspored to je samo dio šireg znanja ugrađenog u Računarske nauke, koji su neophodni za svakog programera.

Konačno, ne zaboravite napredovati na samouk način učeći o najvažnijim naredbama GNU / Linux da nastave unapređivati ​​znanje koje će kasnije koristiti i da je sve ovdje predstavljeno o razvoju nekih modul, funkcija, varijabla, naredba ili radnja općenito se može provesti na različite načine ili alternativne metode, različite od ovdje opisanih.

Ispod a Screencast sam napravio ja, gdje možete vidjeti kako se ovaj modul izvodi, prethodni ili noviji moduli koje treba podučavati, tako da možete vidjeti potencijal Shell skriptiranja na srednjem nivou (nije napredni):

LPI-SB8 Test ScreenCast

(LINUX POST INSTALACIJA - SCENARIJ BICENTENARIO 8.0.0) - Dio 2


Ostavite komentar

Vaša e-mail adresa neće biti objavljena. Obavezna polja su označena sa *

*

*

  1. Za podatke odgovoran: Miguel Ángel Gatón
  2. Svrha podataka: Kontrola neželjene pošte, upravljanje komentarima.
  3. Legitimacija: Vaš pristanak
  4. Komunikacija podataka: Podaci se neće dostavljati trećim stranama, osim po zakonskoj obavezi.
  5. Pohrana podataka: Baza podataka koju hostuje Occentus Networks (EU)
  6. Prava: U bilo kojem trenutku možete ograničiti, oporaviti i izbrisati svoje podatke.

  1.   Još jedan koji je prolazio rekao je

    Da, ako sam dobro razumeo. Tražite od korisnika da unese svoje korisničko ime ... u redu. A nakon što unesete lozinku ... i ispostavi se da je lozinka "lpi * sb8" ... i da je "skriptirana" u skripti.

    Ako je korisnik imao pristup čitanju skripte ... bingo !! ... već zna koje korisničko ime i lozinku mora unijeti !!!

    Ne znam jesam li pogriješio u nečemu ... ali ako je tako, to je vrlo nesigurno ...

  2.   ing. Jose Albert rekao je

    Tačno! Dao sam metodu sada, svi s onom urođenom znatiželjom koja karakterizira ljudsku rasu moraju svoje savršenstvo ili jačanje potražiti u sigurnosnim linijama.