I'm recovering files from an old hard drive and I need to keep the last modified date from the drive. The reason they are updating is because I need to change the ownership of the files to a new user.
The mtime (file modification time) shouldn't change when the owner is changed (nor should the atime or access time). That would be a change in the inode information, reflected in the ctime field.
If you find that on your system,
chgrp(1)) do change the mtime or atime and you're concerned about preserving both mtime and atime, then you'll need to write code to collect the current times (using
stat(1)), and reinstate them (using
AFAIK, you cannot control the setting of the ctime. If the inode changes, the system records the time it changed and doesn't allow you to change that.