Вы не далеко от лучшего подхода, учитывая ваши ограничения. У вас есть две проблемы для решения. Первое - это хранение пароля. Второй - надежно использовать пароль.
Сначала разберитесь со вторым - у вас огромная проблема в использовании программы командной строки. Используя параметры команды ps, пользователь может видеть аргументы, используемые при запуске программы командной строки. Из того, что вы написали, это будет содержать пароль в виде простого текста. Вы упоминаете, что это неизменный интерфейс. Тем не менее, как этический программист, вы должны поднять этот вопрос. Если бы это было банковское приложение, обрабатывающее финансовые транзакции, вы могли бы найти другую работу, а не быть частью неэтичного решения.
Переходя к безопасному хранению пароля, вы не упоминаете, какой язык вы используете для своих командных файлов. Если вы используете сценарий оболочки, то у вас мало возможностей, чем жестко зашифровать пароль в сценарии оболочки или прочитать его в виде простого текста из файла. Из вашего описания хранения пароля в отдельном файле я надеюсь, что вы, возможно, пишете программу на скомпилированном языке. Если это так, вы можете сделать немного лучше.
Если вы используете скомпилированный язык, вы можете зашифровать пароль в файле и расшифровать его в своей программе. Ключ для дешифрования находится в самой программе, поэтому его нелегко прочитать. Кроме того, я бы
- chmod 400 файл, чтобы другие пользователи не могли его прочитать
- добавить префикс точки ('.') К файлу, чтобы скрыть его от обычного списка каталогов
- переименуйте файл, чтобы сделать его менее интересным для чтения.
- будьте осторожны, чтобы не хранить ключ в простой строке - команда 'strings' напечатает все строки для печати из исполняемого образа Unix.
Сделав эти вещи, следующие шаги должны были бы улучшить управление ключами. Но я бы не стал заходить так далеко, пока проблема «ps» не прояснится. Нет смысла ставить третий засов на входную дверь, когда вы планируете оставить окно открытым.