一个类Unix的OS可以托管多少个用户帐户?[重复]


13

假设我想让一台服务器拥有尽可能多的用户帐户。最大值是多少?

我想要数百万个用户帐户。疯了吗 我将在机箱中放置数十个负载平衡镜像,并且用户数据将存储在高可用性的存储共享上,而所有其他数据均假定为易失性。


"I want millions of user accounts. Is that crazy?"-是的 为这么多用户使用目录,而不要为那么多用户使用数十个镜像。
MDMarra 2012年

这回答了你的问题了吗?Linux上的最大用户数
Malat

Answers:


22

从理论上讲,您可以拥有用户ID空间支持的尽可能多的用户。要在特定系统上确定此内容,请检查uid_t类型的定义。通常定义为unsigned intint表示在32位平台上最多可以创建43亿用户。在64位平台上,您可以具有16e18个以上的不同用户ID。

但是,在达到此限制之前,其他资源可能已耗尽,例如磁盘空间。如果为每个用户创建一个主目录,那么即使每个用户只有1MB的空间,您也需要超过4PB的存储空间。同样,大量用户使进程在后台运行,安排cron作业,打开ftp和/或ssh会话可能会给系统带来沉重负担。


1
+1表示资源...再说一次,类Unix系统允许疯狂的硬件配置。
HTDutchy 2012年

您确定32位与64位之间的差异吗?您可以添加参考吗?这是我找到的12
malat

8

直到UID空间用完为止。现代系统使用32位无符号整数,其中65535和4294967295是“ any” /“ unknown” /等的魔术值,因此仍有4294967294个并发的不同用户的空间。较旧的系统可能仍显示16位无符号整数。


1

其他答案从字面上回答了OP关于特定限制的问题。鉴于SF也可以作为长期参考,因此我认为对您正在考虑的方法提出一个非常重要的警告很重要。

想要使用目录服务来管理这种规模的用户帐户。正是目录服务[例如OpenLDAP,Active Directory等]设计的问题。

使用“标准” [1] Unix用户工具来管理多个本地用户帐户是一条痛苦不堪的老路,将很难轻易扩展,并且-根据您的问题描述-很有可能会导致严重的后果。当您选择的解决方案实际上无法与多台服务器水平扩展时,请对其进行重新架构。

[1]通常,它们的工作原理非常相似,但具体含义因平台而异,即使在类似的传统Linux发行版中,有时也会有所不同,并且当然会随OS发行版本而定期更改。买者自负。


0

如上所述,理论上您受到UID unsigned int大小的限制,但在达到上述限制之前,很可能目前受资源限制。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.