更改 uid/gid 时丢失用户

更改 uid/gid 时丢失用户

正在安装 16.04.01。

我已经用自己的用户 james 安装了 Ubuntu。然后我创建了另外两个用户 hacker,以便能够调整我自己的帐户,以及 toor,以便拥有一个可以用 root 权限登录的帐户。

我编辑了/etc/passwd和 ,/etc/group将 hacker 的从 1001 改为uid/gid502 ,将 toor 的从 1002 改为 0 。我还更改了目录上的uid和以使其匹配,并将 toor 的主目录更改为。当我这样做时,这两个帐户从“设置”下的用户列表中消失了。gid/home/xxx/root

我随后运行了usermod黑客账户,被告知没有任何变化。

我现在已经运行了find / -uid 1001 -exec chown 502 {} +和 的类似命令gid。登录时仍未看到这两个帐户的踪影。

当我尝试创建一个新的黑客帐户并被告知它已经存在时,我知道用户存在于系统中。

您知道我遗漏了什么吗?以及如何在 a) 设置和 b) 登录屏幕中恢复帐户?

答案1

负责在登录屏幕中显示用户的帐户服务和用户配置将在 中进行配置/etc/login.defs。在这里,您必须将 UID_MIN 和 GID_MIN 都更改为小于或等于“普通”用户使用的值,在您的情况下,可能每个都为 500。参见例如accountservice-和-uid-1000

至于 root/toor,您永远不应该使用 root 权限登录;如果您需要权限,sudo则这是定义的方式。当然,root/toor 不会显示在登录屏幕上(您可以将值更改为 0,但如果您这样做,那将是致命的!gksudo/etc/login.defaults

答案2

问题解决了。我不想弄乱我的 OSX 登录名,因为这是目前活动的登录名,直到我迁移到 Ubuntu。所以所有更改都必须在 Ubuntu 端进行。这就是我解决问题的方法,但首先是我的情况。根据您自己的情况更改值。

我的 Ubuntu 帐户是新创建的,不包含任何个人数据。我的帐户是 james,我的主目录是/home/james。我的 OSX 帐户 Users/james 包含我的所有数据、音乐、电影等等。它包含在一个单独的 USB 磁盘上,位于名为 Spare 的分区下,该分区有四个顶级目录,其中一个是 Users,包含我的主目录 Users/james。

在 Ubuntu 中:

  1. 创建一个新帐户,在我的例子中是 hacker。别忘了给 hacker 一个密码
  2. 注销并重新以 hacker 身份登录。登录后,输入:

    sudo su -
    

    您现在将以 root 身份登录。为了避免再次执行此操作,您现在可以输入:

    passwd
    

并为 root 指定密码。以后,你可以通过以下简单的命令访问 root 帐户

    su -

并提供root密码。

  1. 以 root 身份卸载包含 OSX 用户目录的挂载。您应该在 /media/hacker/(userdisk) 下找到它,其中 (userdisk) 是包含用户的位置。我建议使用此命令将其重新挂载为 /media/Users,这样它将始终位于同一位置(它会根据您登录的帐户移动):

    mount -t hfsplus -o rw,uid=99,gid=99 /dev/(userdisk) /media/(userdisk)
    

选择 uid 和 gid 值是因为这些是 OSX 主目录在 Ubuntu 中安装时显示的值。我将尝试在本文后面使这些值永久生效。

  1. 现在您有多种选择:您可以用 OSX Users/james 目录替换 /home/james 目录;您可以在 Ubuntu /home/james 目录下挂载部分或全部 Users/james 子目录;您可以保留一切原样,并在需要某些内容时在 /media 下寻找 Users/james 目录。我将选择第一个选择。以 root 身份执行以下操作:

    cd /home
    mv james james.org
    ln -s /media/(userdisk)/Users/james
    

如果您执行目录列表,您现在将看到 /home 下的两个条目:/home/james.org 和 /home/james,其中后者是一个符号链接。

现在退出 root 帐户,从 hacker 注销并以 james 身份再次登录。Bingo!您的主目录包含所有 OSX 文件和目录。输入

触摸测试

看看你是否可以写入文件,然后

    rm test

再次摆脱它。

现在让我们将其永久化,这样您就不必通过重新安装包含用户目录的磁盘来开始每个会话。

在 Ubuntu 下打开终端窗口并输入

     blkid /dev/(userdisk)

您将收到以磁盘的 UUID 开头的回复,如下所示:

     UUID="a3063a2b-331d-3389-9f0a-49093af68ea9" and then some other stuff

将从 UUID 到 ...ea9” 的行(或您遇到的任何情况)复制到文本文档并删除两个引号“”,使其看起来像这样:

     UUID=a3063a2b-331d-3389-9f0a-49093af68ea9

然后添加以下参数并将整行复制到 /etc/fstab 中:

     UUID=a3063a2b-331d-3389-9f0a-49093af68ea9  /media/<diskname>   hfsplus rw,uid=99,gid=99    0   1

这基本上与您之前手动输入的命令相同,但优点是 UUID 固定在磁盘上。我已经看到迹象表明磁盘可能会在启动之间改变其符号。我的在一次启动后和另一次启动后/dev/xxx都出现了这种情况。/dev/sdc2/dev/sdb2

好的,显然我已经让它在我的实例中按我想要的方式工作了。现在我要在签字之前对它进行一些测试。当我启动另一个操作系统时,我在一个操作系统中创建的文件定位时遇到了一点麻烦。我会在进行一些测试后回来。

相关内容