xfstests-bld: correct file permissions on test appliance files
PATCH v4 1/1 xfstests-bld: correct file permissions on test appliance files
From: Eric Biggers <[email protected]>
The xfstests-bld repository may have been cloned with a umask that masked out the group and/or the other bits. When using --update-files in this situation or when creating a GCE image, the VM ended up in a state where non-root users were unable to execute the binaries in /root/xfstests, which made all tests using the fsgqa user get skipped. Fix this by copying the r and x user bits to the group and other bits when creating files.tar.gz, creating xfstests.tar.gz, or copying files directly to the kvm-xfstests appliance. Also consistently set the owner and group to root.
Note that git doesn't actually store file owners, groups, or any mode bits other than "is the file executable"? So this patch really just enforces a consistent, sane default for this "unstored" metadata.
--- gen-tarball | 2 +- kvm-xfstests/gce-xfstests | 3 ++- kvm-xfstests/kvm-xfstests | 3 ++- kvm-xfstests/test-appliance/gce-create-image | 3 ++- kvm-xfstests/test-appliance/gen-image | 1 + 5 files changed, 8 insertions(+), 4 deletions(-)
gen-tarball +1 -1
@@ -50,5 +50,5 @@ cp bld/lib/client.txt xfstests/lib echo "STRIP xfstests/*" find xfstests -mindepth 2 -type f -perm /0111 | xargs $STRIP 2> /dev/null echo "TAR xfstests" -tar c --owner=root --group=root --mode=o+g-w xfstests | \ +tar c --owner=root --group=root --mode=go+u-w xfstests | \ $GZIP -9 > xfstests.tar.gz
kvm-xfstests/gce-xfstests +2 -1
@@ -456,7 +456,8 @@ then exit 1 fi (cd "$DIR/test-appliance"; \ - tar -X gce-exclude-files --exclude=etc -C files -cf - . | \ + tar -X gce-exclude-files --exclude=etc -C files \ + --owner=root --group=root --mode=go+u-w -cf - . | \ gzip -9n > $LOCAL_FILES) get_local_hash "$LOCAL_FILES" get_remote_hash "$GS_FILES"
kvm-xfstests/kvm-xfstests +2 -1
@@ -75,7 +75,8 @@ then exit 1 fi (cd "$DIR/test-appliance"; \ - tar -X kvm-exclude-files -C files -cf - . | \ + tar -X kvm-exclude-files -C files \ + --owner=root --group=root --mode=go+u-w -cf - . | \ gzip -9n > "$TDIR/files.tar.gz") tar -r -f $VDH -C "$TDIR" files.tar.gz rm -rf "$TDIR"
kvm-xfstests/test-appliance/gce-create-image +2 -1
@@ -87,7 +87,8 @@ then cat ../../*.ver > files/root/xfstests/git-versions fi -tar -X gce-exclude-files -C files -cf - . | gzip -9n > $t +tar -X gce-exclude-files -C files --owner=root --group=root --mode=go+u-w \ + -cf - . | gzip -9n > $t GS_FILES_TARBALL=gs://$GS_BUCKET/files.tar.gz if test -f files/root/xfstests/git-versions
kvm-xfstests/test-appliance/gen-image +1 -0
@@ -114,6 +114,7 @@ update_xfstests() rsync --exclude-from kvm-exclude-files -avH files/* $ROOTDIR rsync -avH ../../xfstests/git-versions $ROOTDIR/root/xfstests chown -R root:root $ROOTDIR/root + chmod -R go+u-w $ROOTDIR/root } fix_symlinks()
Signature · 1 line
2.11.0.390.gc69c2f50cf-goog
Theodore Ts'o
AppliedQuoted 12 lines · Eric Biggers
From: Eric Biggers <[email protected]>
The xfstests-bld repository may have been cloned with a umask that masked out the group and/or the other bits. When using --update-files in this situation or when creating a GCE image, the VM ended up in a state where non-root users were unable to execute the binaries in
/root/xfstests, which made all tests using the fsgqa user get skipped. Fix this by copying the r and x user bits to the group and other bits when creating files.tar.gz, creating xfstests.tar.gz, or copying files directly to the kvm-xfstests appliance. Also consistently set the owner and group to root.
Quoted 5 lines
Note that git doesn't actually store file owners, groups, or any mode bits other than "is the file executable"? So this patch really just enforces a consistent, sane default for this "unstored" metadata.
Signed-off-by Eric Biggers <[email protected]>
Applied, thanks.
- Ted