use*_*369 12 osx users history unix-philosophy
我了解*主要管理员用户的用户 ID 为501
,后续用户获得增量编号 ( 502
, 503
, ...) 但为什么501
?有什么特别之处50x
,这个选择的历史/技术原因是什么?
* 当我对为什么我的外部硬盘驱动器里面有所有垃圾文件感到好奇时,我开始研究这个.Trashes/501
。我的搜索使我得出结论501
是 *nix 系统中主管理员的用户 ID(我在 macOS 上),但不是为什么.
Kus*_*nda 22
许多 Unix 系统开始向某个特定号码的用户分发 UID。Solaris 将给第一个通用用户 UID 100,在 OpenBSD 上它是 1000,而在 macOS 上它似乎是 UID 501,它将成为第一个创建的交互式用户的 UID,这也可能是一个 macOS 管理员用户(这不一样)作为 root 用户)。
数字较小的帐户是守护进程等的系统用户帐户。这使得区分交互式“人类”帐户和系统服务帐户变得更加容易。这也可以使各种软件中的用户管理、身份验证等更加容易。YP/NIS是一个稍微过时的系统,用于在中央服务器上保存用户帐户(和其他信息),而无需在多个客户端计算机上创建本地用户,例如,它有一个MINUID
和MAXUID
设置它应该处理的用户帐户范围。
在某些 Unices 上,一系列系统服务帐户可能会分配给第三方软件,例如 FreeBSD 上的 UID 50 到 999 或 OpenBSD 上的 500 到 999。
所有这些范围都是由各个 Unices 的制造商和维护者根据其操作系统的预期需求选择的。POSIX 标准没有说明这些事情。最低和最高可分配 UID(和 GID)通常由本地管理员配置(请参阅您的adduser
手册)。
大多数的Unices预留UID 0 root
,超级用户,并分配最高可能的UID(或至少一些高值)发送到用户nobody
(Solaris使用UID 60001,OpenBSD使用32768,但的UID可为多比大)。
(请参阅有关 UID 0 始终存在root
(或不存在)的评论,这与本主题略有偏离)
更新:OpenBSD 项目最近拒绝了随机化 UID/GID 分配的想法。
对于遵循LSB 的发行版,它们静态分配 UID 和 GID 0-99。UID 100-499 是动态分配的,但这些也是用于系统的,而不是用于登录帐户的。
例如,打印守护进程cups
往往会分配到自己的用户帐户。因此,如果守护进程中的漏洞被利用,守护进程就不会像root
系统一样以全功率运行。(它也不一定有能力干扰其他守护进程)。
在较新的 Linux 发行版上,系统范围扩展到 999。
这将使登录帐户的 UID 为 500 以上(或 1000 以上)。
Debian 也有一个静态的的分配用户标识GID 100,虽然我无法想象这种偏差会导致任何特定问题。
很容易想象另一个系统有一个偏差,它另外保留了 UID 500。(我认为这仍然是合规的;我无法想象所有的 Linux 已经违反 LSB 这么长时间了,没有它正在更新)。
第一个登录帐户不必是管理员帐户或主管理员帐户。系统不一定使用sudo
(特别是如果它们早于它:)。您可能会说“主要管理员帐户”就是root
这种情况。除此之外,*nix 和通用 Linux 发行版不识别特定的“主管理员帐户”。