インストール中に/homeのディレクトリに従ってユーザーを設定します。

インストール中に/homeのディレクトリに従ってユーザーを設定します。

/home以前のパーティションを見て、そのパーティションのルートにあるディレクトリに基づいてユーザーを設定するGnu / Linuxインストーラはありますか?

したがって、新しいGnu / Linuxをインストールして以前のバージョンを維持する場合、/homeパーティション/homeはさまざまなユーザーとグループが所有するファイルでいっぱいになります。また、ファイルが/home正しい所有権を持つように、以前のシステムのユーザーと一致する必要があるユーザーの数を設定する必要があります。パーティションのルートディレクトリは、/home各ユーザーにそのユーザーとその基本グループが所有するディレクトリを提供します。

したがって、ディレクトリをスキャンし、見つかった各ディレクトリに対してユーザー/基本グループを作成することが可能でなければなりません。

  • すでにこれを行うことができるツールはありますか?
  • インストールされているGnu / Linuxで使用されていますか?
  • Debian はこのようなことをしますか?

(新しいDebianをインストールしようとしています。)

ベストアンサー1

これを実行できるスクリプトはありませんが、UNIX / Linuxシェル自体は、必要なものの少なくとも一部を管理するために複数のツールを一緒にまとめる可能性があります。

#!/bin/bash
for homedir in /home/*
do
    user="${homedir##*/}"
    uid="$(stat -c %u "$homedir")"
    gid="$(stat -c %g "$homedir")"

    groupadd --gid "$gid" "$user"
    useradd --gid "$gid" --uid "$uid" --shell /bin/bash --home-dir "$homedir" --no-create-home "$user"
done

エラーチェックはありませんが、ほとんどの場合安全にgroupadd失敗しますuseraddecho実際の環境で実行する前に何が起こるかを確認するには、2つのコマンドの前に(たとえば)を付けます。また、すべてが間違っている場合は、ユーザーデータベースを元の値に安全に復元して再試行できるように、ファイルのコピーを事前/etc/passwd/etc/shadow保存しておくことをお勧めします/etc/group/etc/gshadow

おすすめ記事