В предыдущих публикациях этого раунда называли «Постройте свою программу шаг за шагом, используя Shell Scripting» Мы уже рассмотрели, как реализовать следующие модули:
- МОДУЛЬ ПРОВЕРКИ ROOT SUPERUSER
- МОДУЛЬ ПЕРЕМЕННЫХ ОКРУЖАЮЩЕЙ СРЕДЫ
- МОДУЛЬ ОБНАРУЖЕНИЯ ДВОЙНОГО ИСПОЛНЕНИЯ или НЕУДАЧНОЕ ВЫПОЛНЕНИЕ
- МОДУЛЬ ОПТИМИЗАЦИИ ДЛЯ СРЕДЫ ВЫПОЛНЕНИЯ ПРОГРАММЫ
Теперь в этой новой публикации мы увидим, как реализовать:
МОДУЛЬ АВТОРИЗАЦИИ ПОЛЬЗОВАТЕЛЯ С ПАРОЛЕМ
Какой должен быть модуль (раздел) вашей программы Это позволяет гарантировать, что только пользователь или пользователи, ранее определенные для его использования, могут выполнять операции, назначенные для вашей программы. Он может включать или не включать пароль для указанных авторизованных пользователей. В этом случае мы рассмотрим один с проверкой имени пользователя и пароля.
Я лично добавляю следующие строки для создания этого модуля:
Ниже кода:
###############################################################################
# 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 продолжать продвигать знания, которые они будут использовать позже, и что все представленное здесь о разработке некоторых модуль, функция, переменная, команда или действие в общем, это может быть выполнено разными способами или альтернативными методами, отличными от описанных здесь.
Ниже Сделанный мной скринкаст, где вы можете увидеть, как выполняется этот модуль, предыдущие или последующие модули, которые нужно обучить, чтобы вы могли увидеть потенциал сценариев оболочки на среднем уровне (не для продвинутых):
(LINUX POST INSTALL - SCRIPT BICENTENARIO 8.0.0) - Часть 2
Чтобы иметь, если я правильно понял. Вы просите пользователя ввести свое имя пользователя ... хорошо. И после того, как вы введете свой пароль ... и окажется, что это пароль «lpi * sb8» ... и что он «жестко запрограммирован» в скрипте.
Если у пользователя есть доступ на чтение к сценарию… бинго !!… он уже знает, какое имя пользователя и пароль им нужно ввести !!!
Не знаю, ошибся ли я в чем-то ... но если да, то это очень небезопасно ...
Правда! Я дал метод сейчас, каждый, у кого есть врожденное любопытство, присущее человечеству, должен стремиться к его совершенствованию или укреплению в линиях безопасности.