disable remote
diff --git a/lib/tests/tar/BUILD.bazel b/lib/tests/tar/BUILD.bazel
index 0be7390..a0da599 100644
--- a/lib/tests/tar/BUILD.bazel
+++ b/lib/tests/tar/BUILD.bazel
@@ -165,6 +165,16 @@
 tar(
     name = "tar_runfiles",
     srcs = [":cat_src_file"],
+    tags = [
+        # bsdtar does an optimization where it canonicalizes files in the archive with same dev/inode
+        # by hardlinking them to make the archive smaller. This is an unhermetic behavior because
+        # bazel uses different sandboxing mechanisms depending on the platform and they don't suffer
+        # from this problem.
+        # However, on some RBE implementations like buildbuddy where everything is a hardlink (assuming)
+        # this doesn't work as it allows bsdtar to optimize archive by canonicalizing entries.
+        # See: https://github.com/aspect-build/bazel-lib/issues/620
+        "no-remote-exec",
+    ],
 )
 
 genrule(
diff --git a/lib/tests/tar/asserts.bzl b/lib/tests/tar/asserts.bzl
index a3ce57e..8dd944f 100644
--- a/lib/tests/tar/asserts.bzl
+++ b/lib/tests/tar/asserts.bzl
@@ -4,7 +4,7 @@
 load("@bazel_skylib//rules:write_file.bzl", "write_file")
 
 # buildifier: disable=function-docstring
-def assert_tar_listing(name, actual, expected):
+def assert_tar_listing(name, actual, expected, tags = []):
     actual_listing = "_{}_listing".format(name)
     expected_listing = "_{}_expected".format(name)
 
@@ -14,12 +14,14 @@
         outs = ["_{}.listing".format(name)],
         cmd = "$(BSDTAR_BIN) -tvf $(execpath {}) >$@".format(actual),
         toolchains = ["@bsd_tar_toolchains//:resolved_toolchain"],
+        tags = tags,
     )
 
     write_file(
         name = expected_listing,
         out = "_{}.expected".format(name),
         content = expected + [""],
+        tags = tags,
     )
 
     diff_test(
@@ -27,4 +29,5 @@
         file1 = actual_listing,
         file2 = expected_listing,
         timeout = "short",
+        tags = tags,
     )