Ubuntu でユーザー名を変更する方法は?


キーリング権限ユーザープロファイル

しばらく前に、Ubuntu をインストールしたときに、もう使用したくないアカウントにかなりばかげたユーザー名を選択しました.

アプリケーションの設定を失わずにこれを変更するにはどうすればよいですか (ホーム ディレクトリの名前とターミナルでの名前を含む).
さまざまな認証 (電子メール、SSH、GPG など) のアクセス許可とキーを保持するにはどうすればよいですか?
ユーザー名を変更すると、どのような設定が失われる可能性がありますか?

受け入れられた回答



Unix ライクなオペレーティング システムでは、ユーザー名がユーザー ID から切り離されているため、ID に影響を与えずに安全に名前を変更できます.すべてのアクセス許可、ファイルなどは、ユーザー名ではなく、ID (uid) に関連付けられています.

ユーザー データベースのあらゆる側面を管理するには、usermod ツールを使用します.

ユーザー名を変更するには (ログインせずにこれを行うのがおそらく最善です):

sudo usermod -l newUsername oldUsername



ただし、これはホーム フォルダーの名前を変更しません.

ホームフォルダーを変更するには、使用します

sudo usermod -d /home/newHomeDir -m newUsername



ユーザー名を変更した後.

たとえば、ログアウトしてコンソールにドロップし (Ctrl+Alt+F1)、sudo su - を真のルートにすることができます ($HOME がまだ/home/yourname である sudo -s とは対照的です).最初にこのユーザーからプロセスを実行します.これを行うには、 ps -u username と入力し、一致する PID を探して kill PID-number でそれらを強制終了します.

更新: 前述のように、一部のファイルは古いホーム ディレクトリを参照する場合があります.下位互換性のために ln -s /home/newname /home/oldname などのシンボリック リンクを保持するか、ファイルの内容を sed -i.bak 's/*oldname*/*newname*/g' *list of files* で変更できます..bak 拡張子を持つ各ファイルのバックアップが作成されます.

私のような経験の浅いユーザー向けの追加情報:
私は 1 つのユーザー アカウント (管理者) しか持っていないので、ユーザー名を変更することはできません (「既にログインしています」という応答が TTY1 (Ctrl+Alt+F1) で返されました).これを回避するには:
  • 古い資格情報でログインし、新しいユーザーを追加します. TTY1 の「一時的」:

  • sudo adduser temporary
    
    


    パスワードを設定します.
  • ユーザーを sudo グループに追加して、一時ユーザーが sudo を実行できるようにします.

  • sudo adduser temporary sudo
    
    


  • コマンド exit でログアウトします.
  • tty1 に戻ります.「一時」ユーザー アカウントとパスワードでログインします.上記のようにユーザー名とフォルダーを変更します. exit (ログイン プロンプトが表示されるまで)
  • TTY7 (Ctrl+Alt+F7) に戻り、GUI/通常のデスクトップ画面にログインして、これが機能するかどうかを確認します.
  • 一時ユーザーとフォルダーを削除します.

  • sudo deluser temporary
    sudo rm -r /home/temporary
    
    


    投稿 How to Change the Username in Ubuntu?Stack All Flow に最初に表示されました.