Прежде чем я углублюсь в глубину того, как синхронизировать UID / GID на разных компьютерах с Linux, я хотел бы знать, что на самом деле является преимуществом?
Я знаю, что это позволяет относительно легко синхронизировать файлы (поскольку владение «естественно» сохраняется). Однако это также может быть достигнуто иначе в зависимости от услуги передачи.
Есть ли что-нибудь еще, что выиграло бы от согласованных UID / GID?
linux
synchronization
uid
Алекс
источник
источник
Ответы:
технический долг
По причинам, изложенным ниже, гораздо проще решить эту проблему на раннем этапе, чтобы избежать накопления технического долга . Даже если вы уже оказались в такой ситуации, вероятно, лучше разобраться с этим в ближайшем будущем, чем позволить ему продолжить строительство.
сетевые файловые системы
Этот вопрос, по-видимому, сосредоточен на узкой области передачи файлов между компьютерами с локальными файловыми системами, которая допускает конкретные состояния владения машиной.
Соображения, касающиеся сетевой файловой системы, - это, пожалуй, самый большой случай, когда вы пытаетесь синхронизировать ваши UID / GID-сопоставления, потому что вы обычно можете выбросить это «достигнутое иначе», которое вы упомянули в окне в тот момент, когда они входят в изображение. Конечно, вы не могли бы иметь сетевые файловые системы разделены между этими хостами прямо сейчас ... но что о будущем? Можете ли вы честно сказать, что никогда не будет прецедента использования сетевой файловой системы между вашими текущими хостами или хостами, которые будут созданы в будущем? Это не очень дальновидно, чтобы думать иначе.
Предположим, что
/home
это сетевая файловая система, используемая совместноhost1
иhost2
в следующих примерах./home/user1
принадлежит каждому пользователю в каждой системе. Это лишает пользователя возможности иметь постоянный доступ или изменять свой домашний каталог в разных системах.host2
нарушает права доступаhost1
. Иногда может потребоваться сработать несколько таких билетов, прежде чем кто-то отступит и поймет, что в игре идет перетягивание каната. Единственное решение - исправить несоответствующие идентификаторы. Что приводит к...user1
имеет идентификаторuser2
, ноuser2
имеет идентификаторuser17
... и это только первая система в кластере) Чем дольше вы ждете решения проблемы, тем сложнее могут стать эти цепочки, что часто требует простоев приложений на нескольких серверах для того, чтобы все правильно синхронизировать.user2
наhost2
имеет тот же UID , какuser1
наhost1
, что позволяет им писать/home/user1
наhost2
без ведомаuser1
. Эти изменения затем оцениваютсяhost1
с разрешениямиuser1
. Что возможно могло пойти не так? (еслиuser1
это пользователь приложения, кто - то в разработчике будет открыть его для записи и будет вносить изменения. это время доказанный факт.)Существуют и другие сценарии, и это лишь примеры наиболее распространенных.
имена не всегда вариант
Любые сценарии или файлы конфигурации, написанные с использованием числовых идентификаторов, по своей природе становятся непереносимыми в вашей среде. Как правило, это не проблема, потому что большинство людей не кодируют их жестко, если они абсолютно не обязаны ... но иногда инструмент, с которым вы работаете, не дает вам выбора в этом вопросе. В этих сценариях вы вынуждены поддерживать n разных версий скрипта или файла конфигурации.
Пример:
pam_succeed_if
позволяет использовать поляuser
,uid
иgid
... вариант «группа» явно отсутствует. Если бы вы оказались в положении, когда несколько систем должны были реализовать какую-либо форму ограничения доступа на основе групп, у вас было бы n различных вариантов конфигураций PAM. (или хотя бы один GID, на котором вы должны избегать столкновений)централизованное управление
Ответ natxo достаточно хорошо освещен.
источник
Как только вы достигнете определенного размера (и это всегда раньше, чем вы думаете), вы поймете, что изменение ваших паролей или отключение учетных записей для кого-то на всех хостах - это PITA. Вот почему люди используют системы с базами данных LDAP (или NIS, но не делают этого, в наше время небезопасно), такие как openldap или в наши дни отличная freeipa.
Вы храните информацию обо всех учетных записях / группах в центральной базе данных, все хосты делятся этой информацией. Оттуда вы можете сделать гораздо больше: использовать информацию о пользователях для разрешений на файлы, конечно, но также создавать виртуальных пользователей для всех приложений, которые имеют привязки ldap, вместо того, чтобы создавать там своих пользователей (многие веб-приложения могут использовать ldap для их пользовательской базы данных), поддерживайте центральную базу данных правил sudo, распространяйте свою среду autofs, сохраняйте зоны DNS, ...
источник