aboutsummaryrefslogtreecommitdiffstats
path: root/test/test-cp-setuid.sh
diff options
context:
space:
mode:
Diffstat (limited to 'test/test-cp-setuid.sh')
-rwxr-xr-xtest/test-cp-setuid.sh23
1 files changed, 23 insertions, 0 deletions
diff --git a/test/test-cp-setuid.sh b/test/test-cp-setuid.sh
new file mode 100755
index 0000000..cdb2cd3
--- /dev/null
+++ b/test/test-cp-setuid.sh
@@ -0,0 +1,23 @@
+#!/bin/bash
+set -e
+
+# Verify that special bits (setuid/setgid/sticky) are preserved.
+#
+# Return vals:
+#
+# 2 - Incorrect permissions
+# All other nonzero - Unexpected command error
+# 0 - Pass
+
+trap "rm -rf d1 d2" EXIT
+
+mkdir d1
+chmod 7777 d1
+cp -Rp d1 d2
+perms=`ls -od d1 d2 | cut -c 1-10 | uniq`
+if [ "$perms" != drwsrwsrwt ]; then
+ exit 2
+fi
+
+
+exit 0