Я шукаю (1) найбезпечніший і (2) найпростіший спосіб надати користувачеві пароль підказки на bash shell і щоб цей пароль став частиною stdin програми.
Ось як повинен виглядати stdin: {"username":"myname","password":"<my-password>"}
де <my-password>
саме те, що було введено в підказку оболонки. Якби я мав контроль над програмою stdin, то я міг би змінити її, щоб надійно запросити пароль і поставити його на місце, але низхідна частина - це стандартна команда загального призначення.
Я розглянув та відхилив підходи, які використовують наступне:
- користувач вводить пароль у командному рядку: пароль буде показаний на екрані і також буде видимий для всіх користувачів через "ps"
- інтерполяція змінної оболонки в аргумент зовнішньої програми (наприклад,
...$PASSWORD...
): пароль все одно буде видно всім користувачам через "ps" - змінні середовища (якщо вони залишаються в оточенні): пароль буде видимим для всіх дочірніх процесів; навіть надійні процеси можуть викрити пароль, якщо вони скидають змінні ядра чи дамп-середовища як частину діагностики
- пароль, який тривалий час сидить у файлі, навіть файл із чіткими дозволами: користувач може випадково викрити пароль, а користувач root може випадково побачити пароль
Я поставлю своє поточне рішення як відповідь нижче, але з радістю виберу кращу відповідь, якщо хтось придумає його. Я думаю, що має бути щось простіше, або, можливо, хтось бачить стурбованість безпекою, яку я пропустив.