在我们的文件服务器上,我们有一个目录,假设为S:\
,它被共享为\\server\share
。此共享由我们的应用服务器挂载(映射),假设为M:\ = \\server\share
。
我们使用特定的 Windows 用户batchUser
来在应用服务器上运行批处理进程。这些进程在此目录(或其子目录)中创建\修改\等文件,因此此用户 ID 具有适当的写权限。
服务器上有一个目录树,其中包含目录S:\rootDir1\subDir
和S:\rootDir2
。我们的一些进程会写入此目录。我们的几个进程需要从此目录读取,但必须不惜一切代价阻止它们写入此目录。此外,这些只读进程也必须以相同的用户 ID 运行。
对于各种其他由于这些原因,只读进程通过文件服务器上设置的联结点访问此 subDir。也就是说,在文件服务器上,有一个联结点S:\rootDir2\subDir => S:\rootDir1\subDir
。因此,在我们的应用服务器上,应用程序会看到两个目录,M:\rootDir1\subDir
和M:\rootDir2\subDir
。
我们需要确保只读进程不是M:\rootDir2\subdir
以任何方式修改或写入目录。有什么办法可以使文件服务器上的连接点成为“只读”连接点?
其中一个问题是,我们需要为只读进程保留目录树结构。也就是说,只读进程必须能够看到M:\rootDir2
我们拥有的目录树,并且能够写入此树中除M:\rootDir2\subdir
连接点之外的所有其他目录。
最后,这必须通过连接(在文件服务器端处理)来完成,而不是通过符号链接(在应用服务器端处理)来完成。(这是由于其他问题而提出的要求,例如通过不同的接口卡(即不同的网络)访问目录。)