如何从 ubuntu 中删除与 myuser 具有相同 uid 的用户

如何从 ubuntu 中删除与 myuser 具有相同 uid 的用户

有一个选项可以在您的 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 相同,现在系统无法识别和。UmainUclone尝试更改的组 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,因为您是使用其凭证登录的,因此您无法更改其行为,除非您不使用系统的任何其他进程。

要解决您的问题(如果您认为是的话),您有很多解决方案:

  1. 使用 Live CD 做任何你想做的事
  2. 最简单的方法是创建另一个 sudoer 用户tempUser。从 Uclone 注销并使用 tempUser 登录,然后为其他用户编辑任何内容。

相关内容