Bygg ditt program steg för steg med hjälp av Shell Scripting - Del 5

I tidigare publikationer av denna runda kallas «Bygg ditt program steg för steg med hjälp av Shell Scripting» Vi har redan beskrivit hur man implementerar följande moduler:

Shell-skriptNu i denna nya publikation kommer vi att se hur man implementerar en:

ANVÄNDARGODKÄNNANDEMODUL MED LÖSENORD

Vilken ska vara modulen (avsnittet) i ditt program som låter dig se till att endast användaren eller användarna som tidigare definierats för att använda den kan utföra de åtgärder som är avsedda för ditt program. Det kan innehålla eller kanske inte innehålla ett lösenord för nämnda auktoriserade användare. I det här fallet kommer vi att undersöka ett med användarnamn och lösenordsvalidering.

Jag lägger personligen till följande rader för att skapa den här modulen:

Nedanför koden:


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

Som du kan se konfigurerar den här modulen först din terminalskärm till blå bakgrund för en bättre visuell uppskattning av användaren, släpp sedan ut hörselmeddelanden med tala y visuella med missar y dialogruta. Sedan genom en slinga med kommandot tills validerar att värdet som anges för användarnamn jämföras med giltigt användarvärde tidigare definierat, vilket ger användaren möjlighet att stänga programmet korrekt genom att skriva ordet GÅ UT. Om användarvalideringen lyckas fortsätter du med samma procedur med lösenordet. För att avsluta avslutningen om du lyckas valideringen av användaren och lösenordet med en enkel meny gjord i dialogruta frågar om användaren X vill fortsätta fortsätta programprocessen eller inte. Om så är fallet, ge ett enkelt progressiv bar väntar på med kommandot Vid.

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

rekommendation:

Schemalägg eller tänk! Vad är först? o Vad är viktigare?

Utan tvekan är det första vi bör lära oss när vi börjar programmera algoritmer eller flödesdiagram som teoretiska baser för att lära oss logik och matematik för att öka vårt logiskt-matematiska resonemang, men detta är tillräcklig eller tillräcklig grund för att starta programmering. Förstår det Lär dig att programmera, det räcker inte, det är nödvändigt Lär dig att tänka.

PÅ VILKET PROGRAMMERINGSPRÅK BÖR JAG BÖRJA FÖRNYA SNART LÄRANDE TILL PROGRAM?

Det här är verkligen en obligatorisk fråga som vi alla ställer oss själva när vi börjar i den underbara världen av programmering. Men det är inte den första rätta frågan som vi bör ställa oss själva, utan:

HAR jag den analytiska kapaciteten som behövs för att analysera ett problem, extrahera dess element och se ett svar?

Och att lära sig programmera på något av de vanligaste eller mest kraftfulla språken har verkligen många obestridliga fördelar. Eftersom det ger oss de nödvändiga verktygen för att utveckla våra egna applikationer, hjälper det oss att hitta problem i tekniska enheter, och det öppnar dörrar för oss på arbetsmarknaden, men programmering är bara en liten del av datavetenskap.

Medan Programmera eller skriv kod består av att lära en dator (genom en applikation, programvara eller ett system) att utföra en viss operation, efter en Alternativ X utförs av en operatör eller en Händelse X av eller inom samma hårdvara eller programvara som stöder den; Principerna för datavetenskap (informatik / system) de lär oss resonemang och logiska färdigheter som är användbara inom andra områden än teknik. Datavetenskap lär i huvudsak hur man bearbetar och representerar information.

Därför anser jag att detta är det mest lämpliga sättet att Lär dig att programmera.

Jag förklarar, som ett exempel, detta andra inlägg som heter Lär dig inte att koda. Lär dig att tänka » de Jevgenij Brikman, där denna ingenjör sammanfattar skillnaden mellan att veta hur man programmerar och att veta hur man tänker som en datavetare med denna analogi:

