さまざまなLinuxマシン間でUID / GIDを同期する方法の詳細について説明する前に、実際にどのようなメリットがあるのかを知りたいのですが。
これにより、ファイルの同期が比較的簡単になります(所有権が「自然に」保持されるため)。ただし、これは、送信サービスに応じて別の方法で実現することもできます。
一貫性のあるUID / GIDの恩恵を受けるものは他にありますか?
さまざまなLinuxマシン間でUID / GIDを同期する方法の詳細について説明する前に、実際にどのようなメリットがあるのかを知りたいのですが。
これにより、ファイルの同期が比較的簡単になります(所有権が「自然に」保持されるため)。ただし、これは、送信サービスに応じて別の方法で実現することもできます。
一貫性のあるUID / GIDの恩恵を受けるものは他にありますか?
回答:
以下の理由により、この問題を早期に解決して、技術的負債の蓄積を回避する方がはるかに簡単です。すでにこのような状況に陥っている場合でも、ビルドを継続させるよりも、近い将来に対処する方がおそらく良いでしょう。
この質問は、ローカルファイルシステムを持つマシン間でファイルを転送する狭い範囲に焦点を当てているようです。これにより、マシン固有の所有権状態が可能になります。
ネットワーク化されたファイルシステムの考慮事項は、UID / GIDマッピングの同期を維持しようとする場合の最大のケースになります。確かに、あなたはこれらのホスト間で共有するネットワークファイルシステムがない可能性があり、今の ...しかし、どのような未来は?現在のホスト間、または将来作成されるホスト間でネットワーク化されたファイルシステムが導入されることは決してないということを正直に言えますか?そうでないと仮定することはあまり前向きな考えではありません。
それは仮定/home
の間で共有ネットワークファイルシステムであり、host1
そしてhost2
以下の実施例において。
/home/user1
各システムの異なるユーザーが所有しています。これにより、ユーザーがシステム間で一貫してホームディレクトリにアクセスしたり、ホームディレクトリを変更したりすることができなくなります。host2
、の権限が壊れhost1
ます。誰かが後退し、綱引きが行われていることに気付く前に、これらのチケットのいくつかが処理されることがあります。唯一の解決策は、一致しないIDマッピングを修正することです。につながる...user1
IDはuser2
であるuser2
が、IDはuser17
...であり、これはクラスター内の最初のシステムです)問題の修正を待つ時間が長くなるほど、これらのチェーンは複雑になり、複数のサーバー上のアプリケーションのダウンタイムが必要になることがよくあります物事を適切に同期させるために。user2
上host2
と同じUIDを持っているuser1
上host1
、それらが書き込みできるように、/home/user1
上host2
の知識がなくてuser1
。これらの変更はhost1
、の権限で評価されuser1
ます。何が間違っている可能性がありますか?(あればuser1
アプリのユーザーで、devに誰かがします、それは書き込み可能です発見します変更を行います。これは時間の実績のある事実です。)他のシナリオもありますが、これらは最も一般的なシナリオの例にすぎません。
数値IDに対して記述されたスクリプトまたは構成ファイルは、環境内で本質的に移植不可能になります。ほとんどの人は絶対に必要でない限りこれらをハードコードしないので、一般に問題ではありません...しかし、時々あなたが働いているツールはあなたに問題の選択肢を与えないことがあります。これらのシナリオでは、n個の異なるバージョンのスクリプトまたは構成ファイルを維持する必要があります。
例:pam_succeed_if
あなたはのフィールドを使用することができますuser
、uid
と、gid
「グループ」オプションが著しく欠けています...。あなたが複数のシステムをグループベースのアクセス制限のいくつかのフォームを実装すると予想された位置に置かれた場合は、必要があると思いn個のPAMコンフィグの異なるバリエーションを。(または、衝突を回避する必要がある少なくとも1つのGID)
natxoの答えはこれをかなりよくカバーしています。
特定のサイズに達すると(そして、常に思ったよりも早くなります)、すべてのホストでパスワードの変更またはアカウントの無効化がPITAであることに気付くでしょう。だからこそ、人々はopenldapや最近の優れたfreeipaのようなLDAPデータベース(またはNISですが、最近は安全ではない)を備えたシステムを使用しています。
すべてのアカウント/グループ情報を中央データベースで管理し、すべてのホストがその情報を共有します。そこからさらに多くのことを行うことができます:もちろん、ファイルのアクセス許可にユーザー情報を使用しますが、そこにもユーザーを作成する代わりに、LDAPバインディングを持つすべてのアプリケーションの仮想ユーザーを作成します(多くのWebアプリケーションが使用できますユーザーデータベースのldap)、中央のsudoルールデータベースの維持、autofs環境の配布、dnsゾーンの維持、...