Buuin ang iyong programa nang sunud-sunod gamit ang Shell Scripting - Bahagi 5

Sa nakaraang mga publication ng pag-ikot na ito na tinatawag na «Buuin ang iyong programa nang sunud-sunod gamit ang Shell Scripting» Natakpan na namin kung paano ipatupad ang mga sumusunod na module:

Scripting ng Shell

Ngayon sa bagong publication na ito makikita natin kung paano ipatupad ang isang:

Modyul ng Awtorisasyon ng Gumagamit na MAY PASSWORD

Alin ang dapat na module (seksyon) ng iyong programa na nagbibigay-daan sa iyo upang matiyak na ang gumagamit o mga gumagamit lamang na naunang natukoy upang magamit ito ang maaaring magpatupad ng mga pagpapatakbo na itinalaga para sa iyong programa. Maaari itong isama o hindi maaaring magsama ng isang password para sa nasabing mga awtorisadong gumagamit. Sa kasong ito, susuriin namin ang isa na may pagpapatunay ng username at password.

Personal kong idinagdag ang mga sumusunod na linya upang likhain ang modyul na ito:

Sa ibaba ng code:


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

Tulad ng nakikita mo, ang module na ito ang unang nag-configure ng iyong terminal screen sa asul na background para sa mas mahusay na pagpapahalaga sa visual ng gumagamit, pagkatapos ay nagpapalabas mga mensahe sa pandinig sa magsalita y biswal sa miss y Pag-uusap. Pagkatapos sa pamamagitan ng isang loop gamit ang utos hanggang nagpapatunay na ang halagang ipinasok para sa username maikumpara sa ang wastong (mga) halaga ng gumagamit dati nang natukoy, na nagbibigay sa gumagamit ng posibilidad na isara nang tama ang programa sa pamamagitan ng pagta-type ng salita LUMABAS ka. Kung matagumpay ang pagpapatunay ng gumagamit, magpatuloy upang isakatuparan ang parehong pamamaraan sa password. Upang tapusin ang pagtatapos kung sakaling matagumpay ang pagpapatunay ng gumagamit at Password na may a simpleng menu ginawa sa Pag-uusap na tinatanong kung nais ng User X na ipagpatuloy ang pagpapatuloy ng proseso ng programa o hindi. Kung gayon, maglabas ng isang simple progresibong bar naghihintay tapos sa utos kaso.

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

Rekomendasyon:

Mag-iskedyul o mag-isip! Ano muna o Ano ang mas mahalaga?

Nang walang pag-aalinlangan, kapag nagsimula kaming mag-program, ang unang bagay na dapat nating malaman ay ang mga algorithm o daloy ng mga diagram bilang mga base na panteorya upang malaman ang lohika at matematika upang madagdagan ang aming pangangatuwirang lohikal-matematika, subalit, ang batayang ito ay sapat o sapat upang simulan ang pag-program . Intindihin mo yan Alamin sa Program, ito ay hindi sapat, kinakailangan Matutong mag-isip.

SAAN SA PALARO NG WIKA ANG DAPAT AKONG MAGSIMULANG makamit ang RAPIDLY LEARNING TO PROGRAM?

Ito ay tiyak na isang sapilitan na tanong na tinanong nating lahat sa ating sarili kapag nagsimula tayo sa kahanga-hangang mundo ng pagprograma. Ngunit hindi ito ang unang tamang tanong na dapat nating tanungin ang ating sarili, ngunit:

MAYROON BA AKONG ANALYTICAL CAPACITY NA KAILANGAN SA PAGSUSURI NG PROBLEMA, I-EXTRACT ANG MGA ELEMENTO AT TINGNAN ANG RESPONSE?

At tiyak na ang pag-aaral na mag-program sa alinman sa mga pinakakaraniwan o makapangyarihang wika ay maraming hindi maikakaila na mga benepisyo. Dahil nagbibigay ito sa amin ng mga kinakailangang tool upang makabuo ng aming sariling mga application, makakatulong ito sa amin na makahanap ng mga problema sa mga teknolohikal na aparato, at binubuksan nito ang mga pintuan para sa amin sa job market, ngunit ang programa ay isang maliit na bahagi lamang ng agham sa kompyuter.

Habang Program o sumulat ng code binubuo ng pagtuturo sa isang computer (sa pamamagitan ng isang application, software o system) upang magsagawa ng isang tiyak na operasyon, pagkatapos ng a Pagpipilian X ginanap ng isang operator o a Kaganapan X ng o sa loob ng parehong Hardware o Software na sumusuporta dito; Ang mga prinsipyo ng Computer Science (Informatics / Systems) tinuturo nila sa amin ang mga kasanayan sa pangangatuwiran at lohika na kapaki-pakinabang sa mga lugar na iba sa teknolohiya. Ang agham ng computer, sa kakanyahan, ay nagtuturo kung paano magproseso at kumatawan sa impormasyon.

Samakatuwid, isinasaalang-alang ko ito na pinaka-angkop na paraan ng Alamin sa programa.

Ipinapaliwanag ko, ginagawa bilang isang halimbawa, ang iba pang post na ito ay tinawag Huwag matutong mag-code. Matutong mag-isip » de Yevgeny Brikman, kung saan binubuod ng Engineer na ito ang pagkakaiba sa pagitan ng pag-alam kung paano mag-program, at pag-alam kung paano mag-isip tulad ng isang computer scientist na may ganitong pagkakatulad:

Tulad ng nasa lahat ng pook ng isang teknolohiya, hindi ito ginagawa sa amin na malaman ito kapag pinag-aaralan namin ito sa isang sentro ng pagtuturo. Bilang isang halimbawa, maaari nating kunin ang halos sinuman sa ilang mga punto ng buhay na lumipad sa isang eroplano, ngunit mula doon hanggang sa makamit ang isang lisensya ng piloto, may napakahabang paraan upang mapunta, na sa pangkalahatan ay hindi bahagi ng pormal na pag-aaral ng isang tao, ngunit napaka partikular na pag-aaral sa isang tukoy na lugar.

Ipinaliwanag nang mas detalyado, nangangahulugan ito na ang kaalaman na maaaring magkaroon ang sinuman tungkol sa kung paano gumagana ang mga eroplano karaniwang marami sa atin ang mayroon mula sa sekondarya at unibersidad na edukasyon o sa anumang teknikal na karera (engineering), tulad ng pisika at matematika na makakatulong sa amin upang maunawaan kung paano ang mga puwersa naroroon sa paglipad, at mga panlabas na elemento tulad ng gravity, presyon ng atmospera, bilis, alitan o pag-angat. At tulad ng pagtulong sa atin ng biology na maunawaan kung paano kumikilos ang isang tao sa taas na X, o kung paano ito apektado ng kawalan ng oxygen at matinding lamig. O ang kwentong nagpapahintulot sa amin na malaman ang proseso na nagbunga kung paano nilikha ang mga eroplano, at kung ano ang papel na ginagampanan nila sa transportasyon at komersyo. Ang lahat ng kaalamang ito na magkakasamang nakuha sa isang sentro ng pagtuturo, mula sa iba't ibang mga larangan ng kaalaman, ay nagbibigay sa amin ng isang pangkalahatang ideya kung ano ang isang eroplano at kung paano ito gumagana. Tinutulungan kami ng mga pangkalahatang paksa na maunawaan ang iba't ibang mga problema, kabilang ang kung paano lumilipad ang mga eroplano. Isang bagay na ibang-iba sa isang dalubhasang paksa na nagtuturo lamang sa iyo na patakbuhin ang isa sa mga machine na iyon, isang uri ng eroplano. Samakatuwid, para sa parehong dahilan, dapat tayong tumuon sa pag-aaral ng Computer Science, at hindi lamang sa pagprograma. Dahil habang ang Computer Science ay nagtuturo sa atin sa buong mundo na mag-isip sa isang pangkalahatang (systemic) na kahulugan, ang programa ay isang tool lamang na nagbibigay-daan sa amin upang isalin ang isang ideya o problema Y sa pamamagitan ng isang code X, na dating nasuri (tama o hindi tama).

Ito at maraming iba pang mga pananaw na naiambag ng Yevgeny Brikman sa post niya tungkol sa kung ano Iskedyul bahagi lamang ito ng isang mas malawak na kaalaman na naka-embed sa loob ng Computer science, na kung saan ay mahalaga para sa bawat programmer.

Panghuli, alalahanin ang pag-unlad sa isang itinuro sa sarili na paraan sa pag-aaral tungkol sa pinakamahalagang utos ng GNU / Linux upang magpatuloy sa pagsulong ng kaalaman na gagamitin nila sa paglaon, at lahat ng ipinakita dito tungkol sa pag-unlad ng ilan module, pagpapaandar, variable, utos o pagkilos sa pangkalahatan maaari itong isagawa sa iba't ibang paraan o mga kahaliling pamamaraan, naiiba sa mga inilalarawan dito.

Sa ibaba a Screencast na ginawa ko, kung saan maaari mong makita kung paano isinasagawa ang modyul na ito, bago o huli na mga module na ituturo, upang makita mo ang potensyal ng Shell Scripting sa isang medium level (Hindi advanced):

Screen ng Pagsubok sa LPI-SB8

(LINUX POST INSTALL - BICENTENNIAL SCRIPT 8.0.0) - Bahagi 2


Iwanan ang iyong puna

Ang iyong email address ay hindi nai-publish. Mga kinakailangang patlang ay minarkahan ng *

*

*

  1. Responsable para sa data: Miguel Ángel Gatón
  2. Layunin ng data: Kontrolin ang SPAM, pamamahala ng komento.
  3. Legitimation: Ang iyong pahintulot
  4. Komunikasyon ng data: Ang data ay hindi maiparating sa mga third party maliban sa ligal na obligasyon.
  5. Imbakan ng data: Ang database na naka-host ng Occentus Networks (EU)
  6. Mga Karapatan: Sa anumang oras maaari mong limitahan, mabawi at tanggalin ang iyong impormasyon.

  1.   Isa pa na dumadaan dijo

    Na magkaroon kung naiintindihan ko ito nang tama. Hihilingin mo sa gumagamit na ipasok ang kanilang username ... mabuti. At pagkatapos mong ipasok ang iyong password ... at lumalabas na ang password ay "lpi * sb8" ... at ito ay "hardcoded" sa script.

    Kung nabasa ng gumagamit ang pag-access sa script ... bingo !! ... alam na nila kung aling username at password ang kailangan nilang ipasok !!!

    Hindi ko alam kung nagkamali ako tungkol sa isang bagay ... ngunit kung gayon, napaka hindi ligtas ...

  2.   Ing.Jose Albert dijo

    Totoo! Nagbigay ako ng isang pamamaraan ngayon, ang bawat isa na may likas na pag-usisa na naglalarawan sa sangkatauhan ay dapat humingi ng pagiging perpekto o pagpapalakas sa mga linya ng seguridad.