Hur allmänt som helst teknik är, det får oss inte att lära oss det när vi studerar det i ett inlärningscenter. Som ett exempel kan vi ta att nästan vem som helst någon gång i livet någonsin har flugit i ett flygplan, men därifrån för att uppnå ett pilotlicens finns det en väldigt lång väg att gå, vilket i allmänhet inte ingår i de formella studierna av en person, men mycket speciella studier på ett visst område.

Förklaras mer detaljerat betyder detta att kunskapen som alla kan ha om hur flygplan fungerar i princip många av oss har från gymnasieutbildning och universitetsutbildning eller i någon teknisk karriär (teknik), såsom fysik och matematik som hjälper oss att förstå hur krafterna närvarande i flygning och yttre element såsom gravitation, atmosfärstryck, hastighet, friktion eller lyft. Och precis som biologin hjälper oss att förstå hur en människa beter sig på X-höjd, eller hur den påverkas av syrebrist och extrem kyla. Eller historien som låter oss känna till den process som gav upphov till hur flygplan skapades och vilken roll de spelar inom transport och handel. All denna kunskap som samlas in i ett undervisningscenter, från olika kunskapsområden, ger oss en allmän uppfattning om vad ett flygplan är och hur det fungerar. Allmänna ämnen hjälper oss att förstå en mängd olika problem, inklusive hur flygplan flyger. Något helt annat än ett specialiserat ämne som bara lär dig att använda en av dessa maskiner, en typ av flygplan. Av samma anledning bör vi därför fokusera på att studera datavetenskap och inte bara programmera. Eftersom datavetenskap lär oss globalt att tänka i en allmän (systemisk) mening, är programmering bara ett verktyg som gör att vi kan översätta en idé eller ett problem Y genom en kod X, tidigare analyserad (korrekt eller felaktigt).

Detta och många andra synpunkter bidrog med Jevgenij Brikman i sitt inlägg om vad program det är bara en del av en bredare kunskap inbäddad i Datavetenskap, som är nödvändiga för varje programmerare.

Slutligen, kom ihåg att gå vidare på ett självlärt sätt med att lära dig om de viktigaste kommandona för GNU / Linux att fortsätta att utveckla kunskap som de kommer att använda senare, och att allt som presenteras här om utvecklingen av vissa modul, funktion, variabel, kommando eller åtgärd i allmänhet kan det utföras på olika sätt eller alternativa metoder, skiljer sig från de som beskrivs här.

Nedanför en Screencast gjord av mig, där du kan se hur den här modulen körs, tidigare eller senare moduler som ska undervisas, så att du kan se potentialen i Shell Scripting på medelnivå (Ej avancerad):

LPI-SB8 Test ScreenCast

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

 

 


Innehållet i artikeln följer våra principer om redaktionell etik. Klicka på för att rapportera ett fel här.

2 kommentarer, lämna din

Lämna din kommentar

Din e-postadress kommer inte att publiceras.

*

*

  1. Ansvarig för uppgifterna: Miguel Ángel Gatón
  2. Syftet med uppgifterna: Kontrollera skräppost, kommentarhantering.
  3. Legitimering: Ditt samtycke
  4. Kommunikation av uppgifterna: Uppgifterna kommer inte att kommuniceras till tredje part förutom enligt laglig skyldighet.
  5. Datalagring: databas värd för Occentus Networks (EU)
  6. Rättigheter: När som helst kan du begränsa, återställa och radera din information.

  1.   En annan som hände sade

    Har om jag har förstått det rätt. Du ber användaren att ange sitt användarnamn ... bra. Och efter att du har angett ditt lösenord ... och det visar sig att lösenordet är "lpi * sb8" ... och att det är "hårdkodat" i skriptet.

    Om användaren har läsbehörighet till skriptet ... bingo !! ... vet de redan vilket användarnamn och lösenord de måste ange !!!

    Jag vet inte om jag har gjort ett misstag om något ... men i så fall är det väldigt osäkert ...

  2.   Ing. José Albert sade

    Sann! Jag gav en metod nu, var och en med den medfödda nyfikenheten som kännetecknar människan måste söka dess perfektion eller förstärkning i säkerhetslinjerna.