Назад | Перейти на главную страницу

В чем преимущество синхронизации UID / GID между машинами Linux?

Прежде чем я углублюсь в то, как синхронизировать UID / GID на разных машинах Linux, я хотел бы знать, в чем собственно преимущество?

Я знаю, что это позволяет относительно легко синхронизировать файлы (поскольку право собственности сохраняется «естественным образом»). Однако это также может быть достигнуто другим способом в зависимости от услуги передачи.

Есть ли еще что-нибудь, что выиграет от согласованных UID / GID?

технический долг

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

сетевые файловые системы

Этот вопрос, по-видимому, сосредоточен на узкой сфере передачи файлов между машинами с локальными файловыми системами, что позволяет использовать конкретные состояния владения машиной.

Соображения по поводу сетевой файловой системы - это самый важный аргумент при попытке сохранить ваши сопоставления UID / GID в синхронизации, потому что вы обычно можете выбросить это «достигнутое в противном случае», о котором вы упомянули, из окна в тот момент, когда они входят в изображение. Конечно, у вас может не быть сетевых файловых систем, совместно используемых этими хостами. сейчас... а что насчет будущего? Можете ли вы честно сказать, что никогда не будет варианта использования сетевой файловой системы между вашими текущими хостами или хостами, которые будут созданы в будущем? Было бы не очень дальновидно предполагать иное.

Предположим, что /home это сетевая файловая система, совместно используемая host1 и host2 в следующих примерах.

  • Несогласие с разрешениями: /home/user1 принадлежит разному пользователю в каждой системе. Это препятствует тому, чтобы пользователь мог постоянно получать доступ или изменять свой домашний каталог в разных системах.
  • Chown Wars: Пользователь очень часто отправляет заявку с просьбой зафиксировать права доступа к домашнему каталогу в конкретной системе. Устранение этой проблемы на host2 нарушает разрешения на host1. Иногда может потребоваться несколько таких билетов, прежде чем кто-то отступит и поймет, что идет перетягивание каната. Единственное решение - исправить несовпадающие сопоставления идентификаторов. Что приводит к...
  • Ад ребалансировки UID / GID: Сложность исправления идентификаторов позже возрастает экспоненциально по количеству повторных применений, необходимых для исправления одного пользователя на нескольких машинах. (user1 имеет идентификатор user2, но user2 имеет идентификатор user17... и это всего лишь первая система в кластере) Чем дольше вы ждете, чтобы исправить проблему, тем сложнее могут стать эти цепочки, часто требующие простоя приложений на нескольких серверах для правильной синхронизации.
  • Проблемы безопасности: user2 на host2 имеет тот же UID, что и user1 на host1, позволяя им писать на /home/user1 на host2 без ведома user1. Затем эти изменения оцениваются на host1 с разрешения user1. Что возможно могло пойти не так? (если user1 пользователь приложения, кто-то из разработчиков воля обнаружить, что он доступен для записи и воля вносить изменения. это факт проверенный временем.)

Есть и другие сценарии, и это лишь примеры наиболее распространенных.

имена не всегда вариант

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

Пример: pam_succeed_if позволяет использовать поля user, uid, и gid... "групповой" вариант явно отсутствует. Если бы вас поставили в положение, когда ожидается, что несколько систем будут реализовывать некоторую форму ограничения доступа на основе групп, у вас будет п разные варианты конфигов PAM. (или хотя бы один GID, с которым вы должны избегать коллизий)

централизованное управление

Ответ natxo хорошо покрывает это.

как только вы достигнете определенного размера (и это всегда произойдет раньше, чем вы думаете), вы поймете, что изменение ваших паролей или отключение учетных записей для кого-то на всех хостах - это PITA. Вот почему люди используют системы с базами данных LDAP (или NIS, но не делают этого, в настоящее время небезопасно), такие как openldap или отличная в настоящее время freeipa.

Вы храните всю информацию об учетных записях / группах в центральной базе данных, все хосты разделяют эту информацию. Отсюда вы можете делать гораздо больше: использовать информацию о пользователях для прав доступа к файлам, но также создавать виртуальных пользователей для всех приложений с привязками ldap вместо того, чтобы создавать там своих пользователей (многие веб-приложения могут использовать ldap для своей пользовательской базы данных), поддерживать центральную базу данных правил sudo, распространять вашу среду autofs, сохранять свои зоны DNS, ...