在 Ubuntu 上使用 sshfs 和 autofs,我无法在远程文件上设置时间戳:
$ touch /sshfs/server/some/file
touch: setting times of `/sshfs/sshfs/server/some/file': Permission denied
我确实有该文件的写权限。问题出现是因为复制到远程的文件没有获得原始文件的时间戳,而是获得了复制完成的时间。
如果我通过 ssh 连接到服务器,我也可以毫无困难地更改时间戳。只有通过 sshfs 时才会失败。
$ cat /etc/auto.sshfs
afserver -fstype=fuse,sshfs_debug,rw,nodev,nonempty,noatime,allow_other,max_read=65536 :sshfs\#[email protected]:/
$ stat /sshfs/server/some/file
...
Access: (0664/-rw-rw-r--) Uid: ( 1003/ UNKNOWN) Gid: ( 100/ users)
答案1
判断从http://sourceforge.net/mailarchive/message.php?msg_id=26780130(FUSE 邮件列表 - 基本上是 SSHFS 实现的内容),您遇到此问题是因为 /sshfs/server/some/ 中使用的文件系统不处理所使用的属性处理程序。您使用的 SSHFS 实现没有任何解决方案。
编辑
抱歉,我没有看到您设置了“noatime”选项。为什么?删除它。这应该可以解决这里的问题。