สร้างโปรแกรมของคุณทีละขั้นตอนโดยใช้ Shell Scripting - ตอนที่ 5

ในสิ่งพิมพ์ก่อนหน้าของรอบนี้เรียกว่า «สร้างโปรแกรมของคุณทีละขั้นตอนโดยใช้ Shell Scripting » เราได้กล่าวถึงวิธีการใช้โมดูลต่อไปนี้แล้ว:

การเขียนสคริปต์เชลล์

ตอนนี้ในสิ่งพิมพ์ใหม่นี้เราจะมาดูวิธีใช้ a:

โมดูลการอนุญาตของผู้ใช้ด้วยรหัสผ่าน

ซึ่งควรเป็นโมดูล (ส่วน) ของโปรแกรมของคุณ ที่ช่วยให้คุณมั่นใจได้ว่าเฉพาะผู้ใช้หรือผู้ใช้ที่กำหนดไว้ก่อนหน้านี้เท่านั้นที่สามารถดำเนินการตามที่กำหนดไว้สำหรับโปรแกรมของคุณ อาจมีหรือไม่มีรหัสผ่านสำหรับผู้ใช้ที่ได้รับอนุญาตดังกล่าว ในกรณีนี้เราจะสำรวจด้วยการตรวจสอบชื่อผู้ใช้และรหัสผ่าน

ฉันเพิ่มบรรทัดต่อไปนี้เป็นการส่วนตัวเพื่อสร้างโมดูลนี้:

ด้านล่างรหัส:


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

อย่างที่คุณเห็นโมดูลนี้จะกำหนดค่าไฟล์ หน้าจอเทอร์มินัลเป็นพื้นหลังสีน้ำเงิน สำหรับหนึ่ง เห็นภาพที่ดีขึ้นของผู้ใช้แล้วส่งเสียง ข้อความเกี่ยวกับการได้ยิน กับ พูด y ภาพ กับ เสียงสะท้อน y บทสนทนา. จากนั้นผ่านลูปโดยใช้คำสั่ง จนกระทั่ง ตรวจสอบว่าค่าที่ป้อนสำหรับ ชื่อผู้ใช้ เทียบกับ ค่าผู้ใช้ที่ถูกต้อง ที่กำหนดไว้ก่อนหน้านี้ทำให้ผู้ใช้สามารถปิดโปรแกรมได้อย่างถูกต้องโดยพิมพ์คำ ออกไป. หากการตรวจสอบความถูกต้องของผู้ใช้สำเร็จให้ดำเนินการตามขั้นตอนเดียวกันกับรหัสผ่าน เพื่อสิ้นสุดการสิ้นสุดในกรณีที่สามารถตรวจสอบความถูกต้องของผู้ใช้และรหัสผ่านได้สำเร็จด้วยก เมนูง่ายๆ ทำใน บทสนทนา ถามว่า User X ต้องการดำเนินการตามกระบวนการของโปรแกรมต่อไปหรือไม่ ถ้าเป็นเช่นนั้นให้ออกง่ายๆ แถบโปรเกรสซีฟ รอให้เสร็จสิ้นด้วยคำสั่ง กรณี.

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

คำแนะนำ:

กำหนดเวลาหรือคิด! อันดับแรกคืออะไร? o อะไรสำคัญกว่ากัน?

ไม่ต้องสงสัยเลยว่าเมื่อเราเริ่มเขียนโปรแกรมสิ่งแรกที่เราควรเรียนรู้คืออัลกอริทึมหรือโฟลว์ไดอะแกรมเป็นฐานทางทฤษฎีในการเรียนรู้ตรรกะและคณิตศาสตร์เพื่อเพิ่มเหตุผลเชิงตรรกะและคณิตศาสตร์ของเราอย่างไรก็ตามนี่เป็นพื้นฐานที่เพียงพอหรือเพียงพอในการเริ่มเขียนโปรแกรม . เข้าใจว่า เรียนรู้การเขียนโปรแกรม มันไม่เพียงพอจำเป็น เรียนรู้ที่จะคิด

ในภาษาการเขียนโปรแกรมใดที่ฉันควรเริ่มต้นเพื่อให้ได้มาซึ่งการเรียนรู้อย่างรวดเร็วในการเขียนโปรแกรม

นี่เป็นคำถามบังคับที่เราทุกคนถามตัวเองเมื่อเริ่มต้นในโลกมหัศจรรย์ของการเขียนโปรแกรม แต่ไม่ใช่คำถามแรกที่ถูกต้องที่เราควรถามตัวเอง แต่:

ฉันมีความสามารถในการวิเคราะห์ที่จำเป็นในการวิเคราะห์ปัญหาสกัดองค์ประกอบและดูการตอบสนองหรือไม่

และแน่นอนว่าการเรียนรู้การเขียนโปรแกรมด้วยภาษาที่ใช้บ่อยที่สุดหรือมีประสิทธิภาพนั้นมีประโยชน์มากมาย เนื่องจากมีเครื่องมือที่จำเป็นในการพัฒนาแอปพลิเคชันของเราเองจึงช่วยให้เราพบปัญหาในอุปกรณ์เทคโนโลยีและเปิดประตูให้เราในตลาดงาน แต่การเขียนโปรแกรมเป็นเพียงส่วนเล็ก ๆ ของวิทยาการคอมพิวเตอร์

ในขณะที่ โปรแกรมหรือเขียนโค้ด ประกอบด้วยการสอนคอมพิวเตอร์ (ผ่านแอพพลิเคชั่นซอฟต์แวร์หรือระบบ) เพื่อดำเนินการเฉพาะหลังจากก ตัวเลือก X ดำเนินการโดยผู้ดำเนินการหรือก เหตุการณ์ X โดยหรือภายในฮาร์ดแวร์หรือซอฟต์แวร์เดียวกันที่รองรับ หลักการของวิทยาการคอมพิวเตอร์ (สารสนเทศ / ระบบ) พวกเขาสอนให้เรารู้ทักษะการใช้เหตุผลและตรรกะที่มีประโยชน์ในด้านอื่น ๆ นอกเหนือจากเทคโนโลยี โดยพื้นฐานแล้ววิทยาศาสตร์คอมพิวเตอร์จะสอนวิธีการประมวลผลและแสดงข้อมูล

ดังนั้นฉันถือว่านี่เป็นวิธีที่เหมาะสมที่สุด เรียนรู้การเขียนโปรแกรม

ฉันอธิบายโดยยกตัวอย่างโพสต์อื่นนี้เรียกว่า อย่าเรียนรู้ที่จะเขียนโค้ด เรียนรู้ที่จะคิด» de Yevgeny Brikmanซึ่งวิศวกรคนนี้สรุปความแตกต่างระหว่างการรู้วิธีเขียนโปรแกรมและการรู้วิธีคิดแบบนักวิทยาศาสตร์คอมพิวเตอร์ด้วยการเปรียบเทียบนี้:

อย่างไรก็ตามเทคโนโลยีเป็นที่แพร่หลาย แต่สิ่งนี้ไม่ได้ทำให้เราเรียนรู้ได้เมื่อเราศึกษาในศูนย์การเรียนรู้ ตัวอย่างเช่นเราสามารถใช้เวลาเกือบทุกคนในชีวิตที่เคยบินบนเครื่องบิน แต่จากที่นั่นเพื่อให้ได้ใบอนุญาตนักบินมีหนทางอีกยาวไกลซึ่งโดยทั่วไปไม่ได้เป็นส่วนหนึ่งของ การศึกษาอย่างเป็นทางการของบุคคล แต่เป็นการศึกษาเฉพาะด้าน

อธิบายในรายละเอียดเพิ่มเติมซึ่งหมายความว่าความรู้ที่ใคร ๆ ก็อาจมีเกี่ยวกับการทำงานของเครื่องบินโดยพื้นฐานแล้วพวกเราหลายคนได้รับจากการศึกษาระดับมัธยมศึกษาและมหาวิทยาลัยหรือในอาชีพด้านเทคนิค (วิศวกรรม) เช่นฟิสิกส์และคณิตศาสตร์ที่ช่วยให้เรา ทำความเข้าใจว่าแรงที่เกิดขึ้นในเที่ยวบินและองค์ประกอบภายนอกเช่นแรงโน้มถ่วงความดันบรรยากาศความเร็วแรงเสียดทานหรือแรงยกอย่างไร และเช่นเดียวกับที่ชีววิทยาช่วยให้เราเข้าใจว่ามนุษย์มีพฤติกรรมอย่างไรที่ความสูง X หรือผลกระทบจากการขาดออกซิเจนและความเย็นจัด หรือเรื่องราวที่ทำให้เรารู้ถึงกระบวนการที่ก่อให้เกิดการสร้างเครื่องบินขึ้นและมีบทบาทอย่างไรในการขนส่งและการพาณิชย์ ความรู้ทั้งหมดเหล่านี้ได้มารวมกันในศูนย์การสอนจากความรู้ด้านต่างๆทำให้เรามีแนวคิดทั่วไปว่าเครื่องบินคืออะไรและทำงานอย่างไร วิชาทั่วไปช่วยให้เราเข้าใจปัญหาที่หลากหลายรวมถึงวิธีการบินของเครื่องบิน สิ่งที่แตกต่างอย่างมากจากวิชาเฉพาะที่สอนให้คุณใช้งานเครื่องใดเครื่องหนึ่งเท่านั้นซึ่งก็คือเครื่องบินประเภทหนึ่ง ดังนั้นด้วยเหตุผลเดียวกันเราควรมุ่งเน้นไปที่การเรียนวิทยาศาสตร์คอมพิวเตอร์ไม่ใช่แค่การเขียนโปรแกรม เนื่องจากในขณะที่วิทยาการคอมพิวเตอร์สอนเราทั่วโลกให้คิดในแง่ทั่วไป (เชิงระบบ) การเขียนโปรแกรมเป็นเพียงเครื่องมือที่ช่วยให้เราแปลความคิดหรือปัญหา Y ผ่านรหัส X ซึ่งวิเคราะห์ก่อนหน้านี้ (อย่างถูกต้องหรือไม่ถูกต้อง)

มุมมองนี้และอื่น ๆ อีกมากมายที่สนับสนุนโดย Yevgeny Brikman ในโพสต์ของเขาเกี่ยวกับอะไร โครงการ เป็นเพียงส่วนหนึ่งของความรู้ที่กว้างขึ้นซึ่งฝังอยู่ในไฟล์ วิทยาการคอมพิวเตอร์ซึ่งจำเป็นสำหรับโปรแกรมเมอร์ทุกคน

สุดท้ายอย่าลืมพัฒนาตนเองด้วยการเรียนรู้เกี่ยวกับคำสั่งที่สำคัญที่สุดของ GNU / Linux เพื่อพัฒนาความรู้ที่จะใช้ในภายหลังและทุกสิ่งที่นำเสนอที่นี่เกี่ยวกับการพัฒนาบางอย่าง โมดูลฟังก์ชันตัวแปรคำสั่งหรือการกระทำ โดยทั่วไปสามารถดำเนินการได้หลายวิธีหรือวิธีอื่นแตกต่างจากที่อธิบายไว้ที่นี่

ด้านล่าง a Screencast สร้างโดยฉันซึ่งคุณสามารถดูว่าโมดูลนี้ดำเนินการอย่างไรโมดูลก่อนหน้าหรือถัดไปจะได้รับการสอนเพื่อให้คุณสามารถเห็นศักยภาพของเชลล์สคริปต์ในระดับปานกลาง (ไม่ใช่ขั้นสูง):

LPI-SB8 ทดสอบ ScreenCast

(LINUX POST INSTALL - SCRIPT BICENTENARIO 8.0.0) - ส่วนที่ 2


แสดงความคิดเห็นของคุณ

อีเมล์ของคุณจะไม่ถูกเผยแพร่ ช่องที่ต้องการถูกทำเครื่องหมายด้วย *

*

*

  1. ผู้รับผิดชอบข้อมูล: Miguel ÁngelGatón
  2. วัตถุประสงค์ของข้อมูล: ควบคุมสแปมการจัดการความคิดเห็น
  3. ถูกต้องตามกฎหมาย: ความยินยอมของคุณ
  4. การสื่อสารข้อมูล: ข้อมูลจะไม่ถูกสื่อสารไปยังบุคคลที่สามยกเว้นตามข้อผูกพันทางกฎหมาย
  5. การจัดเก็บข้อมูล: ฐานข้อมูลที่โฮสต์โดย Occentus Networks (EU)
  6. สิทธิ์: คุณสามารถ จำกัด กู้คืนและลบข้อมูลของคุณได้ตลอดเวลา

  1.   อีกคนที่กำลังผ่านไป dijo

    ที่จะมีถ้าฉันเข้าใจมันอย่างถูกต้อง คุณขอให้ผู้ใช้ป้อนชื่อผู้ใช้ ... สบายดี และหลังจากที่คุณป้อนรหัสผ่านของคุณ ... และปรากฎว่ารหัสผ่านคือ "lpi * sb8" ... และเป็น "ฮาร์ดโค้ด" ในสคริปต์

    หากผู้ใช้มีสิทธิ์อ่านสคริปต์…บิงโก !! …พวกเขารู้แล้วว่าต้องป้อนชื่อผู้ใช้และรหัสผ่านใด !!!

    ฉันไม่รู้ว่าฉันทำผิดเกี่ยวกับบางอย่าง ... แต่ถ้าเป็นเช่นนั้นก็ไม่ปลอดภัยมาก ...

  2.   Jose Albert dijo

    จริง! ฉันให้วิธีการตอนนี้แต่ละคนมีความอยากรู้อยากเห็นโดยธรรมชาติซึ่งเป็นลักษณะของเผ่าพันธุ์มนุษย์ต้องแสวงหาความสมบูรณ์แบบหรือการเสริมสร้างความแข็งแกร่งในแนวความปลอดภัย