有一个选项可以在您的 Linux 机器上拥有多个用户,并使用他们执行不同的任务。所以,基本上,我有时会使用它来为不同的项目使用不同的应用程序实例。为此,我通常会添加另一个用户。新用户将具有不同的 uid,并且可能具有不同的 gid 或我的用户之间通用的某些东西。
为了让这篇文章更具可读性,我来定义一些更有意义的名字。假设主用户名是Umain
,第二个用户名是Uclone
。
这次,我尝试创建Uclone
与 id 相同的Umain
。(我希望一切都相同,而没有考虑后果)因此,我Uclone
通过以下方式创建了 :
sudo useradd Uclone -m -N -o -g 1000 -u 1000
的用户 ID 和组 IDUmain
均为 1000,我尝试使用上述命令创建我的用户的克隆,并为其分配相同的用户 ID 和组 ID Uclone
。
一切都很好,直到我重新启动系统。我无法再登录,Umain
并且Uclone
登录页面中可用的是。Umain
存在于/etc/passwd
,但是,我无法再使用用户登录 gdm 或 kdm Umain
。
我尝试删除,Uclone
但没成功。它总是回复说该用户正在运行某个进程。因此,我终止了该进程,但它又恢复了。我刚刚意识到,由于用户 ID 相同,现在系统无法识别和。Umain
我Uclone
尝试更改的组 ID Uclone
,成功了。但是,我无法更改Umain
或的用户 ID,Uclone
因为我收到以下响应。
$ sudo usermod Uclone -u 1010
[sudo] password for AnotherUser:
usermod: user Uclone is currently used by process pid
所以,我想知道我有什么办法可以修复我的系统。我认为最后的希望是使用救援模式,但我认为应该有更简单的方法来处理这个问题。如果你能帮助我解决这个问题,我将不胜感激。
附注:我正在使用 Ubuntu 14.04。
答案1
那是同一个用户。您可以使用 vipw 和 vipw -s 命令删除指向 Uclone 用户的行。Vipw 命令使用 vi 作为默认编辑器,因此您可以用更简单的编辑器替换它,例如 nano:
sudo EDITOR=nano vipw
答案2
实际上Umain和Uclone是同一个用户。
是的,您无法修改用户的 UID,因为您是使用其凭证登录的,因此您无法更改其行为,除非您不使用系统的任何其他进程。
要解决您的问题(如果您认为是的话),您有很多解决方案:
- 使用 Live CD 做任何你想做的事
- 最简单的方法是创建另一个 sudoer 用户
tempUser
。从 Uclone 注销并使用 tempUser 登录,然后为其他用户编辑任何内容。