web-dev-qa-db-ja.com

Linuxマシン間でUID / GIDを同期する利点は何ですか?

さまざまなLinuxマシン間でUID/GIDを同期する方法の詳細に突入する前に、実際にどのようなメリットがあるのか​​知りたいのですが。

これにより、ファイルの同期が比較的簡単に維持されることを知っています(所有権は「自然に」保持されるため)。しかしながら、これは、送信サービスに応じて、そうでなければ達成することもできる。

一貫したUID/GIDから利益を得る他に何かありますか?

24
alex

技術的負債

以下の理由により、この問題に早期に対処して 技術的負債 の蓄積を回避するのははるかに簡単です。すでにこの状況に陥っている場合でも、ビルドを継続させるよりも近い将来に対処する方が良いでしょう。

ネットワーク化されたファイルシステム

この質問は、ローカルファイルシステムを使用してマシン間でファイルを転送するという狭い範囲に焦点を当てているようです。これにより、マシン固有の所有権状態が可能になります。

ネットワーク化されたファイルシステムの考慮事項は、UID/GIDマッピングを同期させようとする場合の最大のケースになりがちです。通常、「他の方法で達成された」ことをスローできるので、写真が入力された瞬間にウィンドウの外に出ます。もちろん、これらのホスト間でネットワーク化されたファイルシステムを共有していない可能性があります今すぐ ...しかし、将来はどうでしょうか?正直に言って、現在のホスト間、または将来作成されるホスト間にネットワーク化されたファイルシステムが導入されることは決してないだろうと言えますか?そうでないと仮定することは、非常に前向きな考えではありません。

次の例では、/homeHost1Host2の間で共有されるネットワークファイルシステムであると想定しています。

  • 不一致な権限/home/user1は、各システムの異なるユーザーが所有しています。これにより、ユーザーはシステム全体でホームディレクトリに一貫してアクセスまたは変更できなくなります。
  • chown wars:ユーザーがホームディレクトリのアクセス許可を特定のシステムで修正するように要求するチケットを送信することは非常に一般的です。 Host2でこの問題を修正すると、Host1の権限が壊れます。誰かが後退して綱引きが進行中であることに気付く前に、これらのチケットのいくつかが機能するまでにかかる場合があります。唯一の解決策は、不一致のIDマッピングを修正することです。につながる...
  • UID/GID再分散地獄:後でIDを修正する複雑さは指数関数的に単一のユーザーを修正するために必要な再マッピングの数だけ増加します複数のマシン間。 (user1のIDはuser2ですが、user2のIDはuser17...であり、これはクラスター内の最初のシステムにすぎません)修正を待つ時間が長くなるほど問題は、これらのチェーンがより複雑になる可能性があり、多くの場合、適切に同期するために複数のサーバー上のアプリケーションのダウンタイムが必要です。
  • セキュリティの問題user2Host2は、user1Host1と同じUIDを持っているため、 /home/user1の知識なしにHost2user1に書き込むように依頼します。次に、これらの変更はHost1の権限でuser1で評価されます。何がうまくいかないのでしょうか? (user1がアプリユーザーの場合、開発者willが書き込み可能であることを発見し、will変更します。これは実績のある事実です。)

他のシナリオもあり、これらは最も一般的なシナリオの例にすぎません。

名前は常にオプションではありません

数値IDに対して記述されたスクリプトまたは構成ファイルは、環境内で本質的に移植できなくなります。絶対に必要でない限り、ほとんどの人はこれらをハードコーディングしないので、一般的に問題はありません...しかし、時々、あなたが扱っているツールはあなたに問題の選択肢を与えません。これらのシナリオでは、nスクリプトまたは構成ファイルの異なるバージョンを維持する必要があります。

例:pam_succeed_ifを使用すると、useruid、およびgidのフィールドを使用できます...「グループ」オプションは著しく存在しません。複数のシステムがなんらかの形でグループベースのアクセス制限を実装することが期待される立場に置かれた場合、PAM構成のnのさまざまなバリエーションがあります。 (または、衝突を回避するために少なくとも1つのGID)

集中管理

natxoの答えは、これをかなりうまくカバーしています。

31
Andrew B

一定のサイズに達すると(そして、あなたが考えるよりもずっと早く)、パスワードを変更したり、すべてのホストで誰かのアカウントを無効にしたりすることは、PITAであることがわかります。これが、人々がopenldapや最近の優れたfreeipaなどのLDAPデータベース(またはNISを使用しているが、最近は安全ではない)を使用するシステムを使用している理由です。

すべてのアカウント/グループ情報を中央データベースに保持し、すべてのホストがその情報を共有します。そこからさらに多くのことができます。もちろん、ファイルのアクセス許可にユーザー情報を使用しますが、ユーザーを作成する代わりに、LDAPバインディングを持つすべてのアプリケーションの仮想ユーザーを作成することもできます(多くのWebアプリケーションで使用できます)ユーザーデータベース用のLDAP)、中央のSudoルールデータベースを維持、autofs環境を配布、DNSゾーンを維持、...

18
natxo asenjo