]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - tests/sys/cddl/zfs/tests/delegate/zfs_allow_002_pos.ksh
MFC r353117-r353118, r353281-r353282, r353284-r353289, r353309-r353310, r353360-r3533...
[FreeBSD/FreeBSD.git] / tests / sys / cddl / zfs / tests / delegate / zfs_allow_002_pos.ksh
1 #!/usr/local/bin/ksh93 -p
2 #
3 # CDDL HEADER START
4 #
5 # The contents of this file are subject to the terms of the
6 # Common Development and Distribution License (the "License").
7 # You may not use this file except in compliance with the License.
8 #
9 # You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
10 # or http://www.opensolaris.org/os/licensing.
11 # See the License for the specific language governing permissions
12 # and limitations under the License.
13 #
14 # When distributing Covered Code, include this CDDL HEADER in each
15 # file and include the License file at usr/src/OPENSOLARIS.LICENSE.
16 # If applicable, add the following below this CDDL HEADER, with the
17 # fields enclosed by brackets "[]" replaced with your own identifying
18 # information: Portions Copyright [yyyy] [name of copyright owner]
19 #
20 # CDDL HEADER END
21 #
22
23 # $FreeBSD$
24
25 #
26 # Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
27 # Use is subject to license terms.
28 #
29 # ident "@(#)zfs_allow_002_pos.ksh      1.3     08/11/03 SMI"
30 #
31
32 . $STF_SUITE/tests/delegate/delegate_common.kshlib
33
34 #################################################################################
35 #
36 # __stc_assertion_start
37 #
38 # ID: zfs_allow_002_pos
39 #
40 # DESCRIPTION:
41 # <user|group> argument is interpreted as a user if possible, then as a group as
42 # possible.
43 #
44 # STRATEGY:
45 #       1. Create user $STAFF_GROUP
46 #       2. Delegate permissions to $STAFF_GROUP
47 #       3. Verify user $STAFF_GROUP has the permissions.
48 #       4. Delete user $STAFF_GROUP and allow the permission to $STAFF_GROUP
49 #       5. Verify $STAFF_GROUP is interpreted as group.
50 #
51 # TESTABILITY: explicit
52 #
53 # TEST_AUTOMATION_LEVEL: automated
54 #
55 # CODING_STATUS: COMPLETED (2006-09-14)
56 #
57 # __stc_assertion_end
58 #
59 ################################################################################
60
61 verify_runnable "both"
62
63 function cleanup
64 {
65         if $ID $STAFF_GROUP > /dev/null 2>&1; then
66                 log_must del_user $STAFF_GROUP 
67         fi
68 }
69
70 log_assert "<user|group> is interpreted as user if possible, then as group."
71 log_onexit cleanup
72
73 eval set -A dataset $DATASETS
74 enc=$(get_prop encryption $dataset)
75 if [[ $? -eq 0 ]] && [[ -n "$enc" ]] && [[ "$enc" != "off" ]]; then
76         typeset perms="snapshot,reservation,compression,send,allow,\
77 userprop"
78 else
79         typeset perms="snapshot,reservation,compression,checksum,\
80 send,allow,userprop"
81 fi
82
83 log_must $USERADD $STAFF_GROUP
84 for dtst in $DATASETS ; do
85         log_must $ZFS allow $STAFF_GROUP $perms $dtst
86         log_must verify_perm $dtst $perms $STAFF_GROUP
87         log_must verify_noperm $dtst $perms $STAFF1 $STAFF2 
88 done
89
90 log_must restore_root_datasets
91
92 log_must del_user $STAFF_GROUP
93 for dtst in $datasets ; do
94         log_must $ZFS allow $STAFF_GROUP $perms $dtst
95         log_must verify_perm $dtst $perms $STAFF1 $STAFF2
96 done
97
98 log_pass "<user|group> is interpreted as user if possible, then as group passed."