我想在 linux 中更改我的用户名,例如sudo usermod -l new old
,但出现错误
usermod: user old is currently used by process 4139
这是显而易见的,因为我是通过 ssh 登录的
old 4139 0.0 0.2 17032 5140 ? S 18:31 0:00 sshd: old@pts/0
即使我su root
,我也会以不同的用户身份启动新的 shell。出于安全原因,我无法以其他用户身份通过 ssh 登录。我怎样才能克服这个问题。
一种选择是暂时降低安全性(更改 sshd 配置)或创建临时用户,设置 ssh 密钥,将其添加到 sudoers,使用该不同的用户登录,然后清理所有内容。这看起来像是一项非常乏味的工作。有更简单的方法吗?
答案1
尝试看看它是否适用于exec su root
.这应该将 shell 替换为su
,并且可能没有任何进程正在old
运行。
如果这不起作用,只需安排以 root 身份登录,然后就可以了。或者只是手动编辑用户数据库并考虑它可能引起的混乱(老实说,我怀疑实际上有多大影响,但无论如何,同时保持特权会话打开。)在任何情况下,usermod
都不会改变主目录,因此您必须单独执行此操作。
我没有看到直接以 root 身份登录和创建新用户到 sudo 到 root 之间“降低安全性”的相关差异。