当尝试更改用户名时,终端告诉我用户当前被进程使用

当尝试更改用户名时,终端告诉我用户当前被进程使用

我正在尝试根据建议更改我的用户名这里但是运行以下命令后:

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.要么运行为root,要么运行为sudo 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

^DCtrl-D

然后,快速注销,等待 7 分钟,然后登录。

答案4

这主要是 Ubutu 的问题,你没有 root 帐户来登录。所以这就产生了一个矛盾:我是sudoer组的用户。我无法更改自己的 uid。

不确定这是最好的解决方案。我首先创建一个假帐户 foo,将其添加到 sudo 列表中。然后我登录到 foo 帐户并执行 usermod -g MYOWNGID mylogin

相关内容