1Support for file metadata
2~~~~~~~~~~~~~~~~~~~~~~~~~
3
4Besides regular file and directory structures, Borg can preserve
5
6* symlinks (stored as symlink, the symlink is not followed)
7* special files:
8
9  * character and block device files (restored via mknod)
10  * FIFOs ("named pipes")
11  * special file *contents* can be backed up in ``--read-special`` mode.
12    By default the metadata to create them with mknod(2), mkfifo(2) etc. is stored.
13* hardlinked regular files, devices, FIFOs (considering all items in the same archive)
14* timestamps in nanosecond precision: mtime, atime, ctime
15* other timestamps: birthtime (on platforms supporting it)
16* permissions:
17
18  * IDs of owning user and owning group
19  * names of owning user and owning group (if the IDs can be resolved)
20  * Unix Mode/Permissions (u/g/o permissions, suid, sgid, sticky)
21
22On some platforms additional features are supported:
23
24.. Yes/No's are grouped by reason/mechanism/reference.
25
26+-------------------------+----------+-----------+------------+
27| Platform                | ACLs     | xattr     | Flags      |
28|                         | [#acls]_ | [#xattr]_ | [#flags]_  |
29+=========================+==========+===========+============+
30| Linux                   | Yes      | Yes       | Yes [1]_   |
31+-------------------------+----------+-----------+------------+
32| Mac OS X                | Yes      | Yes       | Yes (all)  |
33+-------------------------+----------+-----------+------------+
34| FreeBSD                 | Yes      | Yes       | Yes (all)  |
35+-------------------------+----------+-----------+------------+
36| OpenBSD                 | n/a      | n/a       | Yes (all)  |
37+-------------------------+----------+-----------+------------+
38| NetBSD                  | n/a      | No [2]_   | Yes (all)  |
39+-------------------------+----------+-----------+------------+
40| Solaris and derivatives | No [3]_  | No [3]_   | n/a        |
41+-------------------------+----------+-----------+------------+
42| Windows (cygwin)        | No [4]_  | No        | No         |
43+-------------------------+----------+-----------+------------+
44
45Other Unix-like operating systems may work as well, but have not been tested at all.
46
47Note that most of the platform-dependent features also depend on the file system.
48For example, ntfs-3g on Linux isn't able to convey NTFS ACLs.
49
50.. [1] Only "nodump", "immutable", "compressed" and "append" are supported.
51    Feature request :issue:`618` for more flags.
52.. [2] Feature request :issue:`1332`
53.. [3] Feature request :issue:`1337`
54.. [4] Cygwin tries to map NTFS ACLs to permissions with varying degrees of success.
55
56.. [#acls] The native access control list mechanism of the OS. This normally limits access to
57    non-native ACLs. For example, NTFS ACLs aren't completely accessible on Linux with ntfs-3g.
58.. [#xattr] extended attributes; key-value pairs attached to a file, mainly used by the OS.
59    This includes resource forks on Mac OS X.
60.. [#flags] aka *BSD flags*. The Linux set of flags [1]_ is portable across platforms.
61    The BSDs define additional flags.
62