![在不同用户之间传输文件:最佳策略?](https://linux22.com/image/171296/%E5%9C%A8%E4%B8%8D%E5%90%8C%E7%94%A8%E6%88%B7%E4%B9%8B%E9%97%B4%E4%BC%A0%E8%BE%93%E6%96%87%E4%BB%B6%EF%BC%9A%E6%9C%80%E4%BD%B3%E7%AD%96%E7%95%A5%EF%BC%9F.png)
我有一个正在做一些事情的程序。它在用户A下运行。
其中一小部分是将文件传输到用户 B 主目录中的目录。传输是通过其所编写语言的 API 调用完成的,而不是通过 shell 命令的系统调用完成的。
现在我看到了多种方法来进行这种转移。
- 以 root 身份运行该程序。
- 将A和B放入同一组并调整目录所有权
- sudo 程序
- 通过系统调用和 sudo 进行移动
- 将文件本地放在A中并进行外部传输(将问题外包)
- ACL B的目录
- ...
我认为这个要求很常见,因为通过 root 运行程序的品味很差。最常见的处理方法是什么?
编辑
A 的程序生成该文件。 B应该能够读取和删除它。
答案1
如果不想看到 A 用户的其他文件很重要,则创建一个单独的公共目录,两个用户都具有读写权限并将文件放在那里。
或者您可以在使用 inotifywatch 创建文件后立即复制/移动文件并 chown 到 B,这是一个示例,将其放入 cron 中