![更改 CIFS 挂载上目录的时间戳时权限被拒绝](https://linux22.com/image/681488/%E6%9B%B4%E6%94%B9%20CIFS%20%E6%8C%82%E8%BD%BD%E4%B8%8A%E7%9B%AE%E5%BD%95%E7%9A%84%E6%97%B6%E9%97%B4%E6%88%B3%E6%97%B6%E6%9D%83%E9%99%90%E8%A2%AB%E6%8B%92%E7%BB%9D.png)
服务器目录由一个用户安装,该用户在 Windows 中肯定具有“写入属性”权限。
在 /etc/fstab 中:
//server/shared /mnt/fs1 cifs noperm,rw,nounix,iocharset=utf8,gid=java,file_mode=0774,dir_mode=0775,credentials=/localhome/securedir/fs1.credentials 0 0
已挂载的文件是可读写的目录。
更改文件的时间戳:
> touch -t 01010101 /mnt/fs1/test.file
更改目录的时间戳会导致“权限被拒绝”:
> touch -t 01010101 /mnt/fs1/baselines
touch: setting times of `/mnt/fs1/baselines': Permission denied
还有其他安装选项吗?谢谢!
答案1
目前我得到的最合理的答案是 Windows 没有目录的修改日期属性。只有创建日期。
当尝试使用以下命令更改目录的修改日期时,这个问题可能会非常令人困惑java.io.File#setLastModified方法。在 Linux 和 Windows 下,此 API 都适用于本地目录,结果可预测。但是,在一个特定的场景中,即尝试设置 Linux 机器上已安装 CIFS 目录的修改日期时,此 API 无法更改日期并返回 false。