Vytvorte si program krok za krokom pomocou programu Shell Scripting - časť 5

V predchádzajúcich publikáciách tohto kola tzv «Vytvorte si program krok za krokom pomocou programu Shell Scripting» Už sme sa zaoberali implementáciou nasledujúcich modulov:

Shell skriptovanie

Teraz v tejto novej publikácii uvidíme, ako implementovať:

MODUL POVOLENIA UŽÍVATEĽA S HESLOM

Ktorý by mal byť modul (časť) vášho programu ktorý vám umožní zabezpečiť, aby operácie určené pre váš program mohli vykonávať iba používatelia alebo používatelia, ktorí boli predtým definovaní na použitie. Môže alebo nemusí obsahovať heslo pre uvedených oprávnených používateľov. V takom prípade preskúmame jeden s overením používateľského mena a hesla.

Ja osobne pridávam nasledujúce riadky na vytvorenie tohto modulu:

Pod kódom:


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

Ako vidíte, tento modul najskôr nakonfiguruje vaše terminálovú obrazovku na modré pozadie pre lepšie vizuálne ocenenie používateľa, potom vydá sluchové správy s hovoriť y vizuál s minúť y Dialóg. Potom pomocou slučky pomocou príkazu kým potvrdzuje, že hodnota zadaná pre užívateľské meno byť porovnaný s platná hodnota používateľa predtým definované, čo dáva používateľovi možnosť správne ukončiť program napísaním slova CHOĎ VON. Ak je overenie používateľa úspešné, vykonajte rovnaký postup s heslom. V prípade úspechu bude ukončené overenie používateľa a hesla pomocou a jednoduché menu vyrobené v Dialóg otázka, či si používateľ X želá pokračovať v procese programu alebo nie. Ak je to tak, vydajte jednoduchý progresívna lišta čakanie hotové s príkazom puzdro.

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

odporúčanie:

Naplánujte alebo premýšľajte! Čo je prvé? o Čo je dôležitejšie?

Bezpochyby, keď začneme programovať, prvou vecou, ​​ktorú by sme sa mali naučiť, sú algoritmy alebo vývojové diagramy ako teoretické základy na učenie logiky a matematiky na zvýšenie logicko-matematického uvažovania, avšak táto základňa je dostatočná alebo adekvátna na začatie programovania. . Pochop to Naučte sa programovať, to nestačí, je to nevyhnutné Naučte sa myslieť.

V KTOROM PROGRAMOVACOM JAZYKU MUSÍM ZAČAŤ OBJEDNÁVAŤ, ABY SOM SA MOHOL SPRÁVNE NAUČIŤ NA PROGRAM?

Toto je určite povinná otázka, ktorú si všetci kladieme, keď začíname v úžasnom svete programovania. Nie je to však prvá správna otázka, ktorú by sme si mali položiť, ale:

MÁM ANALYTICKÚ KAPACITU POTREBNÚ ANALÝZU PROBLÉMU, VYŤAHOVAŤ JEJ PRVKY A ZOBRAZIŤ ODPOVEĎ?

Naučiť sa programovať v ktoromkoľvek z najbežnejších alebo najsilnejších jazykov má určite veľa nepopierateľných výhod. Pretože nám poskytuje potrebné nástroje na vývoj našich vlastných aplikácií, pomáha nám lokalizovať problémy v technologických zariadeniach a otvára nám dvere na trhu práce, ale programovanie je iba malou časťou počítačovej vedy.

Kým Naprogramujte alebo napíšte kód spočíva vo výučbe počítača (prostredníctvom aplikácie, softvéru alebo systému) vykonania určitej operácie, po a Možnosť X vykonáva operátor alebo a Udalosť X rovnakým hardvérom alebo softvérom, ktorý ich podporuje; Princípy počítačovej vedy (informatika / systémy) učia nás rozumovým a logickým schopnostiam, ktoré sú užitočné v iných oblastiach ako v oblasti technológií. Počítačová veda v podstate učí, ako spracovávať a reprezentovať informácie.

Preto to považujem za najvhodnejší spôsob Naučte sa programovať.

Vysvetľujem a beriem ako príklad tento ďalší príspevok s názvom Naučte sa kódovať. Naučte sa myslieť » de Jevgenij Brikman, kde tento inžinier sumarizuje rozdiel medzi umením programovať a umením myslieť ako počítačový vedec podľa tejto analógie:

Aj keď je technológia všadeprítomná, nenúti nás ju učiť sa, keď ju študujeme vo výučbovom stredisku. Ako príklad by sme mohli uviesť, že takmer každý niekedy v živote letel v lietadle, ale odtiaľ k dosiahnutiu pilotného preukazu je ešte veľmi dlhá cesta, ktorá vo všeobecnosti nie je súčasťou formálne štúdie o osobe, ale veľmi konkrétne štúdie o konkrétnej oblasti.

Podrobnejšie vysvetlenie znamená, že vedomosti, ktoré môže mať ktokoľvek o fungovaní lietadiel, majú v podstate mnohí z nás zo stredoškolského a vysokoškolského vzdelania alebo z akejkoľvek technickej kariéry (strojárstva), ako je fyzika a matematika, ktoré nám pomáhajú pochopiť, ako pôsobia sily počas letu a vonkajšie prvky, ako je gravitácia, atmosférický tlak, rýchlosť, trenie alebo zdvih. Rovnako ako biológia pomáha pochopiť, ako sa ľudská bytosť správa vo výške X, alebo ako na ňu vplýva nedostatok kyslíka a extrémne chladno. Alebo príbeh, ktorý nám umožňuje spoznať proces, ktorý viedol k tomu, ako boli lietadlá vyrobené a akú úlohu hrajú v doprave a obchode. Všetky tieto vedomosti získané spoločne vo výučbovom stredisku z rôznych oblastí vedomostí nám poskytujú všeobecnú predstavu o tom, čo je lietadlo a ako funguje. Všeobecné predmety nám pomáhajú pochopiť širokú škálu problémov vrátane toho, ako lietajú lietadlá. Niečo veľmi odlišné od špecializovaného predmetu, ktorý vás naučí obsluhovať iba jeden z týchto strojov, typ lietadla. Z rovnakého dôvodu by sme sa preto mali zamerať na štúdium informatiky, nielen na programovanie. Pretože zatiaľ čo nás informatika učí globálne myslieť vo všeobecnom (systémovom) zmysle, programovanie je iba nástrojom, ktorý nám umožňuje previesť myšlienku alebo problém Y prostredníctvom kódu X, ktorý bol predtým analyzovaný (správne alebo nesprávne).

Toto a mnoho ďalších hľadísk prispelo Jevgenij Brikman vo svojom príspevku o čom program je to iba časť širších poznatkov zakotvených v rámci Počítačová veda, ktoré sú nevyhnutné pre každého programátora.

Na záver nezabudnite pokročiť samouk pri učení sa o najdôležitejších príkazoch GNU / Linux pokračovať v rozširovaní vedomostí, ktoré neskôr použijú, a že všetko, čo sa tu uvádza o vývoji niektorých modul, funkcia, premenná, príkaz alebo akcia vo všeobecnosti to môže byť vykonané rôznymi spôsobmi alebo alternatívnymi metódami, odlišnými od tých, ktoré sú tu opísané.

Pod a Screencast vyrobený mnou, kde môžete vidieť, ako sa tento modul vykonáva, ako sa učia predchádzajúce alebo neskoršie moduly, aby ste videli potenciál Shell Scripting na strednej úrovni (nie je pokročilý):

Testovacia obrazovka LPI-SB8

(LINUX POST INŠTALÁCIA - BICENTENÁLNE SCRIPT 8.0.0) - 2. časť


Zanechajte svoj komentár

Vaša e-mailová adresa nebude zverejnená. Povinné položky sú označené *

*

*

  1. Zodpovedný za údaje: Miguel Ángel Gatón
  2. Účel údajov: Kontrolný SPAM, správa komentárov.
  3. Legitimácia: Váš súhlas
  4. Oznamovanie údajov: Údaje nebudú poskytnuté tretím stranám, iba ak to vyplýva zo zákona.
  5. Ukladanie dát: Databáza hostená spoločnosťou Occentus Networks (EU)
  6. Práva: Svoje údaje môžete kedykoľvek obmedziť, obnoviť a vymazať.

  1.   Ďalšia, ktorá prechádzala dijo

    Mať, ak som to správne pochopil. Požiadate používateľa, aby zadal svoje používateľské meno ... fajn. A po zadaní hesla ... a ukáže sa, že heslo je „lpi * sb8“ ... a že je v skripte „napevno“.

    Ak má používateľ prístup na čítanie skriptu ... bingo !! ... už vie, aké používateľské meno a heslo musí zadať !!!

    Neviem, či som v niečom urobil chybu ... ale ak áno, je to veľmi nebezpečné ...

  2.   Ing.Jose Albert dijo

    Pravda! Teraz som dal metódu, každý, kto má vrodenú zvedavosť, ktorá charakterizuje ľudskú rasu, musí hľadať svoju dokonalosť alebo posilnenie v bezpečnostných líniách.