我有一个正在做一些事情的程序。它在用户A下运行。
其中一小部分是将文件传输到用户 B 主目录中的目录。传输是通过其所编写语言的 API 调用完成的,而不是通过 shell 命令的系统调用完成的。
现在我看到了多种方法来进行这种转移。
- 以 root 身份运行该程序。
- 将A和B放入同一组并调整目录所有权
- sudo 程序
- 通过系统调用和 sudo 进行移动
- 将文件本地放在A中并进行外部传输(将问题外包)
- ACL B的目录
- ...
我认为这个要求很常见,因为通过 root 运行程序的品味很差。最常见的处理方法是什么?
编辑
A 的程序生成该文件。 B应该能够读取和删除它。
答案1
如果不想看到 A 用户的其他文件很重要,则创建一个单独的公共目录,两个用户都具有读写权限并将文件放在那里。
或者您可以在使用 inotifywatch 创建文件后立即复制/移动文件并 chown 到 B,这是一个示例,将其放入 cron 中