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

частичное завершение пути к каталогу в стиле emacs в bash
Терминал Linux-замороженное обновление ввода, но может выполнять команды?
Управление несколькими серверами Linux одновременно
Windows 10 Ubuntu-создание папки из windows, то доступ из Bash
Как соединить файлы в командной строке без создания временных файлов?
Как сделать резервную копию недавно измененных файлов в Bash?
Какова область "экспортируемых" переменных оболочки Unix?
Использование systemd для выполнения интерактивного сценария (whiptail) после многопользовательского.цель, но до экрана входа в систему
Запуск tcpdump на удаленной машине без tty с помощью ssh
"read" работает как ожидалось в ZSH, но ведет себя по-другому при использовании любой другой оболочки
Учетные записи пользователей в WSL (Подсистема Windows для Linux)
Символы UTF8 в терминале bash windows 10
перенаправление netcat и tee через скрипт bash
Bash-хранение значения ключа в переменных, объявленных в ассоциативном массиве
Запрос Postgresql в скрипте bash

Прятать пароль в скрипт

У меня есть сценарий bash, который выполняет файл Java. Этот файл Java подключается к онлайн-сервису, и он требует, чтобы в качестве одного из параметров я дал ему свой пароль для сервиса. Мне неудобно вводить пароль в файл bash, чтобы кто-нибудь мог его увидеть. Есть ли способ для меня "скрыть" пароль в файле bash, зашифровать его или что-то еще?

5
задан Lenny K
источник

3 ответов

использовать chmod сделать скрипт читаемым только самостоятельно.

chmod go-rwx myscript

Если скрипт должен быть публичным, тогда нет хорошего способа защитить его-пароль все равно должен быть расшифрован перед тем, как будет передан программе Java, и если скрипт может это сделать, любой может это сделать.


если он должен быть запущен несколькими пользователями, но на машине, которой вы управляете, вы можете сохранить его защищенным (chmod) и настроить sudo разрешить запуск только этого конкретного сценария. (Для более сложных вещей может быть сделано какое-то разделение на клиент и сервер, но это еще не обязательно.) Однако помните, что вся командная строка вашего Java-приложения будет видны в ps -f пока он работает.

4
отвечен grawity 2011-09-01 23:49:06
источник

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

1
отвечен LawrenceC 2011-09-02 00:23:16
источник

раз уж вы упомянули об этом

один из параметров

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

для демонстрации попробуйте:

ps aux | less -S

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

1
отвечен Slartibartfast 2011-09-02 05:14:03
источник

Другие вопросы bash encryption java passwords