我们有一个数千名用户在大约 40 个集群上运行应用程序的环境,集群的大小从 20 个计算节点到 98,000 个计算节点不等。这些系统上的用户生成由传统 unix 权限控制的大量文件(有时> 1PB)(由于文件系统的特殊性质,ACL 通常不可用或不实用)。
我们目前有一个名为“give”的程序,它是一个 suid-root 程序,允许用户在组权限不足时将文件“给”给另一个用户。因此,用户会键入以下内容以将文件提供给另一个用户:
> give username-to-give-to filename-to-give ...
Run Code Online (Sandbox Code Playgroud)
然后,接收用户可以使用名为“take”的命令(give 程序的一部分)来接收文件:
> take filename-to-receive
Run Code Online (Sandbox Code Playgroud)
然后文件的权限被有效地转移到接收用户。
这个程序已经存在多年了,我们想从安全和功能的角度重新审视这些事情。
我们当前的行动计划是在我们将其重新部署到生产中之前,消除我们当前“give”实现中的位腐烂并将其打包为开源应用程序。
当只有传统的 unix 权限可用时,有没有人使用另一种方法在用户之间传输超大文件?