私はUbuntu 12.04を使用しており、カスタマイズを行っています。また、ubuntuをカスタマイズした新しいisoにします。
ユーザー名を変更するにはどうすればよいですか。現在のホームフォルダーには多くの構成があります。したがって、ユーザー名の変更を台無しにしたくありません。
それを行うためのベストプラクティスまたはワークフローはありますか?
本当に正しい方法?ユーザー「peter」を「paul」に変更するとします。
groupadd paul
usermod -d /home/paul -m -g paul -l paul peter
これにより、すべてのファイルとともに、名前、グループ、ホームディレクトリ、およびそのディレクトリの所有権とグループが新しいディレクトリに変更されます。元々「ポール」として作成されたものと区別がつかないユーザーになってしまいます。
別の方法は、/etc/passwd
および/etc/shadow
ファイルのピーターのエントリの最初のフィールドを編集することです。次に、/etc/group
で出現するすべての「peter」を「paul」に変更します。次に、ホームディレクトリの名前を/home/peter
から/home/paul
に変更します。次に、chown -R paul /home/peter
を実行して、ディレクトリとその下のすべてのファイルとディレクトリの所有権とグループシップを取得し、新しいディレクトリを取得します。
ユーザー名を変更しようとしないことをお勧めします。これは一般に、ユーザーのホームディレクトリ/home/<username>
の形式の構成ファイルでユーザーの名前が静的に参照されている場合に問題が発生します。これらは一般的な方法で記述されることはほとんどないため、通常は新しいユーザー名を作成してから、ユーザーのファイルとデータを新しいアカウントに移行するのが最善です。
変更できます。 AskUbuntuの ユーザー名を変更するにはどうすればよいですか? を参照してください。これらの指示は私にはうまくいきました。設定を保存するには、その質問への回答で説明されているように、古いホームディレクトリのシンボリックリンクを作成します。
Usermodを使用してsernameおよびhome directoryを変更します。ユーザーpeterをpaulに変更します。
usermod -l paul peter
grep paul /etc/passwd /etc/shadow # check
ホームディレクトリを変更し、そこにすべてを移動します(必要に応じて作成されます)
usermod -m -d /home/paul paul
grep paul /etc/passwd # check
グループ名を変更しますが、最初に別のグループ(例:GID 1001)を作成する必要があるため、usermodを使用しないでください。$ HOMEディレクトリ内のすべてのGIDが更新されますが、古いグループの所有権を持つ他の場所でファイルとディレクトリを検索して変更する必要があります。代わりに、グループ名を手動で変更してください。
nano /etc/group
そして変化
peter:x:1000:
に
paul:x:1000:
UIDの代わりにユーザー名を使用するcron、at、およびその他のサービスで使用されるファイル名を変更する必要があります。使用する
find /var -name "*peter*"
これらのファイルを検索します。
メール処理アプリケーションなどの一部のサービスで使用されるconfig filesも変更する必要があります。
最後に、「/ home/peter /」を使用するscriptsを編集する必要があります。 「/ home/peter /」の出現箇所を「$ HOME」に変更します。
ユーザーIDを変更するのは多くの作業ではなく、徹底する必要があります。
sermod コマンドを試してください。
exec Sudo su
usermod --login newname oldname