Долгое время я ищу это, я хотел бы знать, что действительно ли возможно передать пароли в сценарии оболочки? Многие ответы, данные без. Недавно я прочитал статью, заявив это, как передать пароли в сценарии оболочки. Я попробовал это, но это, кажется, не работает. Это - ссылка. Может кто-либо checkitout и возвращаться назад? Также скажите, что меня там способ передать пароли в сценарии оболочки? Если не скажите меня, как Linux получает вход для пароля?
Путем "ввода паролей", Вы, вероятно, означаете вводить данные, не будучи видимыми для пользователя.
(предложенный 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'
Ссылки:
Которой программе Вы хотите передать пароль?
Сценарий на ссылке работает на меня. Обратите внимание, что это не сценарий оболочки, а ожидать сценарий (нуждается в пакете expect
быть установленным'). Используя ожидают, распространенный способ автоматизировать базирующиеся интерактивные программы текста.
Неинтерактивная ssh
логины часто делаются с помощью основанной на ключе аутентификации с пустым паролем.
Некоторые другие программы (как sudo
) имейте опции считать пароль из stdin.
При обеспечении пароля, поскольку параметр командной строки часто является проблемой безопасности как в большинстве систем, как которые любой пользователь видит, что любые другие пользовательские процессы включают там параметры командной строки с помощью простых инструментов ps
.
Сценарий никогда не должен действительно обрабатывать пароли. Имейте, какой бы ни для приложения нужен пароль, просят его сам, или если это не возможно, найдите лучшее средство аутентификации с приложением. Прочитайте http://mywiki.wooledge.org/BashFAQ/069
можно просто сделать что-то вроде этого.
# echo -e "password_here\npassword_here" | su user
Существует способ сохранить пароли в сценарии удара, но необходимо зашифровать сценарий, таким образом, никто не может на самом деле считать его или выполнить любой тип отладчика на нем для наблюдения точно, что он делает. Зашифровать удар/сценарий оболочки и иметь его на самом деле быть исполняемым файлом, попытка копировать и вставить его здесь
На вышеупомянутой странице все, что необходимо сделать, отправляют сценарий (можно отправить демонстрационный сценарий сначала для душевного спокойствия). 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
То, что вышеупомянутая команда установки сделает для Вас:
Это установит зашифрованный сценарий в каталоге /var/tmp/KINGLAZY/SHIELDX-(your-script-name)
.
Это поместит ссылку на этот зашифрованный сценарий в том, какой бы ни каталог Вы указываете в замене /home/(your-username)
- тем путем это позволяет Вам легко получать доступ к сценарию, не имея необходимость вводить полный путь.
Гарантирует, что НИКТО не может изменить сценарий - Любые попытки изменить зашифрованный сценарий представят его неоперабельный..., пока те попытки не будут остановлены или удалены.
Гарантирует, что абсолютно никакой не может сделать копии из него. Никто не может скопировать Ваш сценарий в уединенное местоположение и попытаться валять дурака с ним, чтобы видеть, как он работает. Все копии сценария должны быть ссылками на исходное местоположение, которое Вы указали во время установки.
Примечание:
Я не полагаю, что это работает на интерактивные сценарии, который предлагает пользователю ответ. Значения должны быть hardcoded в сценарий. Шифрование гарантирует, что никто не может на самом деле видеть те значения, таким образом, Вы не должны волноваться об этом.
Я тоже столкнулся с этой проблемой и создал для этого инструмент с открытым исходным кодом (лицензия MIT) под названием encpass.sh. (https://github.com/plyint/encpass.sh) Он создает ключ для скрипта и сохраняет ключ и зашифрованные секреты в скрытом каталоге на диске. (Обычно в домашнем каталоге вашего пользователя, но вы можете указать другое место, если хотите)