ユーザー名を変更しようとすると、ターミナルはユーザーが現在プロセスで使用されていると表示します


16

ここでのアドバイスに従って、ユーザー名を変更しようとしていますが、次のコマンドを実行した後:

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

ターミナルは次のように応答します。

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

そして、ユーザー名は同じままです。誰かが私がこれを修正し、結局私のユーザー名を変更する方法を知っていますか?

回答:


8

引用するにはman usermod

CAVEATS
   You must make certain that the named user is not executing any 
   processes when this command is being executed
   if the user's numerical user ID, the user's name, or the user's home 
   directory is being changed.  usermod
   checks this on Linux, but only check if the user is logged in 
   according to utmp on other architectures.

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

また、これをルートとして実行していないことに注意してください。rootとして実行するか、「sudo usermod」で実行します。


3
あなたはそれを再起動せずにプロセスを殺すことができない場合は、コマンドなどコンバインkill -9 23162 && sudo usermod -l TheNameIWantToChange -d /home/TheNameIWantToChange -m CurrentName
リチャード・フランク

2
プログラムusermodは設計上壊れているようです。ユーザー管理がLDAPサーバーで行われる場合、ユーザー属性の変更は常に可能であり、実行中のシステムに依存しません。私はその用途Ansibleを使用していますusermodログインし、変更がユーザーによってブロックされているので、穴のシステムは、信頼できないです。
ceving

1

別のユーザーでコマンドを実行する必要があると思います。rootまたは他のユーザーでログインして、再試行してください。変更したいユーザーと一緒にxウィンドウを開いている場合、コマンドが失敗するというのは論理的に聞こえます。


1

これは主に、最初からログインするrootアカウントを持っていないUbutuの問題です。そのため、矛盾が生じます。私はsudoerグループのユーザーです。自分のuidを変更できません。

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


0

私はusermodを使用して同じ問題があり、ホームディレクトリのコンテンツを新しいローカライズに移動する-mパラメータを使用して修正しました。このオプションは、-dと組み合わせて使用​​します(ユーザーメインディレクトリを変更します(ユーザーがいる場所))。

man usermodコマンドを表示することをお勧めします


0

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

  1. rootユーザーのパスワードを設定します。

sudo passwd root

  1. Ubuntuを再起動する
  2. 起動後に「root」としてログイン->これにより、ubuntuは現在のユーザーのプロセスを生成できなくなります。
  3. ユーザー名を変更する

    usermod -l newuser -d / home / newuser -m olduser

  4. / homeディレクトリの新しいユーザー名でフォルダー名を確認して、ユーザー名が変更されたことを確認します

-1

ログインしているユーザーのユーザー名は変更しないでください。代わりに、すべてのユーザーのプロセスを終了し、切断し、別のユーザーとしてログインしてから名前を変更する必要があります。

作業が多すぎるように思われる場合は、変更をホットワイヤできます:https ://medium.com/@deltazero/linux-howto-rename-currently-operating-user-f8fae62db110

それはこのように動作します:

# your new username
newuser=dave

# root-run these all at once
sudo su -c "\
  sed -i s/$USER/$newuser/g /etc/group \
  && sed -i s/$USER/$newuser/g /etc/shadow \
  && sed -i s/$USER/$newuser/g /etc/passwd \
  && mv /home/$USER/ /home/$newuser"

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