我们有一个NFS共享,其中unix中的文件夹挂载在NFS windows服务器上。即使在unix机器上将某些文件夹的权限设置为775之后也是如此。当某些java进程在该文件夹中创建文件时,这并不能反映出来。
因此,在安装在nfs服务器上unix计算机上,我们有一个类似于/nobackup/stream的文件夹
unix计算机ls -ald /nobackup/stream rwxrwxr-x所有者组上的权限
我们有一个将结果日志和子目录写入stream文件夹的自动化过程,出于某种奇怪的原因,这些文件是通过权限创建的
rwxr-xr-x所有者组
即不存在对组的写访问权限。
这会导致我们的自动化失败,因为在某些地方,以组用户权限运行的进程试图更新以上述权限创建的文件
最初的嫌犯是umask
因此,我们在perl进程中将umask设置为0002,这会启动没有帮助的自动化
正在使用Files.mkdir写入文件
这里的posix权限是正确的,umask仍然是正确的,新文件不是用正确的权限创建的
还要注意的是,自动化运行在cygwin shell下,如果这是造成问题的原因。
如何确保始终正确设置文件权限
发布于 2017-12-21 02:57:44
问题是自动化是在cygwin中运行的。这些文件仍由Windows NFS客户端编写,该客户端不知道如何解释cygwin中设置的权限。
您需要在Windows NFS客户端中设置默认权限。您可以使用nfsadmin从命令行执行此操作。类似于:
nfsadmin client [ComputerName] fileaccess=664来源:https://technet.microsoft.com/en-us/library/cc754304(v=ws.11).aspx
https://stackoverflow.com/questions/47800905
复制相似问题