hedgehog
という名前のユーザーがいて、squirrel
という名前を付けたいのですが、彼の数値ユーザーIDを変更したくありません。
どうすればこれを達成できますか?
Linuxでは、usermod
コマンドはユーザー名を変更します。コマンドラインで指定された変更を反映するようにシステムアカウントファイルを変更します。
ユーザー名のみを変更するには:
usermod --login new_username old_username
ユーザー名とホームディレクトリ名を変更するには:
usermod --login new_username --move-home --home path_to_the_new_home_dir old_username
ユーザーに関連付けられているグループの名前を変更することもできます。
groupmod --new-name new_username old_username
注:ディレクトリが暗号化されている場合は、これを試さないでください!これがあなたのケースであるなら、あなたは最初にチェックしたいかもしれません: https://askubuntu.com/questions/107410/can-you-unencrypt-remove-encryption-from-a-user-home-folder
これを行う直接的な方法は次のとおりです。
Sudo権限を持つ新しい一時アカウントを作成します。
Sudo adduser temp
Sudo adduser temp Sudo
現在のアカウントからログアウトし、一時アカウントで再度ログインします。
ユーザー名とディレクトリの名前を変更します。
Sudo usermod -l new-username -m -d /home/new-username old-username
ユーザー名のデフォルトのグループの名前を変更します。
Sudo groupmod -n new-username old-username
Tempアカウントからログアウトし、new-usernameを使用してアカウントに再度ログインします。
一時アカウントを削除:
Sudo userdel -r temp
それ以外の場合は、(1)新しいユーザーを作成し、(2)古いユーザーのホームフォルダーを新しいフォルダーにrsync
し、(3)chown
にします。
一般に、/etc/passwd
(および該当する場合は/etc/shadow
)ファイルでユーザー名を変更することにより、ユーザーの名前を変更できます。ほとんどのUNIXシステムでは、vipw
コマンドを使用してこれらのファイルを編集します(多くのシステムでは、物事を過度に混乱させないようにするための保護手段が含まれています)。passwd(5)
、 shadow(5)
、および vipw(8)
詳細については。
上記の方法では、元のユーザー名が付いている可能性のある他の名前は変更されないことに注意してください(ホームディレクトリが主な例であり、ユーザーごとの個人グループ(それらを使用するシステム上)は別のものです)。 passwdファイルの適切なフィールドを変更し、ディレクトリの名前を変更することで、一貫性を保つためにこれらをクリーンアップすることもできます。
いくつかのオペレーティングシステムでは、システム固有の方法でユーザー名を変更できます。たとえば、多くのLinuxシステムには usermod(8)
コマンドが含まれており、AIXでは SMIT(またはsmitty
ターミナルで) 。
これらのコマンドは、必要に応じて、ホームディレクトリの名前の変更などのクリーンアップ項目を処理することがよくあります。