シェルスクリプティングを使用してプログラムを段階的に構築する-パート5

このラウンドの以前の出版物では «シェルスクリプトを使用してプログラムを段階的に構築する» 次のモジュールを実装する方法については、すでに説明しました。

シェルスクリプト

この新しい出版物では、以下を実装する方法を説明します。

パスワード付きのユーザー認証モジュール

プログラムのモジュール(セクション)はどれにする必要がありますか これにより、それを使用するように以前に定義されたXNUMXつまたは複数のユーザーのみが、プログラムに指定された操作を実行できるようになります。 上記の許可されたユーザーのパスワードが含まれる場合と含まれない場合があります。 この場合、ユーザー名とパスワードの検証を使用してXNUMXつを検討します。

このモジュールを作成するには、個人的に次の行を追加します。

コードの下:


###############################################################################
# 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 ビジュアル とともに echo y 対話。 次に、コマンドを使用してループを通過します まで に入力された値が ユーザー名 と比較される 有効なユーザー値 以前に定義された、単語を入力することによってプログラムを正しく閉じる可能性をユーザーに与える サリール。 ユーザー検証が成功した場合は、パスワードを使用して同じ手順を実行します。 成功した場合に終了を終了するには、ユーザーとパスワードの検証を シンプルなメニュー で作られた 対話 ユーザーXがプログラムプロセスの続行を続行するかどうかを尋ねます。 もしそうなら、簡単なを発行します プログレッシブバー コマンドで待機中 場合.

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

勧告:

スケジュールするか考える! 最初は何ですか? oもっと重要なことは何ですか?

間違いなく、プログラミングを始めるとき、最初に学ぶべきことは、論理と数学を学び、論理数理論理学の推論を増やすための理論的基礎としてのアルゴリズムまたはフロー図ですが、この基礎はプログラミングを始めるのに十分または適切です。 だとわかる プログラムすることを学ぶ、 それは十分ではありません、それは必要です 考えることを学ぶ。

どのプログラミング言語で、私はプログラムを迅速に学ぶことを達成し始めるべきですか?

これは確かに、プログラミングの素晴らしい世界を始めるときに私たち全員が自問する義務的な質問です。 しかし、それは私たちが自分自身に尋ねるべき最初の正しい質問ではありませんが、:

問題を分析し、その要素を抽出し、回答を確認するために必要な分析能力はありますか?

そして確かに、最も一般的または強力な言語のいずれかでプログラミングすることを学ぶことには、多くの否定できない利点があります。 独自のアプリケーションを開発するために必要なツールを提供するため、技術デバイスの問題を特定するのに役立ち、求人市場への扉を開きますが、プログラミングはコンピュータサイエンスのほんの一部にすぎません。

つつ プログラムまたはコードの記述 コンピュータに(アプリケーション、ソフトウェア、またはシステムを介して)特定の操作を実行するように教えることで構成されます。 オプションX オペレーターまたは イベントX それをサポートする同じハードウェアまたはソフトウェアによって、またはその中で; コンピュータサイエンスの原則(情報学/システム) 彼らは私たちにテクノロジー以外の分野で役立つ推論と論理のスキルを教えてくれます。 コンピュータサイエンスは、本質的に、情報を処理および表現する方法を教えています。

したがって、私はこれが最も適切な方法であると考えています プログラムすることを学ぶ。

例として、この別の投稿を説明します コーディングを学ばないでください。 考えることを学ぶ» de エフゲニー・ブリックマン、このエンジニアは、プログラミングの方法を知ることと、このアナロジーでコンピューター科学者のように考える方法を知ることの違いを要約しています。

テクノロジーはユビキタスですが、教育センターで勉強しても、テクノロジーを学ぶことはできません。 例として、人生のある時点でほとんど誰もが飛行機に乗ったことがあると考えることができますが、そこからパイロットの免許を取得するまでには非常に長い道のりがあり、それは一般的にの正式な研究の一部ではありません人ですが、特定の分野に関する非常に特別な研究です。

より詳細に説明すると、これは、飛行機がどのように機能するかについて誰もが知ることができる知識が、基本的に私たちの多くが中等教育や大学教育、または物理学や数学などの技術的キャリア(工学)で、力がどのように働くかを理解するのに役立つことを意味します飛行中に存在し、重力、大気圧、速度、摩擦、揚力などの外部要素。 そして、生物学が人間がエックスハイトでどのように行動するか、または酸素不足と極寒によってどのように影響を受けるかを理解するのに役立つのと同じように。 あるいは、飛行機がどのように作られたのか、そして飛行機が輸送や商業でどのような役割を果たしているのかを知ることができる物語。 さまざまな知識分野から教育センターで一緒に取得されたこれらすべての知識は、飛行機とは何か、そしてそれがどのように機能するかについての一般的なアイデアを私たちに提供します。 一般的な科目は、飛行機の飛行方法など、さまざまな問題を理解するのに役立ちます。 飛行機の一種であるこれらの機械のXNUMXつを操作することだけを教える専門科目とは非常に異なるものです。 したがって、同じ理由で、プログラミングだけでなく、コンピュータサイエンスの研究に焦点を当てる必要があります。 コンピュータサイエンスは私たちに一般的な(体系的な)意味で考えることを教えていますが、プログラミングは、以前に分析された(正しくまたは誤って)コードXを介してアイデアまたは問題Yを翻訳できるツールにすぎません。

これと他の多くの視点が貢献しました エフゲニー・ブリックマン 何についての彼の投稿で スケジュール それは、に埋め込まれている幅広い知識の一部にすぎません。 コンピュータサイエンス、これはすべてのプログラマーにとって不可欠です。

最後に、の最も重要なコマンドについて学ぶことで独学で進歩することを忘れないでください GNU / Linuxの 彼らが後で使用する知識を進歩させ続けるために、そしていくつかの開発についてここに提示されたすべてのもの モジュール、関数、変数、コマンドまたはアクション 一般に、ここで説明する方法とは異なる方法または代替方法で実行できます。

以下 私が作ったスクリーンキャスト、このモジュールがどのように実行されるか、前または後のモジュールを教えることができるので、中レベル(高度ではない)でシェルスクリプトの可能性を見ることができます。

LPI-SB8テストScreenCast

(LINUX POST INSTALL-BICENTENNIAL SCRIPT 8.0.0)-パート2


コメントを残す

あなたのメールアドレスが公開されることはありません。 必須フィールドには付いています *

*

*

  1. データの責任者:MiguelÁngelGatón
  2. データの目的:SPAMの制御、コメント管理。
  3. 正当化:あなたの同意
  4. データの伝達:法的義務がある場合を除き、データが第三者に伝達されることはありません。
  5. データストレージ:Occentus Networks(EU)がホストするデータベース
  6. 権利:いつでも情報を制限、回復、削除できます。

  1.   起こったもう一つ

    私がそれを正しく理解したかどうか持ってください。 ユーザーにユーザー名の入力を求めます...問題ありません。 そして、パスワードを入力した後...そしてパスワードが "lpi * sb8" ...であり、スクリプトに「ハードコードされている」ことがわかります。

    ユーザーがスクリプトへの読み取りアクセス権を持っている場合…ビンゴ!!…ユーザーは、入力する必要のあるユーザー名とパスワードをすでに知っています!!!

    何かを間違えたかどうかはわかりませんが...もしそうなら、それは非常に不確かです...

  2.   Ing。JoseAlbert

    本当です! 私は今、方法を与えました。人類を特徴付けるその生来の好奇心を持つそれぞれが、セキュリティラインでその完全性または強化を求めなければなりません。