OpenConnect: Передача пароль пользователя При выполнении запроса на аутентификацию?

Вот как работает sed . При использовании с -i (редактирование на месте) sed создает временный файл с новым содержимым обработанного файла. По завершении sed заменяет текущий рабочий файл временным.Утилита не редактирует файл на месте . Именно так поступает каждый редактор.

Это похоже на выполнение следующей задачи в оболочке:

sed 'whatever' file >tmp_file
mv tmp_file file

В этот момент sed пытается сбросить буферизованные данные в файл, упомянутый в сообщении об ошибке, с помощью fflush () системный вызов:

Для выходных потоков fflush () принудительно выполняет запись всех буферизованных данных в пользовательском пространстве для данного выходного потока или обновления потока через {{1 }} базовая функция записи.


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

2
03.09.2018, 19:28
2 ответа

Обычно программное обеспечение VPN не позволяет пользователю вводить пароль, поскольку это считается угрозой безопасности.

Возможным решением является передача пароля через канал, как в:

echo -e "Tunnel all\nYourPassword" | openconnect --authenticate --user=<username> "VPN host"

Если мы говорим о том, что вам интересен этот способ написать скрипт:

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

PS Замените YourPassword своим реальным паролем

4
27.01.2020, 22:09

Мне это подходит:

echo 'your password' > passwd.auth
sudo openconnect <SERVER IP> --user=USERNAME --servercert sha256:<SHA256> --passwd-on-stdin < passwd.auth
1
24.12.2020, 18:44

Теги

Похожие вопросы