/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
失敗しますuseradd
。echo
実際の環境で実行する前に何が起こるかを確認するには、2つのコマンドの前に(たとえば)を付けます。また、すべてが間違っている場合は、ユーザーデータベースを元の値に安全に復元して再試行できるように、ファイルのコピーを事前/etc/passwd
に/etc/shadow
保存しておくことをお勧めします/etc/group
。/etc/gshadow