Frage Was ist der Vorteil der Synchronisierung von UID / GID auf Linux-Maschinen?


Bevor ich in die Tiefen der Synchronisierung von UIDs / GIDs auf meinen verschiedenen Linux-Rechnern einsteigen möchte, würde ich gerne wissen, was eigentlich der Vorteil ist?

Ich weiß, dass dies die Dateisynchronisierung relativ einfach hält (da das Eigentumsrecht "natürlich" beibehalten wird). Dies kann jedoch auch in Abhängigkeit vom Übertragungsdienst erreicht werden.

Gibt es noch etwas, das von konsistenten UIDs / GIDs profitieren würde?


23
2018-06-10 05:14


Ursprung


Vergessen Sie nicht, wenn Sie uid / gid ändern, Archive (TAR-Dateien usw.) zu aktualisieren, und conf-Dateien, die numerische IDs anstelle von UID-Name / Gruppennamen verwenden können. - Olivier Dulac


Antworten:


Technische Schulden

Aus den folgenden Gründen ist es viel einfacher Dieses Problem frühzeitig anzugehen, um die Anhäufung von Technische Schulden. Selbst wenn Sie sich bereits in dieser Situation befinden, ist es wahrscheinlich besser, in naher Zukunft damit fertig zu werden, als weiter bauen zu lassen.

vernetzte Dateisysteme

Diese Frage scheint sich auf den engen Umfang der Übertragung von Dateien zwischen Maschinen mit lokalen Dateisystemen zu konzentrieren, der maschinenspezifische Besitzzustände erlaubt.

Überlegungen zum Netzwerk-Dateisystem sind leicht der größte Grund dafür, dass Sie versuchen, Ihre UID / GID-Zuordnungen synchron zu halten, da Sie das "Erreichte", das Sie sonst erwähnt haben, in dem Moment aus dem Fenster werfen können. Sicher, Sie haben möglicherweise keine Netzwerk-Dateisysteme zwischen diesen Hosts jetzt sofort... aber was ist mit der Zukunft? Können Sie ehrlich sagen, dass es nie einen Anwendungsfall für ein Netzwerk-Dateisystem geben wird, das zwischen Ihren aktuellen Hosts oder Hosts, die in der Zukunft erstellt werden, eingeführt wird? Es ist nicht sehr vorausschauend, etwas anderes anzunehmen.

