Rclone copy local preserve user / group / permission

What is the problem you are having with rclone?

i am using rclone v1.68, and i am using the --metadata flag, i was expecting rclone to preserve user / group / permission but it getting changed to the user running rclone ( or root when running with sudo)

sudo rclone copy test3/ test5/ --metadata

I tested on both local storage (i.e from a folder on the same disk to another folder on the same disk) and over nFS

Is there a way to get rclone to preserve this when doing a copy locally

welcome to the forum,

might want to rclone selfupdate and test again.

Thanks @asdffdsa that got me some of the way there, the only issue i see is that if ( using my example above) test5 does not exist it got made with root:root and 755 where test3 had different ownership and was 775

everything inside test5 was identical to test3
Thanks
Adam

yeah, that is what the docs state.
do you get the same behavior on a file?


let's see what metadata is available to rclone. something like this.
rclone lsjson --stat --metadata test3/ -vv


can you post output of rclone version

                                                                    
2025/01/27 22:23:46 DEBUG : rclone: Version "v1.69.0" starting with parameters ["rclone" "lsjson" "--stat" "--metadata" "test2/" "-vv"]
2025/01/27 22:23:46 DEBUG : Creating backend with remote "test2/"
2025/01/27 22:23:46 DEBUG : Using config file from "/home/adam/.config/rclone/rclone.conf"
2025/01/27 22:23:46 DEBUG : fs cache: renaming cache item "test2/" to be canonical "/user_data/test2"
{

{
	"Path": "",
	"Name": "",
	"Size": -1,
	"MimeType": "inode/directory",
	"ModTime": "2025-01-27T22:23:46.607919413Z",
	"IsDir": true
}
2025/01/27 22:23:46 DEBUG : 3 go routines active

rclone v1.69.0                               
- os/version: rocky 9.4 (64 bit)
- os/kernel: 5.14.0-427.24.1.el9_4.cloud.3.0.x86_64 (x86_64)
- os/type: linux
- os/arch: amd64
- go/version: go1.23.4
- go/linking: static
- go/tags: none

copy a single file worked fine

 sudo rclone copy test1/file1111 . -vv --metadata                                         
2025/01/27 22:25:52 DEBUG : rclone: Version "v1.69.0" starting with parameters ["rclone" "copy" "test1/file1111" "." "-vv" "--metadata"]
2025/01/27 22:25:52 DEBUG : Creating backend with remote "test1/file1111"
2025/01/27 22:25:52 NOTICE: Config file "/root/.config/rclone/rclone.conf" not found - using defaults
2025/01/27 22:25:52 DEBUG : fs cache: renaming child cache item "test1/file1111" to be canonical for parent "/user_data/test1"
2025/01/27 22:25:52 DEBUG : Creating backend with remote "."
2025/01/27 22:25:52 DEBUG : fs cache: renaming cache item "." to be canonical "/user_data"
2025/01/27 22:25:52 DEBUG : file1111: Need to transfer - File not found at Destination
2025/01/27 22:25:52 DEBUG : file1111: md5 = 8fec378760f1e7e708e9f57edafc28fc OK
2025/01/27 22:25:52 DEBUG : file1111.1644b32.partial: renamed to: file1111
2025/01/27 22:25:52 INFO  : file1111: Copied (new)
2025/01/27 22:25:52 INFO  : 
Transferred:   	          1 B / 1 B, 100%, 0 B/s, ETA -
Transferred:            1 / 1, 100%
Elapsed time:         0.0s

2025/01/27 22:25:52 DEBUG : 6 go routines active

ok, i think we have enough basic debug info.

am i correct in stating that:
for files, lsjson is returning gid + uid
for directories, lsjson is NOT returning gid + uid

Correct,

{
	"Path": "file1111",
	"Name": "file1111",
	"Size": 1,
	"MimeType": "application/octet-stream",
	"ModTime": "2025-01-27T21:18:42.559181197Z",
	"IsDir": false,
	"Metadata": {
		"atime": "2025-01-27T21:19:14.098861818Z",
		"btime": "2025-01-27T22:26:48.477925584Z",
		"gid": "1330800513",
		"mode": "100664",
		"mtime": "2025-01-27T21:18:42.559181197Z",
		"uid": "1330801363"
	}

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.