Skip to content

Feature Request: Fallback from fs.copyFile() to a simple stream-based copy to work in restricted ACL mode datasets. #2

Description

@tabalugadreieck

Copy of:
nxzai#367

Problem description

Copy/Move-Paste fails in a dataset with restricted ACL mode because chmod/chown is not allowed.

Reproduction Example:

printf 'copy test\n' > nx-test.txt
cp -v nx-test.txt nx-test-cp.txt
# succeeds
node -e "require('node:fs').copyFileSync('nx-test.txt', 'nx-test-node.txt')"
# fails: EPERM operation not permitted, copyfile
cp -av nx-test.txt nx-test-archive.txt
# content is copied, then fails:
# can't preserve permissions: Operation not permitted

Environment:
TrueNAS SCALE 25.10, host-path-mounted ZFS dataset using NFSv4/SMB ACLs with aclmode=restricted. NextExplorer deployed as docker app. The app can browse, create, rename, and delete. The container runs as root.
Changing ACL mode to passthrough: Copy works again without error.

Feature Request

Please add a copy mode that does not preserve/chmod/chown file metadata, or fall back to a stream-based copy when fs.copyFile() returns EPERM. This is required for restricted ACL datasets where new files must inherit the destination directory ACL unchanged, e.g. because they are used with additional SMB access.
This could either be implemented as a fallback when fs.copyFile() returns EPERM or just be a global toggle: Preserve file mode/metadata on copy: disabled

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions