Назад | Перейти на главную страницу

Как скрыть пароль от ps, если он передан процессу через скрипт или командную строку

Итак, у меня есть некая программа, которая работает почти круглосуточно.

У меня есть сценарий запуска, который я написал на bash, который просто выполняет:

./app --user XXX --pass YYY

Есть еще несколько вариантов, но они не имеют отношения к этому вопросу.

После запуска пропуск всегда будет отображаться в пс для других пользователей, и я предполагаю, что и в других местах. Как мне этого не допустить? Приложение не может быть изменено, единственный вариант, который у меня есть, - это как-то передать пароль.

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

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

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

Каждый из них может потребовать изменений в самой программе, если она еще не поддерживает эти методы.

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

Этот подход менее безопасен, потому что он все еще будет виден на короткое время во время запуска программы. Некоторые программы уже делают это, но если программа еще не делает этого, для этого потребуется изменить программу.