让多个 UNIX 用户共享一个 UID 有什么副作用?

Яро*_*лин 8 users login alias

我的 GNU/Linux 系统上的sys-apps/shadow包附带了一个useradd命令,该命令支持我之前忽略的一个选项:--non-unique. 为了方便从大学shellig回家,我为我的原始用户名(在家中的随意名称)创建了一个别名:

useradd --non-unique -u 1001 \
     --no-create-home --home-dir /home/casualname \
     -g 1001 -G `id casualname -G | tr ' ' ,` universityUsername
Run Code Online (Sandbox Code Playgroud)

这允许我使用登录 universityUsername 从校园登录,而无需创建 ~/.ssh/config 别名或指定 -l 选项ssh。登录后,whoami报告我是casualname。这是因为casualname 看起来更靠近/etc/passwd 文件的顶部。

我想知道这些别名的支持范围有多广,以及使用它们是否有任何缺点。而且,有没有办法在用户无法重新排序 /etc/passwd 中的条目的系统上选择首选用户别名作为代理($USER 设置为什么)?

Gil*_*il' 14

您不能有多个用户具有相同的 UID。如果他们有相同的 UID,那么他们就是同一个用户。

您拥有的是同一用户的用户数据库中的多个条目。这在我见过的所有 Unix 变体中都是可能的。用户名决定了使用哪个条目以及登录时应用的密码、主目录和 shell。第一个条目确定将返回哪些基于 id 的用户数据库查找。一些应用程序通过名称(可能使用$USER)查找用户数据库,其他应用程序通过 UID;如果他们使用 UID,那么他们将获得第一个条目,而您对此无能为力。

这是一个可爱的设置,但它是这些可爱但大多无用的东西之一。这很不寻常:如果您有任何管理员同事,他们不会为此感谢您;许多应用程序不会费心涵盖这种情况,并且可能表现不佳(例如,取决于您$LOGNAME的某些功能,导致根据您登录的用户名使用不同的数据)。这也容易出错:您需要使用 root 访问权限来创建第二个条目,您需要记住编辑passwdor 中的两个条目shadow(例如,更改您的密码,这将需要 root 访问权限,这与正常passwd调用不同)。只有当你有充分的理由时才应该这样做。

如果您只想为 SSH 使用相同的用户名,那么其他人的做法就是.ssh/config. 这就是他们的目的。设置更简单,不需要更多权限,也不会设置不寻常且可能令人困惑的配置。

同一用户的多个条目的一个有用用途是在出现问题时救援用户。例如,一个toor帐户(传统名称)的外壳是静态链接的二进制文件,您仅将其用于系统修复。


Яро*_*лин 1

根据我的经验,这种方法没有明显的缺点。除了一些奇怪的应用程序可能会感到困惑。到目前为止,这种情况还没有发生在我身上,但我的设置相当简单。

我不建议在您不是唯一用户的系统上使用它。

对于问题的第二部分,不,没有办法做到这一点。此外,在没有 root 权限的系统上也是不可能存在双用户名设置的系统。