单独的 unix 帐户可以共享一个用户名但有单独的密码吗?

pou*_*def 3 password login multiuser

在 unix 系统上,每个单独的用户帐户都有一个唯一的用户名。因此,密码并不是唯一的——每个不同的用户都可以拥有完全相同的密码。

我想反过来做。我想要一个用户名,但我希望该登录名有多个密码。根据密码,您要么登录到不同的帐户(使用不同的 UID),要么只拥有不同的主目录。

目标是让两个独立的实体共享相同的用户名,但将它们的文件分开 - 在这种情况下,不同 UID 之间的文件权限不太重要。

关于如何完成此操作或类似操作的任何想法?滥用 /etc/shadow 或 PAM?

这是可以通过编写 PAM 模块来完成的事情吗(我以前从未写过一个。是不是非常非常难?)

Kei*_*son 9

我不相信这是可能的。您可以有两个/etc/passwd具有相同用户名但不同 UID 的条目,但系统可能会忽略第二个条目(或以某种方式不当行为);可以说这样的/etc/passwd文件会被认为是损坏的。

当您登录系统时,首先会提示您输入用户名。完成后,系统会提示您输入密码,并检查输入的密码是否与该用户名对应的帐户的密码匹配。当您输入密码时,系统已经确定您尝试访问的帐户。

我想您可以修改系统的各个部分以获得您想要的行为,但是您必须替换几个不同的软件部分,包括对用户进行身份验证和授权的任何内容(控制台登录、su、ssh 以及任何其他方法)启用)。任何错误都可能打开巨大的安全漏洞。

编辑:根据评论,PAM 可能是这样做的方法。我对 PAM 不够熟悉,无法详细介绍。(这仍然是一个非常糟糕的主意。)