我正在尝试根据建议更改我的用户名这里但是运行以下命令后:
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
尝试以下步骤:
- 设置root用户的密码:
sudo passwd root
- 重启ubuntu
root
开机后登录。这将允许 Ubuntu 不为当前用户生成任何进程。- 更改用户名
usermod -l newuser -d /home/newuser -m olduser
- 通过检查目录中新用户名的文件夹名称来验证用户名是否已更改
/home
。
答案3
与其手动编辑您知道的文件(糟糕),或打开密码root
(非常糟糕),只需使用at
.阅读,并使用( )man at
的完整路径:usermod
type -p usermod
sudo at "now +5 minutes"
your usermod command goes here
^D
^D
是Ctrl-D
然后,快速注销,等待 7 分钟,然后登录。
答案4
这主要是 Ubutu 的问题,你没有 root 帐户来登录。所以这就产生了一个矛盾:我是sudoer组的用户。我无法更改自己的 uid。
不确定这是最好的解决方案。我首先创建一个假帐户 foo,将其添加到 sudo 列表中。然后我登录到 foo 帐户并执行 usermod -g MYOWNGID mylogin