Annehmen, dass /home ist ein vernetztes Dateisystem zwischen host1 und host2 in den folgenden Beispielen.

  • Abweichende Berechtigungen: /home/user1 gehört auf jedem System einem anderen Benutzer. Dies verhindert, dass ein Benutzer konsistent auf sein systemübergreifendes Stammverzeichnis zugreifen oder dieses ändern kann.
  • Chown Kriege: Es ist sehr üblich, dass ein Benutzer ein Ticket einreicht, in dem er darum bittet, dass seine Home-Verzeichnis-Berechtigungen auf einem bestimmten System festgelegt werden. Behebung dieses Problems host2 bricht die Berechtigungen ab host1. Es kann manchmal dauern, dass mehrere dieser Tickets bearbeitet werden, bevor jemand zurücktritt und erkennt, dass ein Tauziehen im Spiel ist. Die einzige Lösung besteht darin, die abweichenden ID-Zuordnungen zu korrigieren. Was dazu führt...
  • UID / GID, um die Hölle neu zu ordnen: Die Komplexität der ID-Korrektur erhöht sich später exponentiell durch die Anzahl der vorgenommenen Neuanmeldungen, um einen einzelnen Benutzer über mehrere Maschinen hinweg zu korrigieren. (user1 hat die ID von user2, aber user2 hat die ID von user17... und das ist nur das erste System im Cluster. Je länger Sie warten, um das Problem zu beheben, desto komplexer können diese Ketten werden, was oft die Ausfallzeit von Anwendungen auf mehreren Servern erfordert, um die Dinge richtig synchron zu halten.
  • Sicherheitsprobleme: user2 auf host2 hat die gleiche UID wie user1 auf host1und ihnen erlauben, zu schreiben /home/user1 auf host2 ohne das Wissen von user1. Diese Änderungen werden dann am ausgewertet host1 mit den Berechtigungen von user1. Was könnte möglicherweise falsch laufen? (ob user1 ist ein App-Benutzer, jemand in Dev werden entdecke es beschreibbar und werden Änderungen vornehmen Das ist eine erwiesene Tatsache.)

Es gibt andere Szenarien, und dies sind nur Beispiele für die häufigsten.

Namen sind nicht immer eine Option

Alle Skripts oder Konfigurationsdateien, die mit numerischen IDs geschrieben werden, sind in Ihrer Umgebung nicht mehr portierbar. Im Allgemeinen kein Problem, weil die meisten Leute diese nicht hart codieren, es sei denn, sie sind absolut erforderlich ... aber manchmal gibt dir das Tool, mit dem du arbeitest, keine Wahl in der Sache. In diesen Szenarios müssen Sie warten n verschiedene Versionen des Skripts oder der Konfigurationsdatei.

Beispiel: pam_succeed_if können Sie Felder von verwenden user, uid, und gid... eine "Gruppen" -Option ist auffallend abwesend. Wenn Sie in eine Position gebracht wurden, in der von mehreren Systemen erwartet wurde, dass sie irgendeine Art von gruppenbasierter Zugriffsbeschränkung implementieren, hätten Sie das getan n verschiedene Varianten der PAM-Konfigurationen. (oder mindestens eine einzige GID, auf der man Kollisionen vermeiden muss)

zentralisierte Verwaltung

Natxos Antwort hat das ziemlich gut abgedeckt.


30
2018-06-10 06:08



Ich bin mir nicht sicher, ob es richtig ist zu sagen, dass die Verwendung eines vernetzten Dateisystems die Behebung von Problemen mit unterschiedlichen UIDs verhindert. Ich kenne mindestens ein Dateisystem, das eine UID-Map unterstützt, mit der Sie festlegen können, welche Gruppen und Benutzer auf verschiedenen Rechnern zusammenarbeiten. - Vality
@Vality Wäre das eine allgemein verfügbare Lösung, würde ich immer noch zögern, sie als skalierbar zu bezeichnen. - Andrew B
Ich stimme dem zu, ich wollte einfach nicht, dass das OP es für unmöglich hält, ich stimme weitgehend mit Ihrem Vorschlag überein, dass die beste Lösung darin besteht, sie synchron zu halten. - Vality
Vielen Dank! Leider ist "früh" schon lange vorbei. Während ich weiß, dass einige ldap / kerberos-Konfiguration etwas ist, das ich hier einschließen möchte, wo ich arbeite, aber das wäre jetzt nicht. Aus anderen Gründen war ich speziell an der Verwendung von UID / GID in interoperablen Systemen interessiert. Wie ich schon sagte File-Transfer ist ein Problem (das hat derzeit einen "es funktioniert" Status), deshalb wollte ich wissen, ob es andere Dinge (wie Sie erwähnt) auch von UIDs betroffen sind. Könnten Sie einige Keywords dieser "anderen Szenarien" hinzufügen? Das wäre eine großartige Antwort! - alex
@alex Nun, ich meinte "andere Szenarien" in Bezug auf Probleme mit Netzwerk-Dateisystem. Egal, wie spät es ist, das Problem wird nur noch schlimmer, weil es nicht angesprochen wird. Wenn die von uns zur Verfügung gestellten Gründe nicht ausreichen, würde es wahrscheinlich helfen, wenn Sie Ihre Frage ein wenig mehr durch die Angabe dieser "anderen Gründe" steuern würden. Die Antworten sind meiner Meinung nach ziemlich gut. Wenn Sie versuchen, das Management zu überzeugen, liegt es nicht an uns, sie dazu zu bringen, das Richtige zu tun. - Andrew B


Sobald Sie eine bestimmte Größe erreicht haben (und es ist immer früher als Sie denken), werden Sie feststellen, dass das Ändern Ihrer Passwörter oder das Deaktivieren von Accounts für jemanden auf allen Hosts ein PITA ist. Deshalb benutzen Leute Systeme mit LDAP-Datenbanken (oder NIS, aber tun das nicht, heutzutage nicht sicher) wie openldap oder heutzutage die ausgezeichnete freeipa.

Sie verwalten alle Konten / Gruppeninformationen in einer zentralen Datenbank, alle Hosts teilen diese Informationen. Von dort können Sie noch viel mehr machen: Verwenden Sie natürlich die Benutzerinformationen für Dateiberechtigungen, aber erstellen Sie auch virtuelle Benutzer für alle Anwendungen, die ldap Bindings haben, anstatt dort auch Ihre Benutzer anzulegen (viele Webapplikationen können sie verwenden) ldap für ihre Benutzerdatenbank), eine zentrale sudo-Regeldatenbank verwalten, Ihre autofs-Umgebung verteilen, Ihre DNS-Zonen behalten, ...


17
2018-06-10 05:29