我希望能够编写说明用户soandso
可以读取或编辑文件的测试或规范such_and_such
。虽然我最终希望它出现在 RSpec 中,但我假设它要么全部归结为 Bash 命令(当然,整齐地包装在 Ruby 方法中),因为它似乎在 Ruby 的 File 类中不可用,或者我看过的其他任何东西。我一直在寻找 Bash 中的东西来做到这一点,但找不到任何东西(而且 File 类中的任何东西看起来也没有用)。(注意: File.owned?没有做我想做的事,因为它只测试运行 Ruby 代码的进程是否是所有者,而不是任何任意用户有权编辑或阅读,所以它在两个方面有很大不同。)
有没有办法做到这一点,内置在 Bash 中?(或者 Ruby,或者我错过的一些 Ruby gem?)或者我是否需要自己构建一个系统,通过获取文件的所有者和组信息,以及读取、写入和执行每个位,然后查找组成员(如果so_and_so
不是所有者),并查看是否soandso
可以通过所有权或组成员资格获得所需的权限?
我目前只关心在类 Unix 系统上执行此操作,尽管不依赖于也可以在 Windows 上运行的 Unix shell 的东西将是一个不错的奖励。
另外,我对测试实际文件很感兴趣,所以像 FakeFS 这样的东西(据我所知)对我没有用。我不是在尝试测试我的 Ruby 代码如何与文件系统交互,而是在尝试验证是否可以对实际文件和目录执行所有必要的操作。(再次,)我希望能够指定soandso
可以编辑(或读取)文件such_and_such
,而不是指定文件such_and_such
归soandso
. 重点不是指定所有权(因为这是一个实现细节,可能需要更改以适应其他要求,例如安全性),而只是指定我的应用程序和用户实际上需要能够对文件系统执行的操作/在文件系统中执行的操作.