svn commit: r323115 - in projects/zfsd/head/tests/sys/cddl/zfs/tests/cli_user: . misc zfs_list zpool_iostat zpool_list

Alan Somers asomers at FreeBSD.org
Fri Sep 1 19:58:44 UTC 2017


Author: asomers
Date: Fri Sep  1 19:58:42 2017
New Revision: 323115
URL: https://svnweb.freebsd.org/changeset/base/323115

Log:
  Fix ZFS's unprivileged tests
  
  The tests used to fail because the kyua process couldn't write to its own
  log files after dropping privileges.  This change fixes them by dropping
  privileges only for the commands under test, so log file access will still
  happen as root.  A few tests (zpool_create_001_neg, zpool_create_002_pos,
  zpool_iostat_003_neg, and zpool_list_002_neg) don't require any setup, so
  they can run fully unprivileged.
  
  Sponsored by:	Spectra Logic Corp

Added:
  projects/zfsd/head/tests/sys/cddl/zfs/tests/cli_user/cli_user.kshlib
Modified:
  projects/zfsd/head/tests/sys/cddl/zfs/tests/cli_user/Makefile
  projects/zfsd/head/tests/sys/cddl/zfs/tests/cli_user/cli.cfg
  projects/zfsd/head/tests/sys/cddl/zfs/tests/cli_user/misc/misc.cfg
  projects/zfsd/head/tests/sys/cddl/zfs/tests/cli_user/misc/misc_test.sh
  projects/zfsd/head/tests/sys/cddl/zfs/tests/cli_user/misc/zdb_001_neg.ksh
  projects/zfsd/head/tests/sys/cddl/zfs/tests/cli_user/misc/zfs_001_neg.ksh
  projects/zfsd/head/tests/sys/cddl/zfs/tests/cli_user/misc/zfs_allow_001_neg.ksh
  projects/zfsd/head/tests/sys/cddl/zfs/tests/cli_user/misc/zfs_clone_001_neg.ksh
  projects/zfsd/head/tests/sys/cddl/zfs/tests/cli_user/misc/zfs_create_001_neg.ksh
  projects/zfsd/head/tests/sys/cddl/zfs/tests/cli_user/misc/zfs_destroy_001_neg.ksh
  projects/zfsd/head/tests/sys/cddl/zfs/tests/cli_user/misc/zfs_get_001_neg.ksh
  projects/zfsd/head/tests/sys/cddl/zfs/tests/cli_user/misc/zfs_inherit_001_neg.ksh
  projects/zfsd/head/tests/sys/cddl/zfs/tests/cli_user/misc/zfs_mount_001_neg.ksh
  projects/zfsd/head/tests/sys/cddl/zfs/tests/cli_user/misc/zfs_promote_001_neg.ksh
  projects/zfsd/head/tests/sys/cddl/zfs/tests/cli_user/misc/zfs_receive_001_neg.ksh
  projects/zfsd/head/tests/sys/cddl/zfs/tests/cli_user/misc/zfs_rename_001_neg.ksh
  projects/zfsd/head/tests/sys/cddl/zfs/tests/cli_user/misc/zfs_rollback_001_neg.ksh
  projects/zfsd/head/tests/sys/cddl/zfs/tests/cli_user/misc/zfs_send_001_neg.ksh
  projects/zfsd/head/tests/sys/cddl/zfs/tests/cli_user/misc/zfs_set_001_neg.ksh
  projects/zfsd/head/tests/sys/cddl/zfs/tests/cli_user/misc/zfs_share_001_neg.ksh
  projects/zfsd/head/tests/sys/cddl/zfs/tests/cli_user/misc/zfs_snapshot_001_neg.ksh
  projects/zfsd/head/tests/sys/cddl/zfs/tests/cli_user/misc/zfs_unallow_001_neg.ksh
  projects/zfsd/head/tests/sys/cddl/zfs/tests/cli_user/misc/zfs_unmount_001_neg.ksh
  projects/zfsd/head/tests/sys/cddl/zfs/tests/cli_user/misc/zfs_unshare_001_neg.ksh
  projects/zfsd/head/tests/sys/cddl/zfs/tests/cli_user/misc/zfs_upgrade_001_neg.ksh
  projects/zfsd/head/tests/sys/cddl/zfs/tests/cli_user/misc/zpool_001_neg.ksh
  projects/zfsd/head/tests/sys/cddl/zfs/tests/cli_user/misc/zpool_add_001_neg.ksh
  projects/zfsd/head/tests/sys/cddl/zfs/tests/cli_user/misc/zpool_add_002_pos.ksh
  projects/zfsd/head/tests/sys/cddl/zfs/tests/cli_user/misc/zpool_attach_001_neg.ksh
  projects/zfsd/head/tests/sys/cddl/zfs/tests/cli_user/misc/zpool_clear_001_neg.ksh
  projects/zfsd/head/tests/sys/cddl/zfs/tests/cli_user/misc/zpool_destroy_001_neg.ksh
  projects/zfsd/head/tests/sys/cddl/zfs/tests/cli_user/misc/zpool_detach_001_neg.ksh
  projects/zfsd/head/tests/sys/cddl/zfs/tests/cli_user/misc/zpool_export_001_neg.ksh
  projects/zfsd/head/tests/sys/cddl/zfs/tests/cli_user/misc/zpool_get_001_neg.ksh
  projects/zfsd/head/tests/sys/cddl/zfs/tests/cli_user/misc/zpool_history_001_neg.ksh
  projects/zfsd/head/tests/sys/cddl/zfs/tests/cli_user/misc/zpool_import_001_neg.ksh
  projects/zfsd/head/tests/sys/cddl/zfs/tests/cli_user/misc/zpool_import_002_neg.ksh
  projects/zfsd/head/tests/sys/cddl/zfs/tests/cli_user/misc/zpool_offline_001_neg.ksh
  projects/zfsd/head/tests/sys/cddl/zfs/tests/cli_user/misc/zpool_online_001_neg.ksh
  projects/zfsd/head/tests/sys/cddl/zfs/tests/cli_user/misc/zpool_remove_001_neg.ksh
  projects/zfsd/head/tests/sys/cddl/zfs/tests/cli_user/misc/zpool_replace_001_neg.ksh
  projects/zfsd/head/tests/sys/cddl/zfs/tests/cli_user/misc/zpool_scrub_001_neg.ksh
  projects/zfsd/head/tests/sys/cddl/zfs/tests/cli_user/misc/zpool_set_001_neg.ksh
  projects/zfsd/head/tests/sys/cddl/zfs/tests/cli_user/misc/zpool_status_001_neg.ksh
  projects/zfsd/head/tests/sys/cddl/zfs/tests/cli_user/misc/zpool_upgrade_001_neg.ksh
  projects/zfsd/head/tests/sys/cddl/zfs/tests/cli_user/zfs_list/zfs_list_001_pos.ksh
  projects/zfsd/head/tests/sys/cddl/zfs/tests/cli_user/zfs_list/zfs_list_002_pos.ksh
  projects/zfsd/head/tests/sys/cddl/zfs/tests/cli_user/zfs_list/zfs_list_003_pos.ksh
  projects/zfsd/head/tests/sys/cddl/zfs/tests/cli_user/zfs_list/zfs_list_004_neg.ksh
  projects/zfsd/head/tests/sys/cddl/zfs/tests/cli_user/zfs_list/zfs_list_005_pos.ksh
  projects/zfsd/head/tests/sys/cddl/zfs/tests/cli_user/zfs_list/zfs_list_006_pos.ksh
  projects/zfsd/head/tests/sys/cddl/zfs/tests/cli_user/zfs_list/zfs_list_007_pos.ksh
  projects/zfsd/head/tests/sys/cddl/zfs/tests/cli_user/zfs_list/zfs_list_008_neg.ksh
  projects/zfsd/head/tests/sys/cddl/zfs/tests/cli_user/zfs_list/zfs_list_test.sh
  projects/zfsd/head/tests/sys/cddl/zfs/tests/cli_user/zpool_iostat/zpool_iostat_001_neg.ksh
  projects/zfsd/head/tests/sys/cddl/zfs/tests/cli_user/zpool_iostat/zpool_iostat_002_pos.ksh
  projects/zfsd/head/tests/sys/cddl/zfs/tests/cli_user/zpool_iostat/zpool_iostat_test.sh
  projects/zfsd/head/tests/sys/cddl/zfs/tests/cli_user/zpool_list/zpool_list_001_pos.ksh
  projects/zfsd/head/tests/sys/cddl/zfs/tests/cli_user/zpool_list/zpool_list_test.sh

Modified: projects/zfsd/head/tests/sys/cddl/zfs/tests/cli_user/Makefile
==============================================================================
--- projects/zfsd/head/tests/sys/cddl/zfs/tests/cli_user/Makefile	Fri Sep  1 19:15:53 2017	(r323114)
+++ projects/zfsd/head/tests/sys/cddl/zfs/tests/cli_user/Makefile	Fri Sep  1 19:58:42 2017	(r323115)
@@ -9,6 +9,7 @@ FILESDIR=${TESTSDIR}
 ${PACKAGE}FILES+=	setup.ksh
 ${PACKAGE}FILES+=	cleanup.ksh
 ${PACKAGE}FILES+=	cli.cfg
+${PACKAGE}FILES+=	cli_user.kshlib
 
 TESTS_SUBDIRS+=	zpool_iostat
 TESTS_SUBDIRS+=	zpool_list

Modified: projects/zfsd/head/tests/sys/cddl/zfs/tests/cli_user/cli.cfg
==============================================================================
--- projects/zfsd/head/tests/sys/cddl/zfs/tests/cli_user/cli.cfg	Fri Sep  1 19:15:53 2017	(r323114)
+++ projects/zfsd/head/tests/sys/cddl/zfs/tests/cli_user/cli.cfg	Fri Sep  1 19:58:42 2017	(r323115)
@@ -30,3 +30,4 @@ export TESTSNAP=testsnap${TESTCASE_ID}
 export TESTCLCT=testclct${TESTCASE_ID}
 export TESTFILE0=testfile0.${TESTCASE_ID}
 export TESTFILE1=testfile1.${TESTCASE_ID}
+export UNPRIVILEGED_USER=`atf_config_get unprivileged_user`

Added: projects/zfsd/head/tests/sys/cddl/zfs/tests/cli_user/cli_user.kshlib
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ projects/zfsd/head/tests/sys/cddl/zfs/tests/cli_user/cli_user.kshlib	Fri Sep  1 19:58:42 2017	(r323115)
@@ -0,0 +1,32 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+
+#
+# Copyright 2017 Spectra Logic Corp.  All rights reserved.
+# Use is subject to license terms.
+
+. $STF_SUITE/include/libtest.kshlib
+
+# Executes $@ without root privileges
+function run_unprivileged
+{
+	echo "$@" | su -m "$UNPRIVILEGED_USER"
+}

Modified: projects/zfsd/head/tests/sys/cddl/zfs/tests/cli_user/misc/misc.cfg
==============================================================================
--- projects/zfsd/head/tests/sys/cddl/zfs/tests/cli_user/misc/misc.cfg	Fri Sep  1 19:15:53 2017	(r323114)
+++ projects/zfsd/head/tests/sys/cddl/zfs/tests/cli_user/misc/misc.cfg	Fri Sep  1 19:58:42 2017	(r323115)
@@ -26,7 +26,7 @@
 # ident	"@(#)misc.cfg	1.1	07/10/09 SMI"
 #
 
-# . $STF_SUITE/tests/cli_user/cli.cfg
+. $STF_SUITE/tests/cli_user/cli.cfg
 
 
 # these are the set of setable ZFS properties
@@ -67,4 +67,3 @@ POOL_VALS="\
 
 POOL_ALTVALS="\
 	$TESTPOOL/$TESTFS/$TESTFS2	off"
-

Modified: projects/zfsd/head/tests/sys/cddl/zfs/tests/cli_user/misc/misc_test.sh
==============================================================================
--- projects/zfsd/head/tests/sys/cddl/zfs/tests/cli_user/misc/misc_test.sh	Fri Sep  1 19:15:53 2017	(r323114)
+++ projects/zfsd/head/tests/sys/cddl/zfs/tests/cli_user/misc/misc_test.sh	Fri Sep  1 19:58:42 2017	(r323115)
@@ -30,6 +30,7 @@ zdb_001_neg_head()
 	atf_set "descr" "zdb can't run as a user on datasets, but can run without arguments"
 	atf_set "require.progs"  zfs fgrep zpool zdb
 	atf_set "require.user" root
+	atf_set "require.config" unprivileged_user
 }
 zdb_001_neg_body()
 {
@@ -37,7 +38,7 @@ zdb_001_neg_body()
 	. $(atf_get_srcdir)/misc.cfg
 
 	ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed"
-	su -m `atf_config_get unprivileged_user` -c "ksh93 $(atf_get_srcdir)/zdb_001_neg.ksh" || atf_fail "Testcase failed"
+	ksh93 $(atf_get_srcdir)/zdb_001_neg.ksh || atf_fail "Testcase failed"
 }
 zdb_001_neg_cleanup()
 {
@@ -54,6 +55,7 @@ zfs_001_neg_head()
 	atf_set "descr" "zfs shows a usage message when run as a user"
 	atf_set "require.progs"  zfs fgrep zpool
 	atf_set "require.user" root
+	atf_set "require.config" unprivileged_user
 }
 zfs_001_neg_body()
 {
@@ -61,7 +63,7 @@ zfs_001_neg_body()
 	. $(atf_get_srcdir)/misc.cfg
 
 	ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed"
-	su -m `atf_config_get unprivileged_user` -c "ksh93 $(atf_get_srcdir)/zfs_001_neg.ksh" || atf_fail "Testcase failed"
+	ksh93 $(atf_get_srcdir)/zfs_001_neg.ksh || atf_fail "Testcase failed"
 }
 zfs_001_neg_cleanup()
 {
@@ -78,6 +80,7 @@ zfs_allow_001_neg_head()
 	atf_set "descr" "zfs allow returns an error when run as a user"
 	atf_set "require.progs"  zfs fgrep logname zpool
 	atf_set "require.user" root
+	atf_set "require.config" unprivileged_user
 }
 zfs_allow_001_neg_body()
 {
@@ -85,7 +88,7 @@ zfs_allow_001_neg_body()
 	. $(atf_get_srcdir)/misc.cfg
 
 	ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed"
-	su -m `atf_config_get unprivileged_user` -c "ksh93 $(atf_get_srcdir)/zfs_allow_001_neg.ksh" || atf_fail "Testcase failed"
+	ksh93 $(atf_get_srcdir)/zfs_allow_001_neg.ksh || atf_fail "Testcase failed"
 }
 zfs_allow_001_neg_cleanup()
 {
@@ -102,6 +105,7 @@ zfs_clone_001_neg_head()
 	atf_set "descr" "zfs clone returns an error when run as a user"
 	atf_set "require.progs"  zfs fgrep zpool
 	atf_set "require.user" root
+	atf_set "require.config" unprivileged_user
 }
 zfs_clone_001_neg_body()
 {
@@ -109,7 +113,7 @@ zfs_clone_001_neg_body()
 	. $(atf_get_srcdir)/misc.cfg
 
 	ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed"
-	su -m `atf_config_get unprivileged_user` -c "ksh93 $(atf_get_srcdir)/zfs_clone_001_neg.ksh" || atf_fail "Testcase failed"
+	ksh93 $(atf_get_srcdir)/zfs_clone_001_neg.ksh || atf_fail "Testcase failed"
 }
 zfs_clone_001_neg_cleanup()
 {
@@ -126,6 +130,7 @@ zfs_create_001_neg_head()
 	atf_set "descr" "Verify zfs create without parameters fails."
 	atf_set "require.progs"  zfs fgrep zpool
 	atf_set "require.user" root
+	atf_set "require.config" unprivileged_user
 }
 zfs_create_001_neg_body()
 {
@@ -133,7 +138,7 @@ zfs_create_001_neg_body()
 	. $(atf_get_srcdir)/misc.cfg
 
 	ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed"
-	su -m `atf_config_get unprivileged_user` -c "ksh93 $(atf_get_srcdir)/zfs_create_001_neg.ksh" || atf_fail "Testcase failed"
+	ksh93 $(atf_get_srcdir)/zfs_create_001_neg.ksh || atf_fail "Testcase failed"
 }
 zfs_create_001_neg_cleanup()
 {
@@ -150,6 +155,7 @@ zfs_destroy_001_neg_head()
 	atf_set "descr" "zfs destroy [-f|-r] [fs|snap]"
 	atf_set "require.progs"  zfs fgrep zpool
 	atf_set "require.user" root
+	atf_set "require.config" unprivileged_user
 }
 zfs_destroy_001_neg_body()
 {
@@ -157,7 +163,7 @@ zfs_destroy_001_neg_body()
 	. $(atf_get_srcdir)/misc.cfg
 
 	ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed"
-	su -m `atf_config_get unprivileged_user` -c "ksh93 $(atf_get_srcdir)/zfs_destroy_001_neg.ksh" || atf_fail "Testcase failed"
+	ksh93 $(atf_get_srcdir)/zfs_destroy_001_neg.ksh || atf_fail "Testcase failed"
 }
 zfs_destroy_001_neg_cleanup()
 {
@@ -174,6 +180,7 @@ zfs_get_001_neg_head()
 	atf_set "descr" "zfs get works when run as a user"
 	atf_set "require.progs"  zfs fgrep zpool
 	atf_set "require.user" root
+	atf_set "require.config" unprivileged_user
 }
 zfs_get_001_neg_body()
 {
@@ -181,7 +188,7 @@ zfs_get_001_neg_body()
 	. $(atf_get_srcdir)/misc.cfg
 
 	ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed"
-	su -m `atf_config_get unprivileged_user` -c "ksh93 $(atf_get_srcdir)/zfs_get_001_neg.ksh" || atf_fail "Testcase failed"
+	ksh93 $(atf_get_srcdir)/zfs_get_001_neg.ksh || atf_fail "Testcase failed"
 }
 zfs_get_001_neg_cleanup()
 {
@@ -198,6 +205,7 @@ zfs_inherit_001_neg_head()
 	atf_set "descr" "zfs inherit returns an error when run as a user"
 	atf_set "require.progs"  zfs fgrep zpool
 	atf_set "require.user" root
+	atf_set "require.config" unprivileged_user
 }
 zfs_inherit_001_neg_body()
 {
@@ -205,7 +213,7 @@ zfs_inherit_001_neg_body()
 	. $(atf_get_srcdir)/misc.cfg
 
 	ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed"
-	su -m `atf_config_get unprivileged_user` -c "ksh93 $(atf_get_srcdir)/zfs_inherit_001_neg.ksh" || atf_fail "Testcase failed"
+	ksh93 $(atf_get_srcdir)/zfs_inherit_001_neg.ksh || atf_fail "Testcase failed"
 }
 zfs_inherit_001_neg_cleanup()
 {
@@ -222,6 +230,7 @@ zfs_mount_001_neg_head()
 	atf_set "descr" "zfs mount returns an error when run as a user"
 	atf_set "require.progs"  zfs fgrep zpool
 	atf_set "require.user" root
+	atf_set "require.config" unprivileged_user
 }
 zfs_mount_001_neg_body()
 {
@@ -229,7 +238,7 @@ zfs_mount_001_neg_body()
 	. $(atf_get_srcdir)/misc.cfg
 
 	ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed"
-	su -m `atf_config_get unprivileged_user` -c "ksh93 $(atf_get_srcdir)/zfs_mount_001_neg.ksh" || atf_fail "Testcase failed"
+	ksh93 $(atf_get_srcdir)/zfs_mount_001_neg.ksh || atf_fail "Testcase failed"
 }
 zfs_mount_001_neg_cleanup()
 {
@@ -246,6 +255,7 @@ zfs_promote_001_neg_head()
 	atf_set "descr" "zfs promote returns an error when run as a user"
 	atf_set "require.progs"  zfs fgrep zpool
 	atf_set "require.user" root
+	atf_set "require.config" unprivileged_user
 }
 zfs_promote_001_neg_body()
 {
@@ -253,7 +263,7 @@ zfs_promote_001_neg_body()
 	. $(atf_get_srcdir)/misc.cfg
 
 	ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed"
-	su -m `atf_config_get unprivileged_user` -c "ksh93 $(atf_get_srcdir)/zfs_promote_001_neg.ksh" || atf_fail "Testcase failed"
+	ksh93 $(atf_get_srcdir)/zfs_promote_001_neg.ksh || atf_fail "Testcase failed"
 }
 zfs_promote_001_neg_cleanup()
 {
@@ -270,6 +280,7 @@ zfs_receive_001_neg_head()
 	atf_set "descr" "zfs receive returns an error when run as a user"
 	atf_set "require.progs"  zfs fgrep zpool
 	atf_set "require.user" root
+	atf_set "require.config" unprivileged_user
 }
 zfs_receive_001_neg_body()
 {
@@ -277,7 +288,7 @@ zfs_receive_001_neg_body()
 	. $(atf_get_srcdir)/misc.cfg
 
 	ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed"
-	su -m `atf_config_get unprivileged_user` -c "ksh93 $(atf_get_srcdir)/zfs_receive_001_neg.ksh" || atf_fail "Testcase failed"
+	ksh93 $(atf_get_srcdir)/zfs_receive_001_neg.ksh || atf_fail "Testcase failed"
 }
 zfs_receive_001_neg_cleanup()
 {
@@ -294,6 +305,7 @@ zfs_rename_001_neg_head()
 	atf_set "descr" "zfs rename returns an error when run as a user"
 	atf_set "require.progs"  zfs fgrep zpool
 	atf_set "require.user" root
+	atf_set "require.config" unprivileged_user
 }
 zfs_rename_001_neg_body()
 {
@@ -301,7 +313,7 @@ zfs_rename_001_neg_body()
 	. $(atf_get_srcdir)/misc.cfg
 
 	ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed"
-	su -m `atf_config_get unprivileged_user` -c "ksh93 $(atf_get_srcdir)/zfs_rename_001_neg.ksh" || atf_fail "Testcase failed"
+	ksh93 $(atf_get_srcdir)/zfs_rename_001_neg.ksh || atf_fail "Testcase failed"
 }
 zfs_rename_001_neg_cleanup()
 {
@@ -318,6 +330,7 @@ zfs_rollback_001_neg_head()
 	atf_set "descr" "zfs rollback returns an error when run as a user"
 	atf_set "require.progs"  zfs fgrep zpool
 	atf_set "require.user" root
+	atf_set "require.config" unprivileged_user
 }
 zfs_rollback_001_neg_body()
 {
@@ -325,7 +338,7 @@ zfs_rollback_001_neg_body()
 	. $(atf_get_srcdir)/misc.cfg
 
 	ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed"
-	su -m `atf_config_get unprivileged_user` -c "ksh93 $(atf_get_srcdir)/zfs_rollback_001_neg.ksh" || atf_fail "Testcase failed"
+	ksh93 $(atf_get_srcdir)/zfs_rollback_001_neg.ksh || atf_fail "Testcase failed"
 }
 zfs_rollback_001_neg_cleanup()
 {
@@ -342,6 +355,7 @@ zfs_send_001_neg_head()
 	atf_set "descr" "zfs send returns an error when run as a user"
 	atf_set "require.progs"  zfs fgrep zpool
 	atf_set "require.user" root
+	atf_set "require.config" unprivileged_user
 }
 zfs_send_001_neg_body()
 {
@@ -349,7 +363,7 @@ zfs_send_001_neg_body()
 	. $(atf_get_srcdir)/misc.cfg
 
 	ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed"
-	su -m `atf_config_get unprivileged_user` -c "ksh93 $(atf_get_srcdir)/zfs_send_001_neg.ksh" || atf_fail "Testcase failed"
+	ksh93 $(atf_get_srcdir)/zfs_send_001_neg.ksh || atf_fail "Testcase failed"
 }
 zfs_send_001_neg_cleanup()
 {
@@ -366,6 +380,7 @@ zfs_set_001_neg_head()
 	atf_set "descr" "zfs set returns an error when run as a user"
 	atf_set "require.progs"  zfs fgrep zpool
 	atf_set "require.user" root
+	atf_set "require.config" unprivileged_user
 }
 zfs_set_001_neg_body()
 {
@@ -373,7 +388,7 @@ zfs_set_001_neg_body()
 	. $(atf_get_srcdir)/misc.cfg
 
 	ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed"
-	su -m `atf_config_get unprivileged_user` -c "ksh93 $(atf_get_srcdir)/zfs_set_001_neg.ksh" || atf_fail "Testcase failed"
+	ksh93 $(atf_get_srcdir)/zfs_set_001_neg.ksh || atf_fail "Testcase failed"
 }
 zfs_set_001_neg_cleanup()
 {
@@ -390,6 +405,7 @@ zfs_share_001_neg_head()
 	atf_set "descr" "zfs share returns an error when run as a user"
 	atf_set "require.progs"  zfs fgrep zpool
 	atf_set "require.user" root
+	atf_set "require.config" unprivileged_user
 }
 zfs_share_001_neg_body()
 {
@@ -397,7 +413,7 @@ zfs_share_001_neg_body()
 	. $(atf_get_srcdir)/misc.cfg
 
 	ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed"
-	su -m `atf_config_get unprivileged_user` -c "ksh93 $(atf_get_srcdir)/zfs_share_001_neg.ksh" || atf_fail "Testcase failed"
+	ksh93 $(atf_get_srcdir)/zfs_share_001_neg.ksh || atf_fail "Testcase failed"
 }
 zfs_share_001_neg_cleanup()
 {
@@ -414,6 +430,7 @@ zfs_snapshot_001_neg_head()
 	atf_set "descr" "zfs snapshot returns an error when run as a user"
 	atf_set "require.progs"  zfs fgrep zpool
 	atf_set "require.user" root
+	atf_set "require.config" unprivileged_user
 }
 zfs_snapshot_001_neg_body()
 {
@@ -421,7 +438,7 @@ zfs_snapshot_001_neg_body()
 	. $(atf_get_srcdir)/misc.cfg
 
 	ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed"
-	su -m `atf_config_get unprivileged_user` -c "ksh93 $(atf_get_srcdir)/zfs_snapshot_001_neg.ksh" || atf_fail "Testcase failed"
+	ksh93 $(atf_get_srcdir)/zfs_snapshot_001_neg.ksh || atf_fail "Testcase failed"
 }
 zfs_snapshot_001_neg_cleanup()
 {
@@ -438,6 +455,7 @@ zfs_unallow_001_neg_head()
 	atf_set "descr" "zfs unallow returns an error when run as a user"
 	atf_set "require.progs"  zfs fgrep zpool
 	atf_set "require.user" root
+	atf_set "require.config" unprivileged_user
 }
 zfs_unallow_001_neg_body()
 {
@@ -445,7 +463,7 @@ zfs_unallow_001_neg_body()
 	. $(atf_get_srcdir)/misc.cfg
 
 	ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed"
-	su -m `atf_config_get unprivileged_user` -c "ksh93 $(atf_get_srcdir)/zfs_unallow_001_neg.ksh" || atf_fail "Testcase failed"
+	ksh93 $(atf_get_srcdir)/zfs_unallow_001_neg.ksh || atf_fail "Testcase failed"
 }
 zfs_unallow_001_neg_cleanup()
 {
@@ -462,6 +480,7 @@ zfs_unmount_001_neg_head()
 	atf_set "descr" "zfs u[n]mount [-f] [mountpoint|fs|snap]"
 	atf_set "require.progs"  zfs fgrep zpool
 	atf_set "require.user" root
+	atf_set "require.config" unprivileged_user
 }
 zfs_unmount_001_neg_body()
 {
@@ -469,7 +488,7 @@ zfs_unmount_001_neg_body()
 	. $(atf_get_srcdir)/misc.cfg
 
 	ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed"
-	su -m `atf_config_get unprivileged_user` -c "ksh93 $(atf_get_srcdir)/zfs_unmount_001_neg.ksh" || atf_fail "Testcase failed"
+	ksh93 $(atf_get_srcdir)/zfs_unmount_001_neg.ksh || atf_fail "Testcase failed"
 }
 zfs_unmount_001_neg_cleanup()
 {
@@ -486,6 +505,7 @@ zfs_unshare_001_neg_head()
 	atf_set "descr" "zfs unshare returns an error when run as a user"
 	atf_set "require.progs"  zfs fgrep share zpool
 	atf_set "require.user" root
+	atf_set "require.config" unprivileged_user
 }
 zfs_unshare_001_neg_body()
 {
@@ -493,7 +513,7 @@ zfs_unshare_001_neg_body()
 	. $(atf_get_srcdir)/misc.cfg
 
 	ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed"
-	su -m `atf_config_get unprivileged_user` -c "ksh93 $(atf_get_srcdir)/zfs_unshare_001_neg.ksh" || atf_fail "Testcase failed"
+	ksh93 $(atf_get_srcdir)/zfs_unshare_001_neg.ksh || atf_fail "Testcase failed"
 }
 zfs_unshare_001_neg_cleanup()
 {
@@ -510,6 +530,7 @@ zfs_upgrade_001_neg_head()
 	atf_set "descr" "zfs upgrade returns an error when run as a user"
 	atf_set "require.progs"  zfs fgrep zpool
 	atf_set "require.user" root
+	atf_set "require.config" unprivileged_user
 }
 zfs_upgrade_001_neg_body()
 {
@@ -517,7 +538,7 @@ zfs_upgrade_001_neg_body()
 	. $(atf_get_srcdir)/misc.cfg
 
 	ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed"
-	su -m `atf_config_get unprivileged_user` -c "ksh93 $(atf_get_srcdir)/zfs_upgrade_001_neg.ksh" || atf_fail "Testcase failed"
+	ksh93 $(atf_get_srcdir)/zfs_upgrade_001_neg.ksh || atf_fail "Testcase failed"
 }
 zfs_upgrade_001_neg_cleanup()
 {
@@ -534,6 +555,7 @@ zpool_001_neg_head()
 	atf_set "descr" "zpool shows a usage message when run as a user"
 	atf_set "require.progs"  zfs zpool fgrep
 	atf_set "require.user" root
+	atf_set "require.config" unprivileged_user
 }
 zpool_001_neg_body()
 {
@@ -541,7 +563,7 @@ zpool_001_neg_body()
 	. $(atf_get_srcdir)/misc.cfg
 
 	ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed"
-	su -m `atf_config_get unprivileged_user` -c "ksh93 $(atf_get_srcdir)/zpool_001_neg.ksh" || atf_fail "Testcase failed"
+	ksh93 $(atf_get_srcdir)/zpool_001_neg.ksh || atf_fail "Testcase failed"
 }
 zpool_001_neg_cleanup()
 {
@@ -558,6 +580,7 @@ zpool_add_001_neg_head()
 	atf_set "descr" "zpool add [-fn] pool_name vdev"
 	atf_set "require.progs"  zfs zpool fgrep
 	atf_set "require.user" root
+	atf_set "require.config" unprivileged_user
 }
 zpool_add_001_neg_body()
 {
@@ -565,7 +588,7 @@ zpool_add_001_neg_body()
 	. $(atf_get_srcdir)/misc.cfg
 
 	ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed"
-	su -m `atf_config_get unprivileged_user` -c "ksh93 $(atf_get_srcdir)/zpool_add_001_neg.ksh" || atf_fail "Testcase failed"
+	ksh93 $(atf_get_srcdir)/zpool_add_001_neg.ksh || atf_fail "Testcase failed"
 }
 zpool_add_001_neg_cleanup()
 {
@@ -582,6 +605,7 @@ zpool_add_001_neg_head()
 	atf_set "descr" "zpool add [-f] -n succeeds for unpriveleged users"
 	atf_set "require.progs"  zfs zpool
 	atf_set "require.user" root
+	atf_set "require.config" unprivileged_user
 }
 zpool_add_002_pos_body()
 {
@@ -589,7 +613,7 @@ zpool_add_002_pos_body()
 	. $(atf_get_srcdir)/misc.cfg
 
 	ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed"
-	su -m `atf_config_get unprivileged_user` -c "ksh93 $(atf_get_srcdir)/zpool_add_002_pos.ksh" || atf_fail "Testcase failed"
+	ksh93 $(atf_get_srcdir)/zpool_add_002_pos.ksh || atf_fail "Testcase failed"
 }
 zpool_add_002_pos_cleanup()
 {
@@ -606,6 +630,7 @@ zpool_attach_001_neg_head()
 	atf_set "descr" "zpool attach returns an error when run as a user"
 	atf_set "require.progs"  zfs zpool fgrep
 	atf_set "require.user" root
+	atf_set "require.config" unprivileged_user
 }
 zpool_attach_001_neg_body()
 {
@@ -613,7 +638,7 @@ zpool_attach_001_neg_body()
 	. $(atf_get_srcdir)/misc.cfg
 
 	ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed"
-	su -m `atf_config_get unprivileged_user` -c "ksh93 $(atf_get_srcdir)/zpool_attach_001_neg.ksh" || atf_fail "Testcase failed"
+	ksh93 $(atf_get_srcdir)/zpool_attach_001_neg.ksh || atf_fail "Testcase failed"
 }
 zpool_attach_001_neg_cleanup()
 {
@@ -630,6 +655,7 @@ zpool_clear_001_neg_head()
 	atf_set "descr" "zpool clear returns an error when run as a user"
 	atf_set "require.progs"  zfs zpool fgrep
 	atf_set "require.user" root
+	atf_set "require.config" unprivileged_user
 }
 zpool_clear_001_neg_body()
 {
@@ -637,7 +663,7 @@ zpool_clear_001_neg_body()
 	. $(atf_get_srcdir)/misc.cfg
 
 	ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed"
-	su -m `atf_config_get unprivileged_user` -c "ksh93 $(atf_get_srcdir)/zpool_clear_001_neg.ksh" || atf_fail "Testcase failed"
+	ksh93 $(atf_get_srcdir)/zpool_clear_001_neg.ksh || atf_fail "Testcase failed"
 }
 zpool_clear_001_neg_cleanup()
 {
@@ -648,57 +674,44 @@ zpool_clear_001_neg_cleanup()
 }
 
 
-atf_test_case zpool_create_001_neg cleanup
+atf_test_case zpool_create_001_neg
 zpool_create_001_neg_head()
 {
 	atf_set "descr" "zpool create [-f] fails for unpriveleged users"
 	atf_set "require.progs"  zfs zpool
-	atf_set "require.user" root
+	atf_set "require.user" unprivileged
 }
 zpool_create_001_neg_body()
 {
 	. $(atf_get_srcdir)/../../../include/default.cfg
 	. $(atf_get_srcdir)/misc.cfg
 
-	# No setup is required for this test.
-	su -m `atf_config_get unprivileged_user` -c "ksh93 $(atf_get_srcdir)/zpool_create_001_neg.ksh" || atf_fail "Testcase failed"
+	ksh93 $(atf_get_srcdir)/zpool_create_001_neg.ksh || atf_fail "Testcase failed"
 }
-zpool_create_001_neg_cleanup()
-{
-	. $(atf_get_srcdir)/../../../include/default.cfg
 
-	ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed"
-}
 
-
-atf_test_case zpool_create_002_pos cleanup
+atf_test_case zpool_create_002_pos
 zpool_create_002_pos_head()
 {
 	atf_set "descr" "zpool create [-f] -n succeeds for unpriveleged users"
 	atf_set "require.progs"  zfs zpool
-	atf_set "require.user" root
+	atf_set "require.user" unprivileged
 }
 zpool_create_002_pos_body()
 {
 	. $(atf_get_srcdir)/../../../include/default.cfg
 
-	# No setup is required for this test.
-	su -m `atf_config_get unprivileged_user` -c "ksh93 $(atf_get_srcdir)/zpool_create_002_pos.ksh" || atf_fail "Testcase failed"
+	ksh93 $(atf_get_srcdir)/zpool_create_002_pos.ksh || atf_fail "Testcase failed"
 }
