しばらく前に、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 -
が真のルートになります(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)。これを回避するには:
古い資格情報でログインし、新しいユーザーを追加します。 TTY1の「一時的」:
Sudo adduser temporary
パスワードを設定します。
ユーザーをSudoグループに追加して、一時ユーザーがSudoを実行できるようにします。
Sudo adduser temporary Sudo
exit
を使用してログアウトします。exit
(ログインプロンプトが表示されるまで)一時的なユーザーとフォルダーを削除します。
Sudo deluser temporary
Sudo rm -r /home/temporary
すべてをまとめるには:
「root」アカウントのパスワードを設定します。
Sudo passwd root
ログアウト。
exit
「root」アカウントと以前に設定したパスワードを使用してログインします。
ユーザー名とホームフォルダーを新しい名前に変更します。
usermod -l <newname> -d /home/<newname> -m <oldname>
グループ名を必要な新しい名前に変更します。
groupmod -n <newgroup> <oldgroup>
「ルート」アカウントをロックします。
passwd -l root
Ecryptfs(暗号化されたホームディレクトリ)を使用していた場合。 ecryptfs-recover-private
を使用して暗号化されたディレクトリをマウントし、<mountpoint>/.ecryptfs/Private.mnt
を編集して新しいホームディレクトリを反映します。
ログアウト。
exit
押す Ctrl+Alt+F7。
これで、新しいユーザー名を使用してログインできます。
復旧モードで再起動し、ルートプロンプトシェルに移動します(「ルートシェルプロンプトにドロップ」)
最初にルートを再マウントします
mount -o remount,rw /
ユーザー名とホームフォルダー名を変更するには、
usermod -l <newname> -d /home/<newname> -m <oldname>
グループ名については、
groupmod -n <newgroup> <oldgroup>
Ubuntu 13.10、14.04、16.04の場合:
usermod: can't change /etc/password
を受け取ったら、次のコマンドを実行するだけです。
ルート回復コンソールで次を実行します。
mount -o remount,rw /
その後、再実行します。
usermod -l <newname> -d /home/<newname> -m <oldname>
@ karthick87によってここにリストされた答えは完全に正常に動作しますが、安全ですべてのグリッチを避けるために私がすることはここにあります:
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>