我希望我组中的其他用户能够访问我的文件空间中的特定文件夹(及其子文件夹),但不能访问我的其余文件。
[原因是我想要编译一个经过检测的应用程序来使用 gcov 进行代码覆盖;各种 .gcno 文件被写入我的构建目录,我希望我的同事在运行他们的测试时,既能访问这些文件,又能生成与它们一起放置的 .gcda 文件。]
无论如何,我天真地以为我可以这样做:
chmod g+w -fR build_directory
...果然,这会导致 build 目录及其所有子目录的权限为 drwxrwxr-x。其所有文件的权限为 -rw-rw-r--。即便如此,我小组的同事报告说,即使尝试执行
ls -l <full path to build_directory>
返回“无法访问:没有此文件或目录”。
我错过了什么?
我找到解决办法了,很是尴尬。
我的权限没有任何问题。问题是目录所在的驱动器是我运行的服务器的本地驱动器,而不是网络驱动器。我的同事在其他服务器上工作,所以我的服务器的网络驱动器对他们来说根本是不可见的。
难怪错误信息是“无法访问:没有此文件或目录”。
当我的同事登录同一台服务器上的帐户时,本地磁盘就可见了,一切都按预期工作。