Yum от имени root работает только если я использую команду sudo.

Вопрос или проблема

Это для RHEL 7.8…
Я поддерживаю виртуальную машину для клиента, где третья сторона использует учетную запись root для обновления пакетов. Когда они используют yum под root, они получают тайм-аут, как в этом примере (обратите внимание: это не зависит от пакета и не специфично для репозитория):
https://rhui-2.microsoft.com/pulp/repos/microsoft-azure-rhel7/repodata/repomd.xml: [Errno 12] Timeout on https://rhui-2.microsoft.com/pulp/repos/microsoft-azure-rhel7/repodata/repomd.xml: (28, ‘Operation timed out after 30001 milliseconds with 0 out of 0 bytes received’)

Однако я заметил, что при использовании команды sudo все работает без проблем.
Вкратце, как root, эта команда не работает (просто вылетает по тайм-ауту при попытке доступа к любому репозиторию, см. ошибку тайм-аута выше):
yum install -y java-11-openjdk

Но эта команда работает:
sudo yum install -y java-11-openjdk

Есть идеи, что могло бы вызвать эту проблему? Очевидно, с sudo все в порядке. Клиент хочет, чтобы они использовали учетную запись root, поэтому создание для них собственной учетной записи — не вариант. Мне действительно интересно, почему вообще нужно запускать sudo от имени root, чтобы что-то заработало? Это проблема связанная с PATH?

Ответ или решение

Ваша ситуация с использованием yum в RHEL 7.8 действительно интересная и требует внимательного анализа. Давайте разберемся, почему команда yum работает только с использованием sudo, даже когда вы уже находитесь под учетной записью root.

Проблема с timeout на RHEL 7.8

Ошибка, которую вы видите, связана с тем, что команда yum не может подключиться к репозиториям, причем возникает таймаут. Это может быть следствием нескольких причин:

  1. Ограничения сети: Иногда сетевые политики настроены так, что некоторые соединения блокируются или ограничиваются, когда используется учетная запись root напрямую. Sudo может обходить некоторые из этих ограничений, так как он будет наследовать сетевые политики пользователя, от чьего имени было выполнено это действие.

  2. Настройки environment (окружение): Команда sudo может изменять переменные окружения, которые необходимы для правильной работы yum. Возможно, PATH или другие переменные среды настроены таким образом, что их значения различаются для root и для выполнения команд через sudo как root.

  3. Конфигурационные файлы: Возможно, что конфигурация в sudoers или другие конфигурационные файлы содержат специфические настройки для yum, которые позволяют ему успешно подключаться к репозиториям.

  4. Разрешения и SELinux: Иногда проблемы возникают из-за настроек безопасности, таких как SELinux, которые могут ограничивать доступ root к определенным сетевым операциям. Sudo может предоставить необходимые контексты безопасности, чтобы обойти эти ограничения.

Возможные решения

  1. Проверка переменных окружения: Убедитесь, что переменные среды (например, PATH) для root и sudo совпадают. Вы можете использовать команды env и sudo env, чтобы сравнить их значения.

  2. Анализ сетевых политик и безопасности: Проверьте, нет ли ограничений на уровне сети или настроек безопасности, которые могут блокировать соединения для root. Инструменты для проверки iptables и SELinux могут быть полезны.

  3. Логи: Просмотрите журналы /var/log/messages, /var/log/secure и /var/log/audit/audit.log на предмет каких-либо специфических ошибок или предупреждений, которые могут указывать на причину проблемы.

  4. Настройки sudoers: Проверьте конфигурации в /etc/sudoers, чтобы убедиться, что там нет особых настроек, которые могут влиять на работу yum.

Заключение

Проблема, с которой вы столкнулись, проистекает из особенностей настройки окружения и безопасности в вашей системе. Хотя техническое решение может варьироваться в зависимости от этих настроек, целесообразно исследовать окружение и конфигурации подробнее. Это не столько проблема с PATH, сколько с различиями в сети и безопасности при использовании sudo.

Оцените материал
Добавить комментарий

Капча загружается...