셸 스크립팅을 사용하여 단계별 프로그램 빌드-5 부

이 라운드의 이전 간행물에서 «셸 스크립팅을 사용하여 단계별로 프로그램 빌드» 우리는 이미 다음 모듈을 구현하는 방법을 다뤘습니다.

쉘 스크립팅

이제이 새 간행물에서 다음을 구현하는 방법을 살펴 보겠습니다.

암호가있는 사용자 인증 모듈

프로그램의 모듈 (섹션)이어야합니다. 이를 통해 이전에 사용하도록 정의 된 사용자 만 프로그램에 지정된 작업을 실행할 수 있습니다. 권한이 부여 된 사용자의 암호를 포함하거나 포함하지 않을 수 있습니다. 이 경우 사용자 이름 및 암호 유효성 검사를 사용하여 살펴 보겠습니다.

이 모듈을 만들기 위해 개인적으로 다음 줄을 추가합니다.

코드 아래 :


###############################################################################
# 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 다이얼로그. 그런 다음 명령을 사용하여 루프를 통해 까지 입력 한 값이 username 비교되다 유효한 사용자 값 (들) 사용자가 단어를 입력하여 프로그램을 올바르게 닫을 수있는 가능성을 제공합니다. 나가. 사용자 유효성 검사에 성공하면 암호를 사용하여 동일한 절차를 진행하십시오. 성공한 경우 종료를 완료하려면 사용자 및 암호를 간단한 메뉴 만든 다이얼로그 사용자 X가 프로그램 프로세스를 계속할 것인지 묻습니다. 그렇다면 간단한 프로그레시브 바 명령으로 완료 대기 케이스.

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

권장 :

계획하거나 생각하십시오! 첫 번째는 무엇입니까? o 무엇이 더 중요합니까?

의심 할 여지없이, 프로그래밍을 시작할 때 가장 먼저 배워야 할 것은 논리와 수학을 배우기위한 이론적 기반으로서 알고리즘 또는 흐름도이지만 논리적-수학적 추론을 높이기위한 이론적 기반이지만, 이것은 프로그래밍을 시작하기에 충분하거나 적절한 기초입니다. . 이해 했어 프로그래밍 배우기, 충분하지 않아 필요합니다 생각하는 법을 배우십시오.

프로그램을 빠르게 배울 수 있으려면 어떤 프로그래밍 언어로 시작해야합니까?

이것은 우리 모두가 멋진 프로그래밍 세계에서 시작할 때 스스로에게 묻는 필수 질문입니다. 그러나 우리가 스스로에게 물어봐야 할 첫 번째 올바른 질문은 아니지만 :

문제를 분석하고 요소를 추출하고 응답을 확인하는 데 필요한 분석 능력이 있습니까?

그리고 가장 일반적이거나 강력한 언어로 프로그래밍하는 법을 배우는 것은 부인할 수없는 많은 이점이 있습니다. 자체 애플리케이션을 개발하는 데 필요한 도구를 제공하기 때문에 기술 장치에서 문제를 찾는 데 도움이되고 취업 시장에서 우리에게 문을 열어 주지만 프로그래밍은 컴퓨터 과학의 작은 부분에 불과합니다.

동안 프로그래밍 또는 코드 작성 컴퓨터 (응용 프로그램, 소프트웨어 또는 시스템을 통해)가 특정 작업을 수행하도록 가르치는 것으로 구성됩니다. 옵션 X 운영자 또는 이벤트 X 이를 지원하는 동일한 하드웨어 또는 소프트웨어에 의해 또는 내부에서; 컴퓨터 과학의 원리 (정보학 / 시스템) 그들은 우리에게 기술 이외의 분야에서 유용한 추론과 논리 기술을 가르칩니다. 본질적으로 컴퓨터 과학은 정보를 처리하고 표현하는 방법을 가르칩니다.

따라서 이것은 가장 적절한 형태라고 생각합니다. 프로그래밍을 배우십시오.

예를 들어 설명하겠습니다. 코딩을 배우지 마십시오. 생각하는 법 배우기» de 예브게니 브릭 만이 엔지니어는 프로그래밍 방법을 아는 것과 컴퓨터 과학자처럼 생각하는 방법을 아는 것의 차이점을 다음과 같은 비유로 요약합니다.

유비쿼터스 기술이더라도 학습 센터에서 공부할 때 배우게되는 것은 아닙니다. 예를 들어, 우리는 인생의 어느 시점에서 거의 모든 사람이 비행기를 타본 적이 있지만 거기에서 조종사 면허를 얻기까지 갈 길이 멀고 일반적으로 공식적인 연구의 일부가 아닙니다. 사람이지만 특정 영역에 대한 매우 특별한 연구.

좀 더 자세히 설명하자면, 비행기가 기본적으로 어떻게 작동하는지에 대한 지식은 중등 및 대학 교육이나 기술 경력 (엔지니어링)에서 얻은 지식을 의미합니다. 비행 중에 존재하며 중력, 대기압, 속도, 마찰 또는 양력과 같은 외부 요소. 그리고 생물학이 인간이 X 높이에서 어떻게 행동하는지 또는 산소 부족과 극심한 추위가 어떻게 영향을 받는지 이해하는 데 도움이되는 것처럼. 또는 비행기가 어떻게 만들어 졌는지, 그리고 비행기가 운송과 상업에서 어떤 역할을하는지에 대한 과정을 알 수있게 해주는 이야기. 다양한 지식 영역에서 교육 센터에서 얻은 이러한 모든 지식은 비행기가 무엇이며 어떻게 작동하는지에 대한 일반적인 아이디어를 제공합니다. 일반 과목은 비행기가 어떻게 비행 하는지를 포함하여 다양한 문제를 이해하는 데 도움이됩니다. 비행기의 일종 인 기계 중 하나를 조작하도록 가르치는 전문 과목과는 매우 다른 것입니다. 따라서 같은 이유로 우리는 프로그래밍뿐만 아니라 컴퓨터 과학에 집중해야합니다. 컴퓨터 과학이 전 세계적으로 일반적인 (체계적인) 사고 방식을 가르치는 동안 프로그래밍은 이전에 분석 된 (올바르게 또는 잘못) 코드 X를 통해 아이디어 나 문제 Y를 번역 할 수있는 도구 일뿐입니다.

이것과 다른 많은 관점이 기여했습니다. 예브게니 브릭 만 무엇에 대한 그의 게시물에서 일정 그것은 내부에 내재 된 광범위한 지식의 한 부분 일뿐입니다. 컴퓨터 과학, 이는 모든 프로그래머에게 필수입니다.

마지막으로, 가장 중요한 명령에 대해 배우면서 독학 방식으로 진행하는 것을 잊지 마십시오. GNU / 리눅스 나중에 사용할 지식을 계속 발전시키고 여기에 제시된 모든 모듈, 함수, 변수, 명령 또는 작업 일반적으로 여기에 설명 된 것과 다른 다른 방법 또는 대체 방법으로 수행 할 수 있습니다.

아래 a 내가 만든 Screencast 동영상,이 모듈이 어떻게 실행되는지, 학습 할 이전 또는 이후 모듈을 볼 수 있으므로 중간 수준 (고급 아님)에서 쉘 스크립팅의 잠재력을 볼 수 있습니다.

LPI-SB8 테스트 ScreenCast

(LINUX POST INSTALL-BICENTENNIAL SCRIPT 8.0.0)-2 부


코멘트를 남겨주세요

귀하의 이메일 주소는 공개되지 않습니다. 필수 필드가 표시되어 있습니다 *

*

*

  1. 데이터 책임자 : Miguel Ángel Gatón
  2. 데이터의 목적 : 스팸 제어, 댓글 관리.
  3. 합법성 : 귀하의 동의
  4. 데이터 전달 : 법적 의무에 의한 경우를 제외하고 데이터는 제 XNUMX 자에게 전달되지 않습니다.
  5. 데이터 저장소 : Occentus Networks (EU)에서 호스팅하는 데이터베이스
  6. 권리 : 귀하는 언제든지 귀하의 정보를 제한, 복구 및 삭제할 수 있습니다.

  1.   일어난 또 다른 하나

    내가 그것을 올바르게 이해했다면 가져라. 사용자에게 사용자 이름을 입력하도록 요청합니다. 괜찮습니다. 그리고 암호를 입력하면 ... 암호가 "lpi * sb8"...이고 스크립트에서 "하드 코딩"된 것으로 밝혀졌습니다.

    사용자가 스크립트에 대한 읽기 액세스 권한이있는 경우 빙고 !!… 입력해야하는 사용자 이름과 비밀번호를 이미 알고 있습니다 !!!

    내가 실수를했는지는 모르겠지만 ... 그렇다면 그것은 매우 안전하지 않다 ...

  2.   잉. 호세 앨버트

    진실! 나는 이제 인간을 특징 짓는 타고난 호기심을 가진 각자가 안전선에서 완벽하거나 강화를 추구해야하는 방법을 제시했습니다.