chown の uid, gid に -1 を渡して呼び出すと、オーナー権限のないディレクトリでも ctime が更新されてしまうんだけどよいの?
ルートディレクトリを対象に見てみます。
$ stat /
File: `/'
Size: 4096 Blocks: 8 IO Block: 4096 directory
Device: fd00h/64768d Inode: 2 Links: 23
Access: (0555/dr-xr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2014-08-20 16:24:23.225278266 +0900
Modify: 2014-08-20 14:39:44.462343612 +0900
Change: 2014-08-20 16:35:02.533779300 +0900 # <= これです
$ perl -e 'chown(-1, -1, "/") or die $!'
( 一般ユーザ (vagrant 501:501) で実行しています )
$ stat /
File: `/'
Size: 4096 Blocks: 8 IO Block: 4096 directory
Device: fd00h/64768d Inode: 2 Links: 23
Access: (0555/dr-xr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2014-08-20 16:24:23.225278266 +0900
Modify: 2014-08-20 14:39:44.462343612 +0900
Change: 2014-08-20 16:50:04.448764559 +0900 # <= あれ、更新されている yo !
👻
Mac OS X (Marvcerics) だとこうはならんかった
http://pubs.opengroup.org/onlinepubs/7908799/xsh/chown.html を読むと
The Single UNIX ® Specification, Version 2
とあるので、仕様として正しい感。