web-dev-qa-db-ja.com

UbuntuまたはLinuxでユーザー名を変更する適切な方法

私はUbuntu 12.04を使用しており、カスタマイズを行っています。また、ubuntuをカスタマイズした新しいisoにします。

ユーザー名を変更するにはどうすればよいですか。現在のホームフォルダーには多くの構成があります。したがって、ユーザー名の変更を台無しにしたくありません。

それを行うためのベストプラクティスまたはワークフローはありますか?

26
CorpusCallosum

本当に正しい方法?ユーザー「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を実行して、ディレクトリとその下のすべてのファイルとディレクトリの所有権とグループシップを取得し、新しいディレクトリを取得します。

28
Steve Bergman

ユーザー名を変更しようとしないことをお勧めします。これは一般に、ユーザーのホームディレクトリ/home/<username>の形式の構成ファイルでユーザーの名前が静的に参照されている場合に問題が発生します。これらは一般的な方法で記述されることはほとんどないため、通常は新しいユーザー名を作成してから、ユーザーのファイルとデータを新しいアカウントに移行するのが最善です。

5
slm

変更できます。 AskUbuntuの ユーザー名を変更するにはどうすればよいですか? を参照してください。これらの指示は私にはうまくいきました。設定を保存するには、その質問への回答で説明されているように、古いホームディレクトリのシンボリックリンクを作成します。

3
z0r

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を変更するのは多くの作業ではなく、徹底する必要があります。

3
Duane

sermod コマンドを試してください。

exec Sudo su
usermod --login newname oldname
3
dgmltn