如果我的服务器上有 10,000 个 Web 应用程序,并且我想要增强权限并为每个应用程序创建一个用户(/var/www/NAME
将有一个匹配的/tmp/www/NAME
),那么一切都会好起来还是当我有 10k 用户时会出现问题?
答案1
对于如此多的用户和组来说,很少有事情会出现问题。核心 NSS 工具通常非常强大,并且 glibc 和 Linux 内核不会出现实质性问题。
如果您使用使用网络访问的 NSS,则可能需要使用本地缓存工具来提供良好的性能 - 但这只是因为许多查找将花费大量时间,而不是因为该计数有任何根本问题。
答案2
如果你在前世积累了很多恶业,你可能会发现自己今天处于使用NFS(噩梦^W网络文件系统)的境地。
NFS 传统上有 16 个组的限制,但现代安装可以避免这种情况。如果这适用于您,这篇文章值得一读:http://nfsworld.blogspot.com/2005/03/whats-deal-on-16-group-id-limitation.html
答案3
请注意,这是对评论中改述的问题的回应。
我会将用户分组为“元组”,这些组可以是商业组(黄金组、有价值组、免费组、yadda、yadda)或只是公司名称的哈希值。然后我会这样:
/home/用户/${metaGroup}/用户
作为他们的 $HOME,只有他们可以读取它的权限,并且只能通过密钥进行 ssh 访问。操作系统将保证每个没有组/世界读取权限的文件都可以被组或所有人读取。
/home/users/${metaGroup}/user/public_html
将是他们的公共文件夹,该文件夹必须是世界可读的,但不是世界正确的。
它${metaGroup}
可以帮助您找到客户,而不必花费大量时间查找复杂的 ls 命令来获得您想要的东西。请注意,用户 ID 的数量也是有限的——请参阅文档。
然而,在此模型上进行托管无法扩展,并且允许客户在生产服务器上进行 shell 访问肯定会给自己带来很多麻烦。