具有相同 UID 的多个 *NIX 帐户

Tim*_*Tim 15 security linux unix

我很好奇是否存在标准的预期行为,以及在具有相同 UID 的 Linux/Unix 上创建多个帐户时是否被认为是不好的做法。我已经用这个在 RHEL5 上做了一些测试,它的表现符合我的预期,但我不知道我是否在使用这个技巧来诱惑命运。

例如,假设我有两个具有相同 ID 的帐户:

a1:$1$4zIl1:5000:5000::/home/a1:/bin/bash
a2:$1$bmh92:5000:5000::/home/a2:/bin/bash
Run Code Online (Sandbox Code Playgroud)

这意味着:

  • 我可以使用自己的密码登录每个帐户。
  • 我创建的文件将具有相同的 UID。
  • 诸如“ls -l”之类的工具会将 UID 列为文件中的第一个条目(在本例中为 a1)。
  • 我避免了两个帐户之间的任何权限或所有权问题,因为它们实际上是同一个用户。
  • 我对每个帐户进行登录审核,因此我可以更好地跟踪系统上发生的情况。

所以我的问题是:

  • 这种能力是被设计出来的还是只是它碰巧起作用的方式?
  • 这是否会在 *nix 变体中保持一致?
  • 这是公认的做法吗?
  • 这种做法是否有意想不到的后果?

请注意,这里的想法是将其用于系统帐户而不是普通用户帐户。

小智 9

我的看法:

这种能力是被设计出来的还是只是它碰巧起作用的方式?

它是设计的。自从我开始使用 *NIX,您就可以将用户置于公共组中。让 UID 保持相同而没有问题的能力只是一个预期的结果,与所有事情一样,如果管理不当,可能会带来问题。

这是否会在 *nix 变体中保持一致?

我相信是这样。

这是公认的做法吗?

以一种或另一种方式被普遍接受,是的。

这种做法是否有意想不到的后果?

除了登录审核,您别无他物。除非你真的想要那样,否则开始。


Tom*_*ime 7

它可以在所有 Unix 上运行吗?是的。

这是一个很好的使用技术吗?不,还有其他更好的技术。例如,正确使用 unix 组和严格控制的“sudo”配置可以达到同样的目的。

我已经看到一个地方使用它没有问题。在 FreeBSD 中,传统的做法是创建一个名为“toor”(root 反向拼写)的第二个 root 帐户,该帐户将 /bin/sh 作为默认 shell。这样,如果 root 的 shell 搞砸了,您仍然可以登录。

  • 它不仅是传统的,而且是默认的。在每次安装时都会创建 toor 用户,以便如果用户搞砸了 root 帐户 toor 仍然可用。话虽如此,大多数人从未为 toor 用户帐户设置密码! (3认同)

jj3*_*j33 5

我无法为您的问题提供规范的答案,但有趣的是,我的公司多年来一直在使用 root 用户执行此操作,并且从未遇到任何问题。我们创建了一个“kroot”用户(UID 0),其存在的唯一原因是将 /bin/ksh 作为 shell 而不是 /bin/sh 或 bin/bash。我知道我们的 Oracle DBA 对他们的用户做了类似的事情,每次安装有 3 或 4 个用户名,都具有相同的用户 ID(我相信这样做是为了让每个用户拥有单独的主目录。我们至少已经这样做了十年,在 Solaris 和 Linux 上。我认为它按设计工作。

我不会使用普通用户帐户执行此操作。正如您所指出的,在初始登录后,一切都会回到日志文件中的名字,所以我认为一个用户的操作可以伪装成日志中另一个用户的操作。对于系统帐户,虽然效果很好。


Sri*_*mar 5

这种做法是否有意想不到的后果?

我知道一个问题。Cron 不能很好地处理这个 UID 别名。尝试从 Python 脚本运行“crontab -i”以更新 cron 条目。然后在shell中运行“crontab -e”进行修改。

请注意,现在 cron(我认为 vixie)将为 a1 和 a2(在 /var/spool/cron/a1 和 /var/spool/cron/a2 中)更新相同的条目。