web-dev-qa-db-ja.com

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

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

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

322
Takkat

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

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

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

Sudo usermod -l newUsername oldUsername

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

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

Sudo usermod -d /home/newHomeDir -m newUsername

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

たとえば、ログアウトしてコンソールにドロップできます(Ctrl+Alt+F1)、およびSudo su -が真のルートになります(Sudo -sとは異なり、$ HOMEは/ home/yournameです)。これを行うには、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)。これを回避するには:

  1. 古い資格情報でログインし、新しいユーザーを追加します。 TTY1の「一時的」:

    Sudo adduser temporary
    

    パスワードを設定します。

  2. ユーザーをSudoグループに追加して、一時ユーザーがSudoを実行できるようにします。

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

    Sudo deluser temporary
    Sudo rm -r /home/temporary
    
321
Egil

すべてをまとめるには:

  1. スタート画面で Ctrl+Alt+F1
  2. ユーザー名とパスワードを使用してログインします。
  3. 「root」アカウントのパスワードを設定します。

    Sudo passwd root
    
  4. ログアウト。

    exit
    
  5. 「root」アカウントと以前に設定したパスワードを使用してログインします。

  6. ユーザー名とホームフォルダーを新しい名前に変更します。

    usermod -l <newname> -d /home/<newname> -m <oldname>
    
  7. グループ名を必要な新しい名前に変更します。

    groupmod -n <newgroup> <oldgroup>
    
  8. 「ルート」アカウントをロックします。

    passwd -l root
    
  9. Ecryptfs(暗号化されたホームディレクトリ)を使用していた場合。 ecryptfs-recover-privateを使用して暗号化されたディレクトリをマウントし、<mountpoint>/.ecryptfs/Private.mntを編集して新しいホームディレクトリを反映します。

  10. ログアウト。

    exit
    
  11. 押す Ctrl+Alt+F7

これで、新しいユーザー名を使用してログインできます。

105
Valentin Uveges

復旧モードで再起動し、ルートプロンプトシェルに移動します(「ルートシェルプロンプトにドロップ」)

最初にルートを再マウントします

mount -o remount,rw /

ユーザー名とホームフォルダー名を変更するには、

usermod -l <newname> -d /home/<newname> -m <oldname>

グループ名については、

groupmod -n <newgroup> <oldgroup>
26
karthick87

Ubuntu 13.10、14.04、16.04の場合:

  1. 「システム設定」アイコンをクリックします。
  2. [ユーザーアカウント]をクリックします。
  3. 管理者アカウントが表示されます。
  4. 「ロック解除」ボタンをクリックします。
  5. アカウントの変更を許可するには、要求に応じてユーザーパスワードを入力します。
  6. ロックが解除されると、変更する古いユーザー名をクリックして、新しいユーザー名を入力して置き換えることができます。
  7. 新しい名前を入力したら、「ロック」ボタンをクリックして変更を永続的にします。
  8. Ubuntuを再起動します。
9
Chicodoodoo

usermod: can't change /etc/passwordを受け取ったら、次のコマンドを実行するだけです。

ルート回復コンソールで次を実行します。

mount -o remount,rw /

その後、再実行します。

usermod -l <newname> -d /home/<newname> -m <oldname>
3
user1511576

@ karthick87によってここにリストされた答えは完全に正常に動作しますが、安全ですべてのグリッチを避けるために私がすることはここにあります:

  1. 別のアカウント/ユーザーを作成し、このアカウント/ユーザーのルート機能を確認するか、ルート可能なユーザーとしてログインします。
  2. 現在のアカウントでログアウトしてから、手順1で説明したアカウントでログインします。
  3. 前のユーザーのすべてのプロセスを強制終了します。
  4. @ karthick87に記載されている手順に従って、ユーザー名とホームディレクトリの所有者を変更します。
  5. 次に、@ Sriraj Hebbarの回答に従ってグループ名を変更します。
  6. 予備のユーザーでログアウトし、ユーザーでログインします。追加のユーザーを作成した場合は削除します。

usermod -l <newname> -d /home/<newname> -m <oldname>を実行すると、これを避けるためにuseradd: can't change /etc/passwdエラーメッセージが表示されます。上記のコマンドにSudo --を追加するだけです。

Sudo -- usermod -l <newname> -d /home/<newname> -m <oldname>

そして

Sudo --  groupmod -n <newgroup> <oldgroup>
0
Sriraj Hebbar