I’m using mender-artifact install -m <mode> <src> <dst>
to install files into a mender artifact, but I’m seeing the file created with the same permissions as the src
file, instead of permissions set by the mode
flag.
Here are the steps I’m following:
$ stat -c %a src_file
644
$ mender-artifact install -m 0777 src_file artifact.mender:/dst_file
$ tar -xf artifact.mender
$ tar -xzf data/0000.tar.gz
$ debugfs file-system.ext4
debugfs: stat /dst_file
Inode: 3958 Type: regular Mode: 0600 Flags: 0x80000
Generation: 0 Version: 0x00000000
User: 0 Group: 0 Size: 23707147
File ACL: 0
Links: 1 Blockcount: 46304
Fragment: Address: 0 Number: 0 Size: 0
ctime: 0x5db20f50 -- Thu Oct 24 20:53:36 2019
atime: 0x5db20f50 -- Thu Oct 24 20:53:36 2019
mtime: 0x5db20f50 -- Thu Oct 24 20:53:36 2019
I’ve added some logic to the mender-artifact install
command to verify the mode
value I’m passing in is being parsed correctly (0755
parses as -rwxr-xr-x
for instance), but it seems like the mode
value is not available at the time we actually create the dst
file with a debugfs
command.
I noticed there’s also a unit test in copy_test.go
for Install file, standard permissions (0600)
, but it’s failing on my machine. Has anyone seen similar behavior or have an idea what’s going on here?
I’m happy to dig in and experiment a little, but I’m not super familiar with Go. Thanks for the help!