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