V předchozích publikacích tohoto kola tzv «Vytvořte si program krok za krokem pomocí skriptování Shell» Již jsme popsali, jak implementovat následující moduly:
- MODUL Ověření kořenového superuživatele
- MODUL PROMĚNNÉ PROSTŘEDÍ
- DVOJNÁSOBEK DETEKČNÍ MODUL PROVEDENÍ nebo NEÚSPĚŠNÉ PROVEDENÍ
- OPTIMALIZAČNÍ MODUL PRO PROSTŘEDÍ PRO PROVÁDĚNÍ PROGRAMU
Nyní v této nové publikaci uvidíme, jak implementovat:
MODUL POVOLENÍ UŽIVATELE S HESLEM
Který by měl být modul (část) vašeho programu který vám umožní zajistit, aby operace určené pro váš program mohl provádět pouze uživatel nebo uživatelé dříve definovaní pro jeho použití. Může nebo nemusí obsahovat heslo pro uvedené oprávněné uživatele. V takovém případě prozkoumáme jeden s ověřením uživatelského jména a hesla.
Osobně přidám následující řádky k vytvoření tohoto modulu:
Pod kódem:
###############################################################################
# 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
###############################################################################
Jak vidíte, tento modul nejprve nakonfiguruje vaše obrazovka terminálu na modré pozadí pro lepší vizuální zhodnocení uživatele, pak vydá sluchové zprávy s mluvit y vizuály s minout y Dialog. Pak smyčkou pomocí příkazu až do potvrzuje, že hodnota zadaná pro uživatelské jméno být srovnáván s platné uživatelské hodnoty dříve definované, což dává uživateli možnost správně ukončit program zadáním slova JÍT VEN. Pokud je ověření uživatele úspěšné, proveďte stejný postup s heslem. Pro ukončení v případě úspěchu ověření uživatele a hesla pomocí a jednoduché menu vyrobeno v Dialog dotaz, zda si uživatel X přeje pokračovat v procesu programu nebo ne. Pokud ano, vydejte jednoduchý progresivní lišta čekání hotovo s příkazem případ.
=============
Doporučení:
Naplánujte nebo přemýšlejte! Co je první? o Co je důležitější?
Bezpochyby, když začneme programovat, první věcí, kterou bychom se měli naučit, jsou algoritmy nebo vývojové diagramy jako teoretické základy pro naučení logiky a matematiky ke zvýšení logicko-matematického uvažování, ale to je dostatečný nebo adekvátní základ pro zahájení programování. Rozumět tomu Naučte se programovat, to nestačí, je to nutné Naučte se myslet.
VE KTERÉM PROGRAMOVACÍM JAZYKU BY MĚL ZAČÍT DOSAHOVAT RYCHLE NAUČENÍ K PROGRAMU?
To je jistě povinná otázka, kterou si všichni klademe, když začínáme v úžasném světě programování. Není to však první správná otázka, kterou bychom si měli položit, ale:
MUSÍM ANALYTICKÁ KAPACITA POTŘEBOVAT ANALÝZU PROBLÉMU, VYBRAT JEJÍ PRVKY A ZOBRAZIT ODPOVĚĎ?
A určitě se učení programování v kterémkoli z nejběžnějších nebo nejsilnějších jazyků má mnoho nepopiratelných výhod. Jelikož nám poskytuje nezbytné nástroje pro vývoj vlastních aplikací, pomáhá nám lokalizovat problémy v technologických zařízeních a otevírá nám dveře na trhu práce, ale programování je jen malou částí počítačové vědy.
Zatímco Naprogramujte nebo napište kód spočívá ve výuce počítače (prostřednictvím aplikace, softwaru nebo systému) k provedení určité operace, po a Možnost X provádí operátor nebo a Událost X stejným hardwarem nebo softwarem, který je podporuje; Principy informatiky (informatika / systémy) učí nás uvažování a logické dovednosti, které jsou užitečné v jiných oblastech než v technologii. Počítačová věda v podstatě učí, jak zpracovávat a reprezentovat informace.
Považuji to proto za nejvhodnější způsob Naučte se programovat.
Vysvětluji, jako příklad, tento další příspěvek s názvem Naučte se kódovat. Naučte se myslet » de Jevgenij Brikman, kde nám tento inženýr stručně odhalí rozdíl mezi umět programovat a umět uvažovat jako počítačový vědec s touto analogií:
Jakkoli je technologie všudypřítomná, nedělá to, abychom se ji učili, když ji studujeme ve výukovém centru. Jako příklad můžeme uvést, že v letadle někdy v životě letěl téměř kdokoli, ale odtud k získání pilotního průkazu je ještě dlouhá cesta, která obvykle není součástí formálních studií osoba, ale velmi konkrétní studie o konkrétní oblasti.
Podrobněji vysvětleno, to znamená, že znalosti, které může každý mít o tom, jak fungují letadla, mají v podstatě mnozí z nás ze středního a vysokoškolského vzdělání nebo z jakékoli technické kariéry (strojírenství), jako je fyzika a matematika, které nám pomáhají pochopit, jak síly přítomné za letu a vnější prvky, jako je gravitace, atmosférický tlak, rychlost, tření nebo zdvih. Stejně jako nám biologie pomáhá pochopit, jak se člověk chová ve výšce X, nebo jak je ovlivněn nedostatkem kyslíku a extrémním chladem. Nebo příběh, který nám umožňuje poznat proces, který vedl k tomu, jak byla letadla vytvořena a jakou roli hrají v dopravě a obchodu. Všechny tyto znalosti získané společně ve výukovém centru z různých oblastí znalostí nám poskytují obecnou představu o tom, co je letadlo a jak funguje. Obecné předměty nám pomáhají porozumět široké škále problémů, včetně toho, jak létají letadla. Něco velmi odlišného od specializovaného předmětu, který vás naučí ovládat pouze jeden z těchto strojů, typ letadla. Ze stejného důvodu bychom se proto měli zaměřit na studium informatiky, nejen na programování. Protože zatímco nás informatika učí globálně myslet v obecném (systémovém) smyslu, programování je pouze nástrojem, který nám umožňuje přeložit myšlenku nebo problém Y prostřednictvím kódu X, který byl dříve analyzován (správně nebo nesprávně).
Tento a mnoho dalších hledisek přispělo Jevgenij Brikman ve svém příspěvku o čem Plán je to jen jedna část širších znalostí vložených do Počítačová věda, které jsou nezbytné pro každého programátora.
Nakonec nezapomeňte postupovat samouk a učit se o nejdůležitějších příkazech GNU / Linux pokračovat v rozšiřování znalostí, které později využijí, a že vše zde prezentované o vývoji některých modul, funkce, proměnná, příkaz nebo akce obecně to může být provedeno různými způsoby nebo alternativními metodami, odlišnými od zde popsaných.
Pod a Screencast vytvořený mnou, kde můžete vidět, jak je tento modul prováděn, jak učit předchozí nebo pozdější moduly, abyste viděli potenciál Shell Scripting na střední úrovni (není pokročilý):
(LINUX POST INSTALL - SCRIPT BICENTENARIO 8.0.0) - Část 2
Mít, pokud jsem tomu správně porozuměl. Požádáte uživatele, aby zadal své uživatelské jméno ... fajn. A po zadání hesla ... a ukáže se, že heslo je „lpi * sb8“ ... a že je ve skriptu „napevno“.
Pokud má uživatel přístup ke čtení skriptu ... bingo !! ... už ví, jaké uživatelské jméno a heslo musí zadat !!!
Nevím, jestli jsem v něčem udělal chybu ... ale pokud ano, je to velmi nebezpečné ...
Skutečný! Teď jsem dal metodu, každý s vrozenou zvědavostí, která charakterizuje lidskou rasu, musí hledat její dokonalost nebo posílení v bezpečnostních liniích.