-zpool_create_002_pos_cleanup()
-{
-	. $(atf_get_srcdir)/../../../include/default.cfg
 
-	ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed"
-}
 
-
 atf_test_case zpool_destroy_001_neg cleanup
 zpool_destroy_001_neg_head()
 {
 	atf_set "descr" "zpool destroy [-f] [pool_name ...]"
 	atf_set "require.progs"  zfs zpool fgrep
 	atf_set "require.user" root
+	atf_set "require.config" unprivileged_user
 }
 zpool_destroy_001_neg_body()
 {
@@ -706,7 +719,7 @@ zpool_destroy_001_neg_body()
 	. $(atf_get_srcdir)/misc.cfg
 
 	ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed"
-	su -m `atf_config_get unprivileged_user` -c "ksh93 $(atf_get_srcdir)/zpool_destroy_001_neg.ksh" || atf_fail "Testcase failed"
+	ksh93 $(atf_get_srcdir)/zpool_destroy_001_neg.ksh || atf_fail "Testcase failed"
 }
 zpool_destroy_001_neg_cleanup()
 {
@@ -723,6 +736,7 @@ zpool_detach_001_neg_head()
 	atf_set "descr" "zpool detach returns an error when run as a user"
 	atf_set "require.progs"  zfs zpool fgrep
 	atf_set "require.user" root
+	atf_set "require.config" unprivileged_user
 }
 zpool_detach_001_neg_body()
 {
@@ -730,7 +744,7 @@ zpool_detach_001_neg_body()
 	. $(atf_get_srcdir)/misc.cfg
 
 	ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed"
-	su -m `atf_config_get unprivileged_user` -c "ksh93 $(atf_get_srcdir)/zpool_detach_001_neg.ksh" || atf_fail "Testcase failed"
+	ksh93 $(atf_get_srcdir)/zpool_detach_001_neg.ksh || atf_fail "Testcase failed"
 }
 zpool_detach_001_neg_cleanup()
 {
@@ -747,6 +761,7 @@ zpool_export_001_neg_head()
 	atf_set "descr" "zpool export returns an error when run as a user"
 	atf_set "require.progs"  zfs zpool fgrep
 	atf_set "require.user" root
+	atf_set "require.config" unprivileged_user
 }
 zpool_export_001_neg_body()
 {
@@ -754,7 +769,7 @@ zpool_export_001_neg_body()
 	. $(atf_get_srcdir)/misc.cfg
 
 	ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed"
-	su -m `atf_config_get unprivileged_user` -c "ksh93 $(atf_get_srcdir)/zpool_export_001_neg.ksh" || atf_fail "Testcase failed"
+	ksh93 $(atf_get_srcdir)/zpool_export_001_neg.ksh || atf_fail "Testcase failed"
 }
 zpool_export_001_neg_cleanup()
 {
@@ -771,6 +786,7 @@ zpool_get_001_neg_head()
 	atf_set "descr" "zpool get works when run as a user"
 	atf_set "require.progs"  zfs zpool fgrep
 	atf_set "require.user" root
+	atf_set "require.config" unprivileged_user
 }
 zpool_get_001_neg_body()
 {
@@ -778,7 +794,7 @@ zpool_get_001_neg_body()
 	. $(atf_get_srcdir)/misc.cfg
 
 	ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed"
-	su -m `atf_config_get unprivileged_user` -c "ksh93 $(atf_get_srcdir)/zpool_get_001_neg.ksh" || atf_fail "Testcase failed"
+	ksh93 $(atf_get_srcdir)/zpool_get_001_neg.ksh || atf_fail "Testcase failed"
 }
 zpool_get_001_neg_cleanup()
 {
@@ -795,6 +811,7 @@ zpool_history_001_neg_head()
 	atf_set "descr" "zpool history returns an error when run as a user"
 	atf_set "require.progs"  zfs zpool fgrep
 	atf_set "require.user" root
+	atf_set "require.config" unprivileged_user
 }
 zpool_history_001_neg_body()
 {
@@ -802,7 +819,7 @@ zpool_history_001_neg_body()
 	. $(atf_get_srcdir)/misc.cfg
 
 	ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed"
-	su -m `atf_config_get unprivileged_user` -c "ksh93 $(atf_get_srcdir)/zpool_history_001_neg.ksh" || atf_fail "Testcase failed"
+	ksh93 $(atf_get_srcdir)/zpool_history_001_neg.ksh || atf_fail "Testcase failed"
 }
 zpool_history_001_neg_cleanup()
 {
@@ -819,6 +836,7 @@ zpool_import_001_neg_head()
 	atf_set "descr" "zpool import returns an error when run as a user"
 	atf_set "require.progs"  zfs zpool fgrep
 	atf_set "require.user" root
+	atf_set "require.config" unprivileged_user
 }
 zpool_import_001_neg_body()
 {
@@ -826,7 +844,7 @@ zpool_import_001_neg_body()
 	. $(atf_get_srcdir)/misc.cfg
 
 	ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed"
-	su -m `atf_config_get unprivileged_user` -c "ksh93 $(atf_get_srcdir)/zpool_import_001_neg.ksh" || atf_fail "Testcase failed"
+	ksh93 $(atf_get_srcdir)/zpool_import_001_neg.ksh || atf_fail "Testcase failed"
 }
 zpool_import_001_neg_cleanup()
 {
@@ -843,6 +861,7 @@ zpool_import_002_neg_head()
 	atf_set "descr" "Executing 'zpool import' by regular user fails"
 	atf_set "require.progs"  zfs zpool fgrep
 	atf_set "require.user" root
+	atf_set "require.config" unprivileged_user
 }
 zpool_import_002_neg_body()
 {
@@ -850,7 +869,7 @@ zpool_import_002_neg_body()
 	. $(atf_get_srcdir)/misc.cfg
 
 	ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed"
-	su -m `atf_config_get unprivileged_user` -c "ksh93 $(atf_get_srcdir)/zpool_import_002_neg.ksh" || atf_fail "Testcase failed"
+	ksh93 $(atf_get_srcdir)/zpool_import_002_neg.ksh || atf_fail "Testcase failed"
 }
 zpool_import_002_neg_cleanup()
 {
@@ -867,6 +886,7 @@ zpool_offline_001_neg_head()
 	atf_set "descr" "zpool offline returns an error when run as a user"
 	atf_set "require.progs"  zfs zpool fgrep
 	atf_set "require.user" root
+	atf_set "require.config" unprivileged_user
 }
 zpool_offline_001_neg_body()
 {
@@ -874,7 +894,7 @@ zpool_offline_001_neg_body()
 	. $(atf_get_srcdir)/misc.cfg
 
 	ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed"
-	su -m `atf_config_get unprivileged_user` -c "ksh93 $(atf_get_srcdir)/zpool_offline_001_neg.ksh" || atf_fail "Testcase failed"
+	ksh93 $(atf_get_srcdir)/zpool_offline_001_neg.ksh || atf_fail "Testcase failed"
 }
 zpool_offline_001_neg_cleanup()
 {
@@ -891,6 +911,7 @@ zpool_online_001_neg_head()
 	atf_set "descr" "zpool online returns an error when run as a user"
 	atf_set "require.progs"  zfs zpool fgrep
 	atf_set "require.user" root
+	atf_set "require.config" unprivileged_user
 }
 zpool_online_001_neg_body()
 {
@@ -898,7 +919,7 @@ zpool_online_001_neg_body()
 	. $(atf_get_srcdir)/misc.cfg
 
 	ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed"
-	su -m `atf_config_get unprivileged_user` -c "ksh93 $(atf_get_srcdir)/zpool_online_001_neg.ksh" || atf_fail "Testcase failed"
+	ksh93 $(atf_get_srcdir)/zpool_online_001_neg.ksh || atf_fail "Testcase failed"
 }
 zpool_online_001_neg_cleanup()
 {
@@ -915,6 +936,7 @@ zpool_remove_001_neg_head()
 	atf_set "descr" "zpool remove returns an error when run as a user"
 	atf_set "require.progs"  zfs zpool fgrep
 	atf_set "require.user" root
+	atf_set "require.config" unprivileged_user
 }
 zpool_remove_001_neg_body()
 {
@@ -922,7 +944,7 @@ zpool_remove_001_neg_body()
 	. $(atf_get_srcdir)/misc.cfg
 
 	ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed"
-	su -m `atf_config_get unprivileged_user` -c "ksh93 $(atf_get_srcdir)/zpool_remove_001_neg.ksh" || atf_fail "Testcase failed"
+	ksh93 $(atf_get_srcdir)/zpool_remove_001_neg.ksh || atf_fail "Testcase failed"
 }
 zpool_remove_001_neg_cleanup()
 {
@@ -939,6 +961,7 @@ zpool_replace_001_neg_head()
 	atf_set "descr" "zpool replace returns an error when run as a user"
 	atf_set "require.progs"  zfs zpool fgrep
 	atf_set "require.user" root
+	atf_set "require.config" unprivileged_user
 }
 zpool_replace_001_neg_body()
 {
@@ -946,7 +969,7 @@ zpool_replace_001_neg_body()
 	. $(atf_get_srcdir)/misc.cfg
 
 	ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed"
-	su -m `atf_config_get unprivileged_user` -c "ksh93 $(atf_get_srcdir)/zpool_replace_001_neg.ksh" || atf_fail "Testcase failed"
+	ksh93 $(atf_get_srcdir)/zpool_replace_001_neg.ksh || atf_fail "Testcase failed"
 }
 zpool_replace_001_neg_cleanup()
 {
@@ -963,6 +986,7 @@ zpool_scrub_001_neg_head()
 	atf_set "descr" "zpool scrub returns an error when run as a user"
 	atf_set "require.progs"  zfs zpool fgrep
 	atf_set "require.user" root
+	atf_set "require.config" unprivileged_user
 }
 zpool_scrub_001_neg_body()
 {
@@ -970,7 +994,7 @@ zpool_scrub_001_neg_body()
 	. $(atf_get_srcdir)/misc.cfg
 
 	ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed"
-	su -m `atf_config_get unprivileged_user` -c "ksh93 $(atf_get_srcdir)/zpool_scrub_001_neg.ksh" || atf_fail "Testcase failed"
+	ksh93 $(atf_get_srcdir)/zpool_scrub_001_neg.ksh || atf_fail "Testcase failed"
 }
 zpool_scrub_001_neg_cleanup()
 {
@@ -987,6 +1011,7 @@ zpool_set_001_neg_head()
 	atf_set "descr" "zpool set returns an error when run as a user"
 	atf_set "require.progs"  zfs zpool fgrep
 	atf_set "require.user" root
+	atf_set "require.config" unprivileged_user
 }
 zpool_set_001_neg_body()
 {
@@ -994,7 +1019,7 @@ zpool_set_001_neg_body()
 	. $(atf_get_srcdir)/misc.cfg
 
 	ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed"
-	su -m `atf_config_get unprivileged_user` -c "ksh93 $(atf_get_srcdir)/zpool_set_001_neg.ksh" || atf_fail "Testcase failed"
+	ksh93 $(atf_get_srcdir)/zpool_set_001_neg.ksh || atf_fail "Testcase failed"
 }
 zpool_set_001_neg_cleanup()
 {
@@ -1011,6 +1036,7 @@ zpool_status_001_neg_head()
 	atf_set "descr" "zpool status works when run as a user"
 	atf_set "require.progs"  zfs zpool fgrep
 	atf_set "require.user" root
+	atf_set "require.config" unprivileged_user
 }
 zpool_status_001_neg_body()
 {
@@ -1018,7 +1044,7 @@ zpool_status_001_neg_body()
 	. $(atf_get_srcdir)/misc.cfg
 
 	ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed"
-	su -m `atf_config_get unprivileged_user` -c "ksh93 $(atf_get_srcdir)/zpool_status_001_neg.ksh" || atf_fail "Testcase failed"
+	ksh93 $(atf_get_srcdir)/zpool_status_001_neg.ksh || atf_fail "Testcase failed"
 }
 zpool_status_001_neg_cleanup()
 {
@@ -1035,6 +1061,7 @@ zpool_upgrade_001_neg_head()
 	atf_set "descr" "zpool upgrade returns an error when run as a user"
 	atf_set "require.progs"  zfs zpool fgrep
 	atf_set "require.user" root
+	atf_set "require.config" unprivileged_user
 }
 zpool_upgrade_001_neg_body()
 {
@@ -1042,7 +1069,7 @@ zpool_upgrade_001_neg_body()
 	. $(atf_get_srcdir)/misc.cfg
 
 	ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed"
-	su -m `atf_config_get unprivileged_user` -c "ksh93 $(atf_get_srcdir)/zpool_upgrade_001_neg.ksh" || atf_fail "Testcase failed"
+	ksh93 $(atf_get_srcdir)/zpool_upgrade_001_neg.ksh || atf_fail "Testcase failed"
 }
 zpool_upgrade_001_neg_cleanup()
 {

Modified: projects/zfsd/head/tests/sys/cddl/zfs/tests/cli_user/misc/zdb_001_neg.ksh
==============================================================================
--- projects/zfsd/head/tests/sys/cddl/zfs/tests/cli_user/misc/zdb_001_neg.ksh	Fri Sep  1 19:15:53 2017	(r323114)
+++ projects/zfsd/head/tests/sys/cddl/zfs/tests/cli_user/misc/zdb_001_neg.ksh	Fri Sep  1 19:58:42 2017	(r323115)
@@ -28,6 +28,7 @@
 #
 
 . $STF_SUITE/include/libtest.kshlib
+. $STF_SUITE/tests/cli_user/cli_user.kshlib
 
 ################################################################################
 #
@@ -55,7 +56,7 @@
 
 function check_zdb
 {
-	$@ > $TMPDIR/zdb.${TESTCASE_ID}
+	run_unprivileged $@ > $TMPDIR/zdb.${TESTCASE_ID}
 	$GREP "Dataset mos" $TMPDIR/zdb.${TESTCASE_ID}
 	if [ $? -eq 0 ]
 	then
@@ -79,10 +80,9 @@ verify_runnable "global"
 log_assert "zdb can't run as a user on datasets, but can run without arguments"
 log_onexit cleanup
 
-log_must eval "$ZDB > $TMPDIR/zdb_001_neg.${TESTCASE_ID}.txt"
+run_unprivileged $ZDB > $TMPDIR/zdb_001_neg.${TESTCASE_ID}.txt || log_fail "$ZDB failed"
 # verify the output looks okay
 log_must $GREP pool_guid $TMPDIR/zdb_001_neg.${TESTCASE_ID}.txt
-log_must $RM $TMPDIR/zdb_001_neg.${TESTCASE_ID}.txt
 
 # we shouldn't able to run it on any dataset
 check_zdb $ZDB $TESTPOOL

Modified: projects/zfsd/head/tests/sys/cddl/zfs/tests/cli_user/misc/zfs_001_neg.ksh
==============================================================================
--- projects/zfsd/head/tests/sys/cddl/zfs/tests/cli_user/misc/zfs_001_neg.ksh	Fri Sep  1 19:15:53 2017	(r323114)
+++ projects/zfsd/head/tests/sys/cddl/zfs/tests/cli_user/misc/zfs_001_neg.ksh	Fri Sep  1 19:58:42 2017	(r323115)
@@ -28,6 +28,7 @@
 #
 
 . $STF_SUITE/include/libtest.kshlib
+. $STF_SUITE/tests/cli_user/cli_user.kshlib
 
 ################################################################################
 #
@@ -64,7 +65,7 @@ function cleanup
 log_onexit cleanup
 log_assert "zfs shows a usage message when run as a user"
 
-eval "$ZFS > $TMPDIR/zfs_001_neg.${TESTCASE_ID}.txt 2>&1"
+run_unprivileged "$ZFS" > $TMPDIR/zfs_001_neg.${TESTCASE_ID}.txt 2>&1
 log_must $GREP "usage: zfs command args" $TMPDIR/zfs_001_neg.${TESTCASE_ID}.txt
 
 log_pass "zfs shows a usage message when run as a user"

Modified: projects/zfsd/head/tests/sys/cddl/zfs/tests/cli_user/misc/zfs_allow_001_neg.ksh
==============================================================================
--- projects/zfsd/head/tests/sys/cddl/zfs/tests/cli_user/misc/zfs_allow_001_neg.ksh	Fri Sep  1 19:15:53 2017	(r323114)
+++ projects/zfsd/head/tests/sys/cddl/zfs/tests/cli_user/misc/zfs_allow_001_neg.ksh	Fri Sep  1 19:58:42 2017	(r323115)
@@ -28,6 +28,7 @@
 #
 
 . $STF_SUITE/include/libtest.kshlib
+. $STF_SUITE/tests/cli_user/cli_user.kshlib
 
 ################################################################################
 #
@@ -63,13 +64,13 @@ fi
 
 log_assert "zfs allow returns an error when run as a user"
 
-log_must $ZFS allow $TESTPOOL/$TESTFS
-log_mustnot $ZFS allow `$LOGNAME` create $TESTPOOL/$TESTFS
+log_must run_unprivileged "$ZFS allow $TESTPOOL/$TESTFS"
+log_mustnot run_unprivileged "$ZFS allow `$LOGNAME` create $TESTPOOL/$TESTFS"
 
 # now verify that the above command actually did nothing by
 # checking for any allow output. ( if no allows are granted,
 # nothing should be output )
-OUTPUT=$($ZFS allow $TESTPOOL/$TESTFS | $GREP "Local+Descendent" )
+OUTPUT=$(run_unprivileged "$ZFS allow $TESTPOOL/$TESTFS" | $GREP "Local+Descendent" )
 if [ -n "$OUTPUT" ]
 then
 	log_fail "zfs allow permissions were granted on $TESTPOOL/$TESTFS"

Modified: projects/zfsd/head/tests/sys/cddl/zfs/tests/cli_user/misc/zfs_clone_001_neg.ksh
==============================================================================
--- projects/zfsd/head/tests/sys/cddl/zfs/tests/cli_user/misc/zfs_clone_001_neg.ksh	Fri Sep  1 19:15:53 2017	(r323114)
+++ projects/zfsd/head/tests/sys/cddl/zfs/tests/cli_user/misc/zfs_clone_001_neg.ksh	Fri Sep  1 19:58:42 2017	(r323115)
@@ -28,6 +28,7 @@
 #
 
 . $STF_SUITE/include/libtest.kshlib
+. $STF_SUITE/tests/cli_user/cli_user.kshlib
 
 ################################################################################
 #
@@ -55,7 +56,7 @@
 ################################################################################
 
 log_assert "zfs clone returns an error when run as a user"
-log_mustnot $ZFS clone $TESTPOOL/$TESTFS at snap $TESTPOOL/$TESTFS.myclone
+log_mustnot run_unprivileged "$ZFS clone $TESTPOOL/$TESTFS at snap $TESTPOOL/$TESTFS.myclone"
 
 # check to see that the above command really did nothing
 if datasetexists $TESTPOOL/$TESTFS.myclone

Modified: projects/zfsd/head/tests/sys/cddl/zfs/tests/cli_user/misc/zfs_create_001_neg.ksh
==============================================================================
--- projects/zfsd/head/tests/sys/cddl/zfs/tests/cli_user/misc/zfs_create_001_neg.ksh	Fri Sep  1 19:15:53 2017	(r323114)
+++ projects/zfsd/head/tests/sys/cddl/zfs/tests/cli_user/misc/zfs_create_001_neg.ksh	Fri Sep  1 19:58:42 2017	(r323115)
@@ -27,6 +27,7 @@
 # ident	"@(#)zfs_create_001_neg.ksh	1.3	07/10/09 SMI"
 #
 . $STF_SUITE/include/libtest.kshlib
+. $STF_SUITE/tests/cli_user/cli_user.kshlib
 
 ################################################################################
 #
@@ -64,7 +65,7 @@ log_assert "Verify zfs create without parameters fails
 
 typeset -i i=0
 while [[ $i -lt ${#args[*]} ]]; do
-	log_mustnot $ZFS ${args[i]}
+	log_mustnot run_unprivileged "$ZFS ${args[i]}"
 	((i = i + 1))
 done
 

Modified: projects/zfsd/head/tests/sys/cddl/zfs/tests/cli_user/misc/zfs_destroy_001_neg.ksh
==============================================================================
--- projects/zfsd/head/tests/sys/cddl/zfs/tests/cli_user/misc/zfs_destroy_001_neg.ksh	Fri Sep  1 19:15:53 2017	(r323114)
+++ projects/zfsd/head/tests/sys/cddl/zfs/tests/cli_user/misc/zfs_destroy_001_neg.ksh	Fri Sep  1 19:58:42 2017	(r323115)
@@ -27,6 +27,7 @@
 # ident	"@(#)zfs_destroy_001_neg.ksh	1.3	07/10/09 SMI"
 #
 . $STF_SUITE/include/libtest.kshlib
+. $STF_SUITE/tests/cli_user/cli_user.kshlib
 
 ################################################################################
 #
@@ -70,7 +71,7 @@ log_assert "zfs destroy [-f|-r] [fs|snap]"
 
 typeset -i i=0
 while [[ $i -lt ${#args[*]} ]]; do
-	log_mustnot $ZFS ${args[i]}
+	log_mustnot run_unprivileged "$ZFS ${args[i]}"
 	((i = i + 1))
 done
 

Modified: projects/zfsd/head/tests/sys/cddl/zfs/tests/cli_user/misc/zfs_get_001_neg.ksh
==============================================================================
--- projects/zfsd/head/tests/sys/cddl/zfs/tests/cli_user/misc/zfs_get_001_neg.ksh	Fri Sep  1 19:15:53 2017	(r323114)
+++ projects/zfsd/head/tests/sys/cddl/zfs/tests/cli_user/misc/zfs_get_001_neg.ksh	Fri Sep  1 19:58:42 2017	(r323115)
@@ -28,6 +28,7 @@
 #
 
 . $STF_SUITE/include/libtest.kshlib
+. $STF_SUITE/tests/cli_user/cli_user.kshlib
 
 ################################################################################
 #
@@ -65,7 +66,7 @@ while [[ $i -lt ${#args[*]} ]]
 do	
 	PROP=${props[$i]}
 	EXPECTED=${prop_vals[$i]}
-	ACTUAL=$( $ZFS get $PROP -o value -H snapdir $TESTPOOl/$TESTFS/prop )
+	ACTUAL=$( run_unprivileged "$ZFS get $PROP -o value -H snapdir $TESTPOOl/$TESTFS/prop" )
 	if [ "$ACTUAL" != "$EXPECTED" ]
 	then
 		log_fail "Property $PROP value was $ACTUAL, expected $EXPECTED"

Modified: projects/zfsd/head/tests/sys/cddl/zfs/tests/cli_user/misc/zfs_inherit_001_neg.ksh
==============================================================================
--- projects/zfsd/head/tests/sys/cddl/zfs/tests/cli_user/misc/zfs_inherit_001_neg.ksh	Fri Sep  1 19:15:53 2017	(r323114)
+++ projects/zfsd/head/tests/sys/cddl/zfs/tests/cli_user/misc/zfs_inherit_001_neg.ksh	Fri Sep  1 19:58:42 2017	(r323115)
@@ -28,6 +28,7 @@
 #
 
 . $STF_SUITE/include/libtest.kshlib
+. $STF_SUITE/tests/cli_user/cli_user.kshlib
 
 ################################################################################
 #
@@ -55,7 +56,7 @@
 ################################################################################
 
 log_assert "zfs inherit returns an error when run as a user"
-log_mustnot $ZFS inherit snapdir $TESTPOOL/$TESTFS/$TESTFS2
+log_mustnot run_unprivileged "$ZFS inherit snapdir $TESTPOOL/$TESTFS/$TESTFS2"
 
 # check to see that the above command really did nothing
 PROP=$($ZFS get snapdir $TESTPOOL/$TESTFS)

Modified: projects/zfsd/head/tests/sys/cddl/zfs/tests/cli_user/misc/zfs_mount_001_neg.ksh
==============================================================================
--- projects/zfsd/head/tests/sys/cddl/zfs/tests/cli_user/misc/zfs_mount_001_neg.ksh	Fri Sep  1 19:15:53 2017	(r323114)
+++ projects/zfsd/head/tests/sys/cddl/zfs/tests/cli_user/misc/zfs_mount_001_neg.ksh	Fri Sep  1 19:58:42 2017	(r323115)
@@ -28,6 +28,7 @@
 #

*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***


More information about the svn-src-projects mailing list