如何允许用户在linux上将文件传输给其他用户

如何允许用户在linux上将文件传输给其他用户,第1张

概述我们有几千个用户在大约40个集群上运行应用程序的环境,其大小从20个计算节点到98,000个计算节点.这些系统上的用户生成由传统的unix权限控制的大量文件(有时> 1PB)(由于文件系统的特殊性,ACL通常不可用或不实用). 我们目前有一个名为“give”的程序,这是一个suid-root程序,允许用户在组权限不足时向另一个用户“提供”文件.因此,用户可以输入类似以下内容的文件给另一个用户: > 我们有几千个用户在大约40个集群上运行应用程序的环境,其大小从20个计算节点到98,000个计算节点.这些系统上的用户生成由传统的unix权限控制的大量文件(有时> 1PB)(由于文件系统的特殊性,ACL通常不可用或不实用).

我们目前有一个名为“give”的程序,这是一个suID-root程序,允许用户在组权限不足时向另一个用户“提供”文件.因此,用户可以输入类似以下内容的文件给另一个用户:

> give username-to-give-to filename-to-give ...

接收用户然后可以使用名为“take”的命令(给予程序的一部分)来接收文件:

> take filename-to-receive

然后,文件的权限被有效地转移到接收用户.

这个程序已存在多年,我们希望从安全性和功能的角度重新审视这些内容.

我们当前的行动计划是在我们当前的“给予”实施中删除一点腐败,并在我们将其重新部署到生产环境之前将其打包为开源应用程序.

当只有传统的unix权限可用时,是否有人使用另一种方法在用户之间传输极大文件?

解决方法 如果发射器真的愿意放弃文件,你可以使用SUID二进制文件将文件移动到一个可由所有人写入并具有粘滞位(如/ tmp)的目录,然后将所有权更改为新的所有者. chown(3)已经开始为你删除set-user-ID和set-group-ID位.这样,新所有者可以使用该文件执行他想要的 *** 作,包括移动它.

所有可写入的目录都可以属于用户的主目录,以防您想要将多个文件系统用于主目录,并且希望确保不跨越文件系统边界,因为性能会立即变得非常糟糕.在这种情况下,您可能希望确保收件人知道何时提供新文件.

电子邮件可以解决问题.一个更Unixy的解决方案是/ etc / profile,它列出了你新发送的文件.如果您使用pam_echo提供此功能,则会额外获得奖励(例如,使用file = / tmp / deliverIEs /%u,请参阅pam_echo(8)).与PAM相关的任何内容一样,您需要先检查所有实现是否提供此类模块.

总结

以上是内存溢出为你收集整理的如何允许用户在linux上将文件传输给其他用户全部内容,希望文章能够帮你解决如何允许用户在linux上将文件传输给其他用户所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/1043112.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-24
下一篇 2022-05-24

发表评论

登录后才能评论

评论列表(0条)

保存