Яка перевага синхронізації UID / GID на машинах Linux?


24

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

Я знаю, що це підтримує синхронізацію файлів порівняно просто (оскільки право власності "природно" зберігається). Однак цього можна досягти інакше залежно від послуги передачі.

Чи є ще щось, що виграло б від послідовних UID / GID?


4
Не забувайте, змінюючи uid / gid, оновлювати архіви (файли tar тощо), а також конфігуруйте файли, які можуть використовувати числові ідентифікатори замість uidname / групи імен.
Олів'є Дулак

Відповіді:


31

технічна заборгованість

З причин, поданих нижче, набагато простіше вирішити цю проблему на початку, щоб уникнути накопичення технічної заборгованості . Навіть якщо ви опинилися вже в цій ситуації, напевно, краще впоратися з цим найближчим часом, ніж дозволити йому продовжувати будувати.

мережеві файлові системи

Це питання, схоже, зосереджено на вузькій області передачі файлів між машинами з локальними файловими системами, що дозволяє визначати стан власності, визначений для машини.

Міркування щодо мережевої файлової системи - це найбільший випадок, коли намагаються синхронізувати ваші відображення UID / GID, тому що зазвичай ви можете викинути те "досягнуте інакше", яке ви згадали у вікно в момент, коли вони входять у зображення. Звичайно, ви не могли б мати мережеві файлові системи розділені між цими хостами прямо зараз ... але що про майбутнє? Чи можете ви чесно сказати, що ніколи не буде випадку використання мережевої файлової системи між вашими поточними хостами або хостами, які будуть створені в майбутньому? Не думати вперед, щоб припустити інше.

Припустимо, що /homeце мережева файлова система, спільна між host1і host2в наступних прикладах.

  • Дозволи на розбіжність : /home/user1належить різному користувачеві в кожній системі. Це не дозволяє користувачеві мати можливість послідовно отримувати доступ або змінювати свій домашній каталог у всіх системах.
  • Човен війни : Користувач дуже часто подає квиток, вимагаючи, щоб дозволи домашнього каталогу були зафіксовані на певній системі. Виправлення цієї проблеми на host2розривах дозволів на host1. Іноді може бути відпрацьовано декілька цих квитків, перш ніж хтось відступить назад і зрозуміє, що в боротьбі буксир. Єдине рішення - виправити невідповідні відображення ідентифікаторів. Що призводить до ...
  • Пекельне збалансування UID / GID : Складність виправлення ідентифікаторів пізніше зростає експоненціально за рахунок кількості переоформлень, задіяних для виправлення одного користувача на кількох машинах. ( 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 це досить добре висвітлює.


Я не настільки впевнений, що правильно сказати, що використання мережевої файлової системи запобігає виправленню проблем із різними полями, я знаю принаймні одну файлову систему, яка підтримує uid-карту, що дозволяє визначати, які групи та користувачі відповідають на різних машинах.
Vality

@Vality Якщо це було загальнодоступне рішення, я все ще вагаюся, називаючи це масштабованим.
Андрій Б

Я погоджуюся, я просто не хотів змушувати ОП вважати це неможливим, я багато в чому погоджуюся з вашою думкою про те, що найкраще рішення - це синхронізація.
Vality

Спасибі! На жаль, "рано" вже давно. Хоча я знаю, що деяка конфігурація ldap / kerberos - це те, що я хотів би включити сюди, де я працюю, але цього не було б зараз. З інших причин мене спеціально зацікавило використання UID / GID у взаємодіючих системах. Як я вже сказав, передача файлів - це одна проблема (яка наразі має статус "це працює"), тому я хотів знати, чи є інші речі (як ви вже згадували), які також впливають на UID. Чи можете ви додати кілька ключових слів тих "інших сценаріїв"? Це зробило б це чудовою відповіддю!
алекс

@alex Ну, я мав на увазі "інші сценарії" з точки зору проблем з мережевою файловою системою. Незалежно від того, як ви запізнюєтесь у грі, проблема лише продовжує зростати, оскільки залишається без розгляду. Якщо причини, які ми надали, не є адекватними, це, ймовірно, допоможе, якщо ви трохи більше керували своїм питанням, надаючи ці "інші причини". На сьогоднішній день відповіді, на мою думку, досить хороші. Якщо ви намагаєтесь переконати менеджмент, відповідальність не на нас, щоб змусити їх робити правильно.
Ендрю Б

18

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

Ви підтримуєте всю інформацію про облікові записи / групи в центральній базі даних, всі хости поділяються цією інформацією. Звідти можна зробити багато іншого: звичайно використовувати інформацію про користувачів для дозволу файлів, але також створювати віртуальних користувачів для всіх програм, які мають прив'язки ldap, а не створювати своїх користувачів там (багато веб-додатків можуть також використовувати ldap для їх баз даних користувачів), підтримувати центральну базу даних правил sudo, поширювати середовище autofs, зберігати зони dns, ...

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.