File ownership, attributes, and permissions when syncing files across OS's / file systems (with Syncthing)

Hi All, I’m a relatively new truenas user looking for some guidance and potential reading material.

I recently setup Syncthing to keep a subset of files synced across my Truenas Scale machine and a few different machines running Arch, Ubuntu, Windows 10, and Android.

Truenas System specs
TrueNAS-SCALE-24.10.2
MOBO: X10SDV-4C-7TP4F
CPU: Xeon D-1518@2.20GHz
RAM: 32GB@1333MHz DDR4 ECC 
PSU: Corsair RM650
Case: Fractal Node 804

Data Pool: 5 x 4 TB RAIDZ2
Backup Pool: 5 x 4 TB RAIDZ2

As a part of that process I ran into an issue when setting some of the advanced folder sharing properties for a test folder. Note that while this question arose due to using Syncthing, I’m asking it here as the question mainly revolves around setting permissions when syncing files from truenas to several machines using a variety of operating systems, and I want to ensure the way I’m doing this doesn’t muddle up the data I’m storing with truenas.

Brief Version

Since each machine has a different OS (Truenas, Arch, Ubuntu, Windows10, Android) and file systems (ZFS, BTRFS, ext4, NTFS, ext4?) I have disabled synchronizing file ownership and extended attributes. However I’m unsure whether or not I should ignore the file permissions on each machine. More generally, I’m also unsure if regardless of the permissions decision there are any risks to sharing some of my files using syncthing like this.

Longer version with details:

I’ll apologize in advance if this is a bit long. I tried several things to get my setup to work, and I’m hoping this can help a future user avoid a few headaches.

The host truenas scale machine is running ElectricEel-24.10.2 with Syncthing (App Version: 1.29.2, Version: 1.1.12). I additionally have Syncthing installed on 1) an Arch laptop using BTRFS, 2) an Ubuntu desktop using ext4, 3) a windows 10 desktop using NTFS, and 4) a Pixel 7 which I believe uses ext4.

When sharing a folder each machine can select a few options regarding file permissions. You can ‘Sync Ownership’, ‘Sync Extended Attributes’, and ‘Ignore Permissions’. During my initial tests I naively assumed I’d want to sync ownership and extended attributes. Of course this was horribly wrong, and led to logged errors like:

2025-02-28T09:42:32.94582017-05:00: 
Puller (folder "TEST" (ID)  item "carroll2019 - Spacetime and geometry an introduction to general relativity.pdf"): syncing: finishing: setting metadata: set xattrs /home/USER/TEST/.syncthing.carroll2019 - Spacetime and geometry an introduction to general relativity.pdf.tmp: Setxattr "system.nfs4_acl_xdr": operation not supported

2025-02-28 14:42:29 Puller (folder "TEST" (ID), item "locate"): syncing: handling dir (setting permissions): chmod /TEST/locate: operation not permitted

In hindsight this makes sense since I’m using multiple different file systems (as I learned after a good session of RTFM’ing sncXattr, syncOwnership).

I now have Sync Ownership and Sync Extended Attributes turned off on all machines. The final option I need to set is to decide whether or not to Ignore Permissions. The Syncthing GUI says that this is “useful on systems with nonexistent or custom permissions (e.g. FAT, exFAT, Synology, Android)”

When setting up the test folder on my Pixel it ignores permissions by default. For my other computers I’m unsure if I should ignore the permissions or not. The files appear to sync regardless of which option I select.

So, can someone either point me in the direction of some good reading material, or enlighten me on whether or not I should enable or disable ‘Ignore Permissions’. Does the decision change on each device? Also, are the previous choices to not sync file ownership or extended attributes OK, or am I accidentally shooting myself in the foot, and instead need to restrict sharing between users on different file systems?

Thanks for your guidance.

Did you find any more information out about this? You might be better off posting this inside of syncthing.

I setup a small TrueNAS over the weekend and started looking at the syncthing config in the apps and plan to get everything working between all my devices. I want to keep the TrueNAS as an always on node that connects to a private relay so my devices can always stay updated and have private syncing.

I’ve only been using syncthing across windows / macOS / iOS. I’ve also been using it and not syncing file ownership or extended attributes. My environment is not as mixed as yours, but i do plan on eventually expanding my syncthing use across different servers I have setup.

I did have an issue where there were some ACLs on files that i didn’t know about on macOS and when i was deleting things on my windows machine it put everything out of sync because the ACLs were blocking syncthing from deleting them on my mac. You might have an issue like this.

I haven’t learned anything new since posting. I plan on posting this over with syncthing too, but it’s just been a low priority thing for me this week so I haven’t gotten to it yet.

Thanks for letting me know about the ACL issue you had. I haven’t seen anything like that (yet…) but I’ll keep my eyes open for it.

Okay, no problem. Let me know if you post there.