Сертификат, подписанный пользовательским ЦС в Kubernetes, недействителен

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

Чаще всего я просто завершал процесс, хотя в некоторых случаях отличаться и может зависеть от окружающей среды, кому принадлежит соответствующие системы и задействованные процессы, что делает процесс, есть ли документация на тему "можно убить" или "нет, обращайтесь так что -и -так сначала» и т. д. Эти детали, возможно, придется проработать в после -посмертного собрания, как только уляжется пыль.Если есть запланированный миграции было бы хорошо заранее проверить, есть ли какие-либо процессы открывать проблемные файловые дескрипторы, чтобы с ними можно было справиться в не -аварийная настройка (задания cron или другие запланированные задачи, которые выполняются только в предрассветные часы, когда может выполняться миграция, легко пропустить, если вы проверяете только в дневное время ).

Только запись -по сравнению с чтением по сравнению с чтением -Запись

Ваша идея повторно открыть файловый дескриптор O_WRONLYпроблематична, поскольку не все файловые дескрипторы доступны только для записи -. Джон Вьега и Мэтт Мессье более тонкий подход в «Поваренной книге по безопасному программированию для C и C++» резервирование и обработка стандартного ввода иначе, чем стандартного вывода и стандартная ошибка (с. 25, «Безопасное управление файловыми дескрипторами»):

static int open_devnull(int fd) {
  FILE *f = 0;

  if (!fd) f = freopen(_PATH_DEVNULL, "rb", stdin);
  else if (fd == 1) f = freopen(_PATH_DEVNULL, "wb", stdout);
  else if (fd == 2) f = freopen(_PATH_DEVNULL, "wb", stderr);
  return (f && fileno(f) == fd);
}

В случае gdbдескриптор (или также FILE *дескриптор )должен быть проверить, доступен ли он только для чтения -или для чтения -для записи или только для записи -и соответствующая замена открыта на /dev/null. Если нет, то только однократное чтение -дескриптор, который теперь только для записи -, вызовет ненужные ошибки, если процесс пытается прочитать из этого.

Что может пойти не так?

Как именно ведет себя процесс, когда его файловые дескрипторы (и, вероятно, также FILE *ручки )возятся за кадром будет зависеть от процесс и будет варьироваться от «ничего страшного», если этот дескриптор никогда не будет привык к «кошмарному режиму», где теперь где-то есть поврежденный файл из-за к несброшенным данным, ни один файл -не был -должным образом -закрытым индикатором или каким-либо другим непредвиденная проблема.

Для FILE *обрабатывает добавление вызова fflush(3)перед закрытием дескриптор может помочь или может вызвать двойную буферизацию или какую-то другую проблему; это одна из нескольких опасностей случайных звонков в gdbне зная точно, что исходный код делает и ожидает.Программное обеспечение также могут иметь дополнительные уровни сложности, построенные поверх fdдескрипторы или дескрипторы FILE *, с которыми, возможно, также потребуется разобраться. Обезьяна, исправляющая код, может достаточно легко превратиться в гаечный ключ.

Резюме

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

0
25.02.2021, 23:43
1 ответ

Ты почти у цели, друг мой. SAN должен содержать как исходный CN (zevrant -, уведомление -, службу ), так и альтернативное имя (10.105.135.223 )

.

В настоящее время у вас есть 10.105.135.223 в качестве SAN, что делает недействительной исходную службу CN (zevrant -уведомления -).

0
18.03.2021, 22:28

Теги

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