Створюйте свою програму поетапно, використовуючи сценарії оболонки - Частина 5

У попередніх публікаціях цього туру називали «Створюйте свою програму поетапно, використовуючи сценарії оболонки» Ми вже розглянули способи реалізації таких модулів:

Сценарії Shell

Тепер у цій новій публікації ми побачимо, як реалізувати:

МОДУЛЬ АВТОРИЗАЦІЇ КОРИСТУВАЧА З ПАРОЛОМ

Який повинен бути модулем (розділом) вашої програми що дозволяє вам гарантувати, що лише користувач або користувачі, визначені раніше для його використання, можуть виконувати операції, призначені для вашої програми. Він може включати або не включати пароль для уповноважених користувачів. У цьому випадку ми розглянемо такий, що перевіряє ім’я користувача та пароль.

Я особисто додаю такі рядки для створення цього модуля:

Під кодом:


###############################################################################
# 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 Діалог. Потім через цикл за допомогою команди до перевіряє, що значення, введене для ім'я користувача порівнювати з дійсне значення користувача раніше визначено, що дає користувачеві можливість правильно закрити програму, ввівши слово ВИЙТИ. Якщо перевірка користувача успішна, виконайте ту ж процедуру з паролем. Завершити закінчення у випадку успішної перевірки користувача та пароля за допомогою просте меню зроблено в Діалог запитувати, чи бажає користувач X продовжувати продовжувати процес програми чи ні. Якщо так, то видайте простий прогресивна планка очікування закінчено з командою випадок.

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

Рекомендації:

Складіть графік або подумайте! Що перше? o Що важливіше?

Без сумніву, коли ми починаємо програмування, перше, що нам слід вивчити, це алгоритми або блок-схеми як теоретичні основи для вивчення логіки та математики для збільшення наших логіко-математичних міркувань, однак ця база є достатньою чи адекватною для початку програмування. Зрозумійте це Навчіться програмувати, недостатньо, потрібно Навчіться думати.

НА ЯКІЙ МОВІ ПРОГРАМУВАННЯ ПОВИНЕН ПОЧАТИ ДОСЯГТИ ШВИДКО ВЧИТИСЯ ДО ПРОГРАМИ?

Це, безумовно, обов’язкове запитання, яке ми всі задаємо собі, починаючи у дивовижному світі програмування. Але це не перше правильне питання, яке ми повинні задати собі, а:

ЧИ МАЮ АНАЛІТИЧНУ МОЖЛИВОСТЬ АНАЛІЗУВАТИ ПРОБЛЕМУ, ВИДАЛИТИ ЇЇ ЕЛЕМЕНТИ ТА ПЕРЕГЛЯНУТИ ВІДПОВІДЬ?

І, звичайно, навчання програмуванню на будь-якій з найпоширеніших чи потужних мов має безліч незаперечних переваг. Оскільки він надає нам необхідні інструменти для розробки власних додатків, він допомагає нам знаходити проблеми в технологічних пристроях і відкриває нам двері на ринку праці, але програмування - це лише мала частина інформатики.

Поки Програмувати або писати код полягає у навчанні комп’ютера (за допомогою програми, програмного забезпечення чи системи) виконувати певну операцію після a Варіант X виконується оператором або a Подія X одним або тим самим Апаратним або Програмним забезпеченням, яке його підтримує; Принципи інформатики (інформатика / системи) вони вчать нас аргументації та логічним навичкам, які корисні в інших сферах, крім технологій. По суті, інформатика вчить, як обробляти та представляти інформацію.

Тому я вважаю це найбільш підходящим способом Навчіться програмувати.

Пояснюю, беручи як приклад, цей інший пост, який називається Не вчіться кодувати. Навчіться думати » de Євгеній Брикман, де цей Інженер коротко викриває нам різницю між тим, як знати, як програмувати, і тим, як мислити, як інформатик, з такою аналогією:

