web-dev-qa-db-ja.com

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

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

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

端末は次のように応答します:

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

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

17
Paradox

引用するには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」で実行します。

9
seumasmac

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

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

1
Kemin Zhou

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

1
krivos

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

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

sudo passwd root

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

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

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

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

Man usermodコマンドを確認することをお勧めします