如果作为(非root用户)用户A运行的进程在磁盘上创建了一个锁定文件以保留共享资源,那么将该锁定无缝“切换”到另一个进程(以用户B身份运行)的方法是什么,使用共享资源,最后在完成后删除锁文件?
在理想的解决方案中(按优先级顺序排列):
- 没有人,但用户A和B可以修改锁定文件。
- 只有用户A才能创建锁文件。
- 用户A可以选择在创建锁定文件之后但在切换之前移除锁定文件。
- 用户A还可以选择在切换后删除锁文件。
醇>
到目前为止我想到的两个选项是
- 锁定文件位于包含用户A和B的用户组可写的目录中。这主要有效,但不符合要求2,如果我在类似的“锁定消费者”角色中添加用户C,则会变得不那么令人满意用户B.
- 锁定文件位于设置了粘滞位的目录中,用户A通过使其成为用户B拥有的预先存在的文件的硬链接来创建它。因此,锁定文件始终由用户B拥有。我喜欢这样做不需要专门的用户组,但我希望满足2-4的要求。