File Properties

In addition to a file's name and data contents, there may exist information about access control, ownership, visibility, icons, application bindings, and other "meta data".  The nature and extent of this information varies between platforms.

At the very least, SyncDat will preserve a file's name and the time of its last modification.  It will also attempt to preserve its unix access mode, user id, and group id.  Windows does not support this extra information.

The following table shows which common file properties are preserved by SyncDat on POSIX and Windows platforms.  When a file is being transferred between a POSIX system and a Windows system, a property must be supported by both to be preserved.

PropertyPOSIXWindowsNotes
Unicode NameYesYes
Modification DateYesYes
Creation DateNoNo
Status DateNoNo
Read OnlyYesYesSee Access Modes below
Access ModeYesNoSee Access Modes below
User IDYesNoSee POSIX ID Numbers below
Group IDYesNoSee POSIX ID Numbers below
Access Control ListNoNo
Invisible / HiddenNoNo
BSD FlagsNoNo
Symbolic LinkYesNo
Device/Special FileNoNo
Resource ForksNoNo
Alternate StreamsNoNo

Access Modes

If POSIX file has an access mode with no write permission is sent to a Windows system, the Windows Read-Only flag will be set.  If a Windows file with Read-Only set is sent to a POSIX system, it will receive permissions mask 0666 instead of 0777.  Files marked as read-only or otherwise unwriteable may be not be updateable in future synchronization runs.

POSIX ID Numbers

Preservation of user ID numbers and some group ID numbers may require that syncdat and/or servedat be run as the root super-user.  However, NFS mounts with root-squashing enabled do not permit root access and may cause syncdat to fail when trying to synchronize as root.

Unix user and group ids are numbers which may have different meanings on different systems.  You should not rely on ID preservation unless you know that the local and remote systems have coordinated ID numbers.

If user and group ID numbers of the client and server do not match, or if one or both sides lack permission to set IDs, then use the -u option to suppress ID preservation.  If you see warnings from the client or server about "fchown" failing, then either use -u or authenticate as root.