会社のファイルサーバはSambaを使っている。
もうかれこれ3〜4年使っているのだが、今更のごとく「なんかExcelのファイルは開いただけで更新タイムスタンプが変わっちゃうんだけど…」と言われた。
どうやら、何も更新しなくても開いて閉じるだけで更新タイムスタンプが変わるらしい。それも変わるファイルと変わらないファイルがあるとのこと。
調べてみると、Sambaの設定であることが判明した。(ま、半分はExcelの仕様のせいなんだけど…)
Excelはファイルを開いただけで更新タイムスタンプを「開いた時」に変更して(というか開いた段階で何か書きに行ってるんだな。)、更新せずに閉じた時はわざわざ元のタイムスタンプに書き戻す仕様らしい。…なんでそんな変な仕様になってるんだろう。
Windows Serverではファイルのタイムスタンプのみの更新は(書き込み権限さえあれば)誰でもできるのに対し、Unix系のシステムでは所有者か管理者にしかさせないために、元のタイムスタンプに書き戻すのに失敗していたらしい。
Sambaのバージョンアップでなおったとかいろいろ書き込みは見つけたのだけど、もっと調べてたら(バージョンアップはできればやりたくなかったので…)smb.confで「dos filetimes = yes」を追加したら解消することが判明。
やってみると確かに問題は解消しました。