3

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

2 ответа2

3

Нет.

Ну, технически вы можете передать необработанный заголовок Authorization используя --header . Но полезность этого была бы точно равна нулю . Base64 - это только кодировка, используемая для предотвращения повреждения двоичных данных, но она ничего не скрывает - ее можно изменить в любой момент, например, с помощью команды base64 , любой, кто читает ваш сценарий.

Другими словами, даже если вы сделаете это, пароль все равно будет в текстовом формате.

2

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

Возможно, вам придется перепрыгнуть через некоторые обручи, чтобы использовать setuid, что означает, что пользователи, которые могут читать и выполнять сценарий, не могут прочитать файл паролей. Unix.stackexchange имеет хороший ответ на эту тему. В вашем случае не повышайте эффективный UID до root, просто используйте обычный ID, созданный только для этой цели (например, скрипт запускается как wally, wally владеет password.txt (r --------) wally не имеет специальных привилиги, но те, которые нужны для записи логов или выходных файлов, чтобы поделиться с другими)

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