Действительно ли возможно передать пароли сценарию оболочки?

Долгое время я ищу это, я хотел бы знать, что действительно ли возможно передать пароли в сценарии оболочки? Многие ответы, данные без. Недавно я прочитал статью, заявив это, как передать пароли в сценарии оболочки. Я попробовал это, но это, кажется, не работает. Это - ссылка. Может кто-либо checkitout и возвращаться назад? Также скажите, что меня там способ передать пароли в сценарии оболочки? Если не скажите меня, как Linux получает вход для пароля?

11
задан 3 June 2011 в 12:15

6 ответов

Путем "ввода паролей", Вы, вероятно, означаете вводить данные, не будучи видимыми для пользователя.

(предложенный geirha) При использовании удара можно использовать -s опция препятствовать тому, чтобы введенные символы были отображены:

read -p "Password please: " -s pass

С другой стороны, измените поведение терминала для сокрытия введенных символов с stty -echo (отключите echo). После чтения пароля со встроенной оболочкой read в переменную (в ниже примера, $pass), снова включите его с stty echo. Поскольку новая строка от Входит, скрыт к, необходимо распечатать новую строку для получения будущего вывода на новой строке.

stty -echo
read -p "Password please: " pass
stty echo
printf '\n'

read и printf созданная-ins оболочка. stty обеспечивается coreutils пакет, который установлен по умолчанию. Это означает, что этот отрывок является очень портативным.

Примечание: -p опция не является стандартной, но от bash. Если необходимо отобразить подсказку в других оболочках, используйте:

printf "Password please: "
stty -echo
read pass
stty echo
printf '\n'

Ссылки:

12
ответ дан 23 November 2019 в 04:04

Которой программе Вы хотите передать пароль?

Сценарий на ссылке работает на меня. Обратите внимание, что это не сценарий оболочки, а ожидать сценарий (нуждается в пакете expect быть установленным'). Используя ожидают, распространенный способ автоматизировать базирующиеся интерактивные программы текста.

Неинтерактивная ssh логины часто делаются с помощью основанной на ключе аутентификации с пустым паролем.

Некоторые другие программы (как sudo) имейте опции считать пароль из stdin.

При обеспечении пароля, поскольку параметр командной строки часто является проблемой безопасности как в большинстве систем, как которые любой пользователь видит, что любые другие пользовательские процессы включают там параметры командной строки с помощью простых инструментов ps.

2
ответ дан 23 November 2019 в 04:04

Сценарий никогда не должен действительно обрабатывать пароли. Имейте, какой бы ни для приложения нужен пароль, просят его сам, или если это не возможно, найдите лучшее средство аутентификации с приложением. Прочитайте http://mywiki.wooledge.org/BashFAQ/069

1
ответ дан 23 November 2019 в 04:04

можно просто сделать что-то вроде этого.

# echo -e "password_here\npassword_here" | su user

источник

-1
ответ дан 23 November 2019 в 04:04

Существует способ сохранить пароли в сценарии удара, но необходимо зашифровать сценарий, таким образом, никто не может на самом деле считать его или выполнить любой тип отладчика на нем для наблюдения точно, что он делает. Зашифровать удар/сценарий оболочки и иметь его на самом деле быть исполняемым файлом, попытка копировать и вставить его здесь

На вышеупомянутой странице все, что необходимо сделать, отправляют сценарий (можно отправить демонстрационный сценарий сначала для душевного спокойствия). Zip-файл будет сгенерирован для Вас. Щелкните правой кнопкой по ссылке на загрузку и скопируйте URL, который Вам предоставляют. Затем перейдите к своему полю UNIX и выполните следующие шаги.

Установка:

   wget link-to-the-zip-file
   unzip the-newly-downloaded-zip-file
   cd /tmp/KingLazySHIELD
   ./install.sh  /var/tmp/KINGLAZY/SHIELDX-(your-script-name) /home/(your-username)  -force 

То, что вышеупомянутая команда установки сделает для Вас:

  1. Это установит зашифрованный сценарий в каталоге /var/tmp/KINGLAZY/SHIELDX-(your-script-name).

  2. Это поместит ссылку на этот зашифрованный сценарий в том, какой бы ни каталог Вы указываете в замене /home/(your-username) - тем путем это позволяет Вам легко получать доступ к сценарию, не имея необходимость вводить полный путь.

  3. Гарантирует, что НИКТО не может изменить сценарий - Любые попытки изменить зашифрованный сценарий представят его неоперабельный..., пока те попытки не будут остановлены или удалены.

  4. Гарантирует, что абсолютно никакой не может сделать копии из него. Никто не может скопировать Ваш сценарий в уединенное местоположение и попытаться валять дурака с ним, чтобы видеть, как он работает. Все копии сценария должны быть ссылками на исходное местоположение, которое Вы указали во время установки.

Примечание:

Я не полагаю, что это работает на интерактивные сценарии, который предлагает пользователю ответ. Значения должны быть hardcoded в сценарий. Шифрование гарантирует, что никто не может на самом деле видеть те значения, таким образом, Вы не должны волноваться об этом.

0
ответ дан 23 November 2019 в 04:04

Я тоже столкнулся с этой проблемой и создал для этого инструмент с открытым исходным кодом (лицензия MIT) под названием encpass.sh. (https://github.com/plyint/encpass.sh) Он создает ключ для скрипта и сохраняет ключ и зашифрованные секреты в скрытом каталоге на диске. (Обычно в домашнем каталоге вашего пользователя, но вы можете указать другое место, если хотите)

0
ответ дан 20 October 2020 в 04:52

Другие вопросы по тегам:

Похожие вопросы: