ユーザー名を変更しようとすると、端末はそのユーザーが現在プロセスで使用されていることを知らせます。

ユーザー名を変更しようとすると、端末はそのユーザーが現在プロセスで使用されていることを知らせます。

提案されているように私のユーザー名を変更したいと思います。ここただし、次のコマンドを実行した後:

CurrentName@HostName ~ $ sudo usermod -l TheNameIWantToChange -d /home/TheNameIWantToChange -m CurrentName

端末応答:

CurrentName@HostName ~ $ usermod: user CurrentName is currently used by process 2491

そして、ユーザー名は同じままです。この問題を解決し、ユーザー名を変更する方法を知っている人はいますか?

答え1

引用するにはman usermod

ガイドライン

ユーザーの数値ユーザーID、ユーザー名、またはユーザーのホームディレクトリを変更する場合は、このコマンドを実行したときに指定されたユーザーが実行中のプロセスがないことを確認する必要があります。 Linuxではこれを確認しますが、usermod他のアーキテクチャに基づいてユーザーがログインしていますが、確認してください。utmp

したがって、名前を変更するユーザーがログインしていないことを確認する必要があります。

rootまたとして実行していないrootsudo usermod

答え2

次の手順を試してください。

  1. rootユーザーのパスワードを設定します。
    sudo passwd root
    
  2. Ubuntuの再起動
  3. root起動後にログインしてください。これにより、Ubuntuは現在のユーザーのプロセスを作成しません。
  4. ユーザー名の変更
    usermod -l newuser -d /home/newuser -m olduser
    
  5. ディレクトリ内の新しいユーザー名のフォルダ名を確認して、ユーザー名が変更されたことを確認します/home

答え3

既知のファイルを手動で編集するか(悪い)パスワードを開くのではなく、(root非常に悪い).atを使用してファイルを読み取り、フルパスman at()を使用してください。usermodtype -p usermod

sudo at "now +5 minutes"
your usermod command goes here
^D

^DはいCtrl-D

その後、すばやくログアウトして7分待ってからログインしてください。

答え4

これは主にUbutuの問題です。ログインするルートアカウントがありません。だからこれは矛盾を作ります。私はsudoerグループのユーザーです。 uidを変更できません。

これが最善の解決策であるかどうかはわかりません。まず、偽のアカウントfooを作成してsudoリストに追加します。その後、fooアカウントにログインし、usermod -g MYOWNGID myloginを実行しました。

関連情報