1

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

3 ответа3

4

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

chmod go-rwx myscript

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


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

1

Поскольку вы упоминаете, что

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

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

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

ps aux | less -S

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

1

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .