Answers:
许多Unix系统开始以特定数量向用户分发UID。Solaris将给第一个通用用户UID 100,在OpenBSD上给它1000,在macOS上它似乎是UID 501,它将是第一个创建的交互式用户的UID,这也可能是macOS管理员用户(这是不一样的)作为root用户)。
编号较小的帐户是守护程序等的系统用户帐户。这使区分交互式“人工”帐户与系统服务帐户变得更加容易。这也可以使各种软件中的用户管理,身份验证等更加容易。YP / NIS是一种过时的系统,用于将用户帐户(和其他信息)保留在中央服务器上,而不必在多台客户端计算机上创建本地用户,例如,YP / NIS具有MINUID
和MAXUID
设置应处理的用户帐户范围。
在某些Unices上,可能会将一定范围的系统服务帐户分配给第三方软件,例如FreeBSD上的UID 50到999或OpenBSD上的UID 50到999。
所有这些范围都是由单个Unices的制造商和维护者根据其操作系统的预期需求选择的。POSIX标准未对这些内容进行任何说明。最低和最高可分配的UID(和GID)通常可以由本地管理员配置(请参见adduser
手册)。
大多数Unices为root
超级用户保留UID 0 ,并为用户分配尽可能高的UID(或至少一些高值)nobody
(Solaris使用UID 60001,OpenBSD使用32768,但是UID可能要大得多)。
(请参阅有关UID 0总是root
(或不是)的注释,这与本主题略有出入)
更新:OpenBSD项目最近拒绝了将UID / GID分配随机化的想法。
对于遵循LSB的发行版,它们会静态分配0-99的UID和GID。UID 100-499是动态分配的,但它们也用于系统,而不用于登录帐户。
例如,类似的打印守护进程cups
往往会被分配自己的用户帐户。因此,如果利用了守护程序中的漏洞,则该守护程序不会像root
在系统上具有全部功能一样运行。(它也不一定具有干扰其他守护程序的能力)。
在较新的Linux发行版中,系统范围扩展到999。
对于登录帐户,这将使UID向上500(或向上1000)。
Debian的还具有一个静态的分配UIDGID 100,尽管我无法想象这种偏差会导致任何特定问题。
不难想象另一个系统具有一个偏离的偏差,该系统还保留了UID500。(我认为这仍然是合规的;我无法想象所有Linux都已经长期违反LSB了,如果没有它正在更新)。
第一个登录帐户不必是管理员帐户,也不必是主管理员帐户。系统不一定要使用sudo
(特别是如果它们早于:)。root
在这种情况下,您可能会说“主要管理员帐户” 。除此之外,* nix和通用Linux发行版无法识别特定的“主管理员帐户”。
On more recent Linux distributions, the system range is extended up to 999.
-我的用户ID一直在1000以上,并且从2005年开始使用Linux。我不会将其称为“最近的”。