UNIXユーザーの名前を変更するにはどうすればよいですか?


89

という名前のユーザーがいて、hedgehog彼に名前を付けsquirrelたいのですが、数値のユーザーIDを変更したくありません。
どうすればこれを達成できますか?


2
おそらく、ユーザーの名前を変更することは、プロのSAが苦労するタスクではないためです。(質問downvotesのため。)
HopelessN00b

2
@Jeznetは、これを信じられないほど単純なタスクであるため、タイトルをGoogleに入力するだけで解決できるだけでなく、あなたが質問するとすぐに自分の質問にも答えました。時間の無駄だ。
ボブロブ

10
@boburob「あなたも、あなたがそれを尋ねたとすぐにあなた自身の質問に答え、時間の無駄だったようで、」参照してください。blog.stackoverflow.com/2011/07/...
のSzymonジェズ

10
@boburob Answer your own question – share your knowledge, Q&A-style質問をするときに表示されるチェックボックスを見ましたか?そこには理由があり、彼らがそれを使いたくないならそこにはありません。(理想的にはより良い質問についてですが、自分の質問に答えるために誰かを落とすのは悪い形です。)
HopelessN00b

1
はい、私も以前に自分の質問に答えましたが、私に質問し、同じ分にグーグルの結果を貼り付けるのは少し時間の無駄です
-boburob

回答:


133

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

12
usermodを使用して、すべてを行うことができますusermod -l new-user-name -m -d / new / home / dir old-user-name
user9517

5
また、グループも変更されないことに注意してください。old-user-nameグループの名前も変更する必要がある場合は、を使用します# groupmod -n new-user-name old-user-name
alxs

1
を使用するシステムのautofs場合は、更新する必要もあります/etc/auto.home。私はこれに出くわしました。
スティーブンC.ハウエル

2
該当する場合、新しいユーザー名をsudoersリストに追加するために、visudoを再度実行する必要がある場合があります
-Nagev

2
また、/var/spool/cron/crontabs/(ジョブがインストールされている場合)にあるcrontabファイルの名前を変更する必要があります
ダニエルF

12

注:ディレクトリが暗号化されている場合は、これを試さないでください!これがあなたの場合、あなたは最初にチェックしたいかもしれません:https : //askubuntu.com/questions/107410/can-you-unencrypt-remove-encryption-from-a-user-home-folder

これを行う簡単な方法は次のとおりです。

  1. sudo権限を持つ新しい一時アカウントを作成します。

    sudo adduser temp
    sudo adduser temp sudo
    
  2. 現在のアカウントからログアウトし、一時アカウントで再度ログインします。

  3. ユーザー名とディレクトリの名前を変更します。

    sudo usermod -l new-username -m -d /home/new-username old-username
    
  4. ユーザー名のデフォルトのグループの名前を変更します。

    sudo groupmod -n new-username old-username
    
  5. 一時アカウントからログアウトし、新しいユーザー名でアカウントに再度ログインします。

  6. 一時アカウントを削除します。

    sudo userdel -r temp
    

それ以外の場合は、(1)新しいユーザーを作成し、(2)rsync古いユーザーのホームフォルダーを新しいフォルダーに作成してから、(3)作成chownします。


CentOSでは、「passwd temp」と「usermod -aG wheel temp」も必要でした。
ブライアンZ

4

通常、/etc/passwd(および/etc/shadow該当する場合は)ファイルでユーザー名を変更することにより、ユーザーの名前を変更できます。ほとんどのUNIXシステムでは、vipwこれらのファイルを編集するためにコマンドが使用されます(多くのシステムでは、過度に物事を混乱させないようにするためのいくつかの安全対策が含まれています)。
manページを参照してくださいpasswd(5)shadow(5)と、vipw(8)より多くの情報のために。

上記の方法は、元のユーザー名を持っている可能性のある他の名前を変更しないことに注意してください(ホームディレクトリが主な例で、ユーザーごとの個人グループ(それらを使用するシステム上)は別です)。passwdファイルの適切なフィールドを変更し、ディレクトリの名前を変更することで、一貫性を保つためにこれらをクリーンアップすることもできます。


いくつかのオペレーティングシステムは、ユーザー名を変更するシステム固有の方法を提供します。たとえば、多くのLinuxシステムにはusermod(8)コマンドが含まれており、AIXでは、SMIT(またはsmitty端末)を使用してアカウント名を変更できます。
これらのコマンドは、ホームディレクトリの名前の変更などのクリーンアップアイテムを処理します(要求された場合)。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.