ホームディレクトリUIDからユーザーデータベースを復元する

ホームディレクトリUIDからユーザーデータベースを復元する

私は尋ねたメンバーパーティションのUUIDがすべて消去されたRAID 1パーティションの復元に関する以前の質問。。このスレッドから応答がないため、今度はOSパーティションにCentOSを再インストールしてシステムを再構築する必要があります。

再構築の主な作業の1つは、最近バックアップされていないユーザーデータベースを回復することです。私の目標は、UIDとユーザー名のリストにあるスクリプトを使用して、すべての人のアカウントを同じパスワードにし、ログイン時に変更できるようにしてユーザーデータベースを再作成することです。

/homeは別の場所にありますが、まだ存在するraid配列なので、そのパーティションにユーザーの完全なリストがあり、各ユーザーディレクトリのUIDを読み取り、各ユーザーの古いUIDも取得します。私が悩んでいるのは一対のスクリプトです。 1 つ目は /home を繰り返して一致する UID とユーザー名のペアを含むファイルを生成し、2 つ目は対応する出力ファイルを使用して新しいインストールでそのアカウントを作成します。 。現在のユーザー。これはSambaファイルサーバーなので、2番目のスクリプトは一致するSambaユーザー名も生成します。

ホイールを再作成しないように、これを行うために作成されたツールやスクリプトを知っている人はいますか?

ありがとうございます!

ベストアンサー1

次のように、ホームディレクトリに「user:home:uid:gid」を含むcsvファイルを作成できます。

find /home -mindepth 1 -maxdepth 1 -type d -not -name "lost+found*" \
  -printf "%f:%p:%U:%G\n" >/tmp/user.txt

次に、次のようにユーザーを再作成します。

cat /tmp/user.txt | while IFS=: read -r user home uid gid; do \
  echo useradd -d "$home" -u "$uid" -g "$gid" "$user"
done

echo出力が正しいと思われる場合は削除してください。useraddこれを必要に応じて調整し、正しいSambaコマンドをループに追加できる必要があります。

おすすめ記事