Хоч якою б не була всюдисуща технологія, це не змушує нас засвоювати її, коли ми вивчаємо її в Навчальному центрі. Як приклад, ми могли б взяти, що майже будь-хто в якийсь момент життя коли-небудь літав на літаку, але від цього до отримання посвідчення пілота потрібно пройти дуже довгий шлях, який, як правило, не є частиною формальні дослідження людини, але дуже конкретні дослідження з певної галузі.

Пояснено більш докладно, це означає, що знання, які може мати кожен про те, як працюють літаки, в основному є у багатьох із нас із середньої та університетської освіти або будь-якої технічної кар'єри (інженерна справа), наприклад, фізики та математики, які допомагають нам зрозуміти, як присутні сили в польоті, і зовнішні елементи, такі як сила тяжіння, атмосферний тиск, швидкість, тертя або підйом. І так само, як біологія допомагає нам зрозуміти, як людина поводиться на висоті X, або як на неї впливає нестача кисню та сильний холод. Або історія, яка дозволяє нам знати процес, який породив те, як створювались літаки, і яку роль вони відіграють у транспорті та торгівлі. Усі ці знання, отримані в навчальному центрі з різних галузей знань, дають нам загальне уявлення про те, що таке літак і як він працює. Загальні дисципліни допомагають нам зрозуміти широкий спектр проблем, зокрема те, як літають літаки. Щось дуже відрізняється від спеціалізованого предмета, який навчить вас експлуатувати лише одну з цих машин - тип літака. Тому з тієї ж причини нам слід зосередитись на вивченні комп’ютерних наук, а не лише програмуванні. Оскільки, хоча Комп’ютерні науки вчать нас глобально мислити в загальному (системному) сенсі, програмування - це лише інструмент, який дозволяє нам перекласти ідею чи проблему Y за допомогою коду X, попередньо проаналізованого (правильно чи неправильно).

Цю та багато інших точок зору сприяв Євгеній Брикман у своєму дописі про що Розклад це лише частина ширших знань, закладених в рамках Інформатика, які є важливими для кожного програміста.

Нарешті, не забудьте прогресувати самонавчанням, вивчаючи найважливіші команди GNU / Linux продовжувати вдосконалювати знання, які вони будуть використовувати пізніше, і що все представлене тут про розвиток деяких модуль, функція, змінна, команда або дія загалом це може бути здійснено різними способами або альтернативними методами, відмінними від описаних тут.

Нижче a Скрінкаст, зроблений мною, де ви можете побачити, як виконується цей модуль, попередні або пізніші модулі, яким потрібно навчити, так що ви зможете побачити потенціал сценаріїв оболонок на середньому рівні (не просунутий):

Тест екрану LPI-SB8

(LINUX POST INSTALL - SCRIPT BICENTENARIO 8.0.0) - Частина 2


Залиште свій коментар

Ваша електронна адреса не буде опублікований. Обов'язкові для заповнення поля позначені *

*

*

  1. Відповідальний за дані: Мігель Анхель Гатон
  2. Призначення даних: Контроль спаму, управління коментарями.
  3. Легітимація: Ваша згода
  4. Передача даних: Дані не передаватимуться третім особам, за винятком юридичних зобов’язань.
  5. Зберігання даних: База даних, розміщена в мережі Occentus Networks (ЄС)
  6. Права: Ви можете будь-коли обмежити, відновити та видалити свою інформацію.

  1.   Ще один, який проїжджав - сказав він

    Мати, якщо я це правильно зрозумів. Ви просите користувача ввести своє ім'я користувача ... штраф. І після того, як ви введете свій пароль ... і виявиться, що пароль "lpi * sb8" ... і що він "жорстко закодований" у сценарії.

    Якщо користувач має доступ для читання до сценарію ... бінго !! ... він уже знає, яке ім'я користувача та пароль їм потрібно ввести !!!

    Я не знаю, чи я щось помилився ... але якщо так, це дуже небезпечно ...

  2.   Інж. Хосе Альберт - сказав він

    Правда! Я дав метод зараз, кожен із такою вродженою цікавістю, яка характеризує людську расу, повинен шукати її досконалості або зміцнення в лініях безпеки.