KnowHow

技術的なメモを中心にまとめます。
検索にて調べることができます。

UIDの重複した複数のNISサーバを統合する手順

登録日 :2024/08/03 19:19
カテゴリ :Linux

1 手順の流れ

NISサーバを統合する際にUIDの重複が発生している場合、以下の手順で対処することができます:

  • 重複の特定
    まず、各NISサーバのユーザデータベースをエクスポートし、UIDの重複を特定します。ypcatコマンドを使用して、passwd.byuidマップを確認できます。

  • 新しいUID割り当て
    重複しているUIDを持つユーザに対して、新しい一意のUIDを割り当てます。これは手動で行うか、スクリプトを使用して自動化することができます。

  • ユーザデータの更新
    新しいUIDでユーザデータを更新します。これには、passwd、shadow、groupファイルの更新が含まれます。

  • ファイルシステムの更新
    ユーザのホームディレクトリやファイルの所有権を新しいUIDに変更します。chownコマンドを使用して、再帰的にファイルの所有権を更新できます。

  • NISマップの再構築
    更新されたユーザデータを使用してNISマップを再構築します。makedbmコマンドを使用して新しいNISマップを作成します。

  • NISサーバの統合
    すべてのユーザデータが更新され、UIDの重複が解消されたら、NISサーバを統合します。新しい統合されたNISサーバにデータをインポートします。

  • クライアントの更新
    すべてのNISクライアントが新しい統合されたNISサーバを参照するように設定を更新します。

  • テストと検証
    統合後、すべてのユーザアカウントが正しく機能していることを確認します。ログインテストや、ファイルアクセス権限のチェックを行います。

2. コマンド

UIDの重複したNISサーバを統合する具体的な手順とコマンドは以下の通りです:

重複の特定:
各NISサーバで以下のコマンドを実行し、UIDの重複を確認します。

ypcat passwd | awk -F: '{print $3}' | sort -n | uniq -d

新しいUID割り当て:
重複しているUIDを持つユーザーに新しいUIDを割り当てます。

usermod -u new_uid username

ユーザーデータの更新:
NISマップを更新します。

cd /var/yp
make

ファイルシステムの更新:
ユーザーのファイル所有権を新しいUIDに変更します。

find /home/username -user old_uid -exec chown new_uid {} \;

NISマップの再構築:

cd /var/yp
make

NISサーバの統合:
メインのNISサーバーにデータをコピーします。

rsync -avz /var/yp/ main_nis_server:/var/yp/

クライアントの更新:
各クライアントで新しいNISサーバーを指定します。

ypinit -c

テストと検証:

ypcat passwd
id username

これらのコマンドを使用して、UIDの重複を解消しNISサーバーを統合できます。ただし、大規模な環境では複雑になる可能性があるため、十分な計画と注意が必要です。また、データ損失を防ぐため、作業前にはバックアップを取ることが重要です。

Appendix

username, uid, gidを抽出するコマンド

ypcat passwd | awk -F: '{print $1,$3,$4}'