Безопасный ввод данных в скриптах bash

Перевод: Secure Keyboard Input in BASH

Secure Keyboard Input in BASH Secure Keyboard Input in BASH

Мне тут нужно было написать простенький скрипт на bash, и чтобы он спрашивал пароль с клавиатуры и потом дальше передавал его другим командам по ходу дела. Оказывается, с такой задачей отлично справляется встроенная в bash функция read.

Стандартный ввод в скриптах bash

Вот как работает обычный ввод данных с клавиатуры: мы запускаем функцию read, указываем ей в в качестве параметра имя переменной. В консоли запрашивается ввод текста и когда мы его вводим, то отображается каждая буква ввода – мы видим, что печатаем.

Создаём скрипт:

$ vi input.sh

пока это вот такой контент:

#!/bin/bash
echo "Type your password, please:"
read PASS
echo "You just typed: $PASS"

Сохраняем это дело (жмём Esc, потом вводим :wq) и делаем скрипт исполняемым:

$ chmod a+rx input.sh

Теперь запускаем скрипт и тестируем:

$ ./input.sh
Type your password, please:
mypass
You just typed: mypass

Работает на ура, но отображать секретные пароли прямо на стадии ввода с клавиатуры – не очень секьюрно. В настоящей ситуации я и подтверждать пароль, печатая его в конце скрипта, тоже бы не стал.

Безопасный ввод в bash

Просто указываем параметр -s для функции read (правим скрипт):

read -s PASS

-s это от слова secure.

Сохраням и запускаем скрипт, и теперь во время ввода данных ничего отображаться не будет – как и полагается:

$ ./input.sh
Type your password, please:
You just typed: mypass

Здорово, правда?

Ссылки




Давайте учиться вместе!

Заходите на страницу Facebook или присоединяйтесь к чату в Telegram:
Я использую браузер Brave
Попробуйте сами: Brave Browser
IT Консалтинг
У меня есть консалтинговая компания: Tech Stack Solutions. Я помогаю планировать и создавать облачные решения на базе AWS и помогаю с развёртыванием и поддержкой сервисов на Unix/Linux. Свяжитесь со мной тут.
Последние заметки
19 Sep 2022

Linux Mint как OS для десктопа

08 Jul 2021

rsync over SSH

18 Jun 2021

Вышла CentOS 8.4

Recent Tweets