Постройте свою программу шаг за шагом, используя сценарии оболочки - часть 5

В предыдущих публикациях этого раунда называли «Постройте свою программу шаг за шагом, используя Shell Scripting» Мы уже рассмотрели, как реализовать следующие модули:

Скрипты оболочки

Теперь в этой новой публикации мы увидим, как реализовать:

МОДУЛЬ АВТОРИЗАЦИИ ПОЛЬЗОВАТЕЛЯ С ПАРОЛЕМ

Какой должен быть модуль (раздел) вашей программы Это позволяет гарантировать, что только пользователь или пользователи, ранее определенные для его использования, могут выполнять операции, назначенные для вашей программы. Он может включать или не включать пароль для указанных авторизованных пользователей. В этом случае мы рассмотрим один с проверкой имени пользователя и пароля.

Я лично добавляю следующие строки для создания этого модуля:

Ниже кода:


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

Как видите, этот модуль сначала настраивает ваш экран терминала на синем фоне к лучшая визуальная оценка пользователя, затем испускает слуховые сообщения con говорить y визуальный con эхо y Диалог. Затем через цикл с помощью команды до подтверждает, что значение, введенное для имя пользователя сравниваться с допустимые пользовательские значения ранее определенное, что дает пользователю возможность правильно закрыть программу, набрав слово Salir. Если проверка пользователя прошла успешно, выполните ту же процедуру с паролем. Чтобы закончить завершение в случае успеха, проверка пользователя и пароля с помощью простое меню сделано в Диалог спрашивая, желает ли пользователь X продолжить процесс программы или нет. Если да, выпустите простой прогрессивная полоса ожидание выполнено с помощью команды случаев.

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

Рекомендации:

Планируйте или думайте! Что первое? o Что важнее?

Несомненно, когда мы начинаем программировать, первое, что мы должны изучить, - это алгоритмы или блок-схемы как теоретические основы для изучения логики и математики, чтобы улучшить наши логико-математические рассуждения, однако эта база достаточна или адекватна, чтобы начать программировать. Понять это Научитесь программировать, это мало, это необходимо Научитесь думать.

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

Это, безусловно, обязательный вопрос, который мы все задаем себе, когда начинаем в чудесном мире программирования. Но это не первый правильный вопрос, который мы должны себе задать, а:

ЕСТЬ ЛИ У МЕНЯ АНАЛИТИЧЕСКИЕ ВОЗМОЖНОСТИ, НЕОБХОДИМЫЕ ДЛЯ АНАЛИЗА ПРОБЛЕМЫ, ИЗВЛЕЧЕНИЯ ЕЕ ЭЛЕМЕНТОВ И ПРОСМОТРА ОТВЕТА?

И, конечно же, обучение программированию на любом из самых распространенных или мощных языков имеет много неоспоримых преимуществ. Поскольку он предоставляет нам необходимые инструменты для разработки наших собственных приложений, он помогает нам обнаруживать проблемы в технологических устройствах и открывает нам двери на рынок труда, но программирование - это лишь небольшая часть компьютерных наук.

В то время как Запрограммировать или написать код состоит из обучения компьютера (через приложение, программное обеспечение или систему) выполнению определенной операции после Вариант X выполняется оператором или Событие X с помощью того же оборудования или программного обеспечения, которое его поддерживает; Принципы информатики (информатика / системы) они учат нас рассуждению и логическим навыкам, которые могут быть полезны в других областях, помимо технологий. Информатика, по сути, учит, как обрабатывать и представлять информацию.

Поэтому считаю это наиболее подходящим способом Научитесь программировать.

Объясняю, взяв в качестве примера этот другой пост под названием Не учитесь программировать. Научитесь думать » de Евгений Брикман, где этот инженер вкратце показывает нам разницу между знанием того, как программировать, и умением думать, как ученый-компьютерщик, используя следующую аналогию:

Какая бы повсеместная технология ни была, это не заставляет нас изучать ее, когда мы изучаем ее в учебном центре. В качестве примера мы можем взять, что почти каждый в какой-то момент жизни когда-либо летал на самолете, но от этого до получения лицензии пилота предстоит пройти очень долгий путь, который обычно не является частью формальных исследований человек, но очень конкретные исследования в определенной области.

Если пояснить более подробно, это означает, что знания, которыми может обладать каждый о том, как работают самолеты, в основном многие из нас имеют в результате среднего и университетского образования или в любой технической карьере (инженерии), такой как физика и математика, которые помогают нам понять, как действуют силы. присутствуют в полете и внешние элементы, такие как сила тяжести, атмосферное давление, скорость, трение или подъемная сила. И точно так же, как биология помогает нам понять, как человек ведет себя на высоте X, или как на него влияет нехватка кислорода и сильный холод. Или историю, которая позволяет нам узнать, как были созданы самолеты и какую роль они играют в транспорте и торговле. Все эти знания, полученные в учебном центре из различных областей знаний, дают нам общее представление о том, что такое самолет и как он работает. Общие предметы помогают нам понять широкий круг проблем, в том числе то, как летают самолеты. Что-то очень отличное от специализированного предмета, который учит вас только управлять одной из этих машин, типом самолета. Следовательно, по той же причине мы должны сосредоточиться на изучении компьютерных наук, а не только на программировании. Поскольку в то время как информатика учит нас глобально мыслить в общем (системном) смысле, программирование - это только инструмент, который позволяет нам транслировать идею или проблему Y через код X, ранее проанализированный (правильно или неправильно).

Эту и многие другие точки зрения внесены Евгений Брикман в своем посте о чем График это только часть более широких знаний, встроенных в Информатика, которые необходимы каждому программисту.

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

Ниже Сделанный мной скринкаст, где вы можете увидеть, как выполняется этот модуль, предыдущие или последующие модули, которые нужно обучить, чтобы вы могли увидеть потенциал сценариев оболочки на среднем уровне (не для продвинутых):

Тест LPI-SB8 ScreenCast

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


Оставьте свой комментарий

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

*

*

  1. Ответственный за данные: Мигель Анхель Гатон
  2. Назначение данных: контроль спама, управление комментариями.
  3. Легитимация: ваше согласие
  4. Передача данных: данные не будут переданы третьим лицам, кроме как по закону.
  5. Хранение данных: база данных, размещенная в Occentus Networks (ЕС)
  6. Права: в любое время вы можете ограничить, восстановить и удалить свою информацию.

  1.   Другой, который проходил сказал

    Чтобы иметь, если я правильно понял. Вы просите пользователя ввести свое имя пользователя ... хорошо. И после того, как вы введете свой пароль ... и окажется, что это пароль «lpi * sb8» ... и что он «жестко запрограммирован» в скрипте.

    Если у пользователя есть доступ на чтение к сценарию… бинго !!… он уже знает, какое имя пользователя и пароль им нужно ввести !!!

    Не знаю, ошибся ли я в чем-то ... но если да, то это очень небезопасно ...

  2.   Инженер Хосе Альберт сказал

    Правда! Я дал метод сейчас, каждый, у кого есть врожденное любопытство, присущее человечеству, должен стремиться к его совершенствованию или укреплению в линиях безопасности.