On XFS this test fails today due to some over-eager SGID removal in xfs core code; ext4 & btrfs pass. Document it in a test, will send xfs patch in a bit. Signed-off-by: Eric Sandeen <sandeen@xxxxxxxxxx> --- p.s. I'm going to just flaunt my ignorance and say: I've never understood acls well. I'm hoping someone who does can help me write a better changelog, because this one is no good at all! V2: add missing source of "attr" file for _require_acls V3: use _ls_l to filter out the selinux "." - thanks to Carlos! renumber to 314 to make the merge easier diff --git a/tests/generic/314 b/tests/generic/314 new file mode 100755 index 0000000..3dee609 --- /dev/null +++ b/tests/generic/314 @@ -0,0 +1,68 @@ +#! /bin/bash +# FS QA Test No. 314 +# +# Test SGID inheritance on subdirectories +# +#----------------------------------------------------------------------- +# Copyright (c) 2013 Red Hat, Inc. All Rights Reserved. +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation. +# +# This program is distributed in the hope that it would be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write the Free Software Foundation, +# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +#----------------------------------------------------------------------- +# + +seq=`basename $0` +seqres=$RESULT_DIR/$seq +echo "QA output created by $seq" + +here=`pwd` +tmp=/tmp/$$ +status=1 # failure is the default! +trap "_cleanup; exit \$status" 0 1 2 3 15 + +_cleanup() +{ + cd / + rm -f $tmp.* +} + +# get standard environment, filters and checks +. ./common/rc +. ./common/filter +. ./common/attr + +# real QA test starts here +_supported_fs generic +_require_acls +_require_user +_need_to_be_root + +rm -rf $TEST_DIR/$seq-dir + +# Make dir owned by qa user, and an unrelated group: +mkdir $TEST_DIR/$seq-dir +chown $qa_user:12345 $TEST_DIR/$seq-dir + +# Make parent dir sgid +chmod 2775 $TEST_DIR/$seq-dir + +# Make subdirs before & after acl set +su $qa_user -c "mkdir $TEST_DIR/$seq-dir/subdir" +su $qa_user -c "setfacl -m u:$qa_user:rwx,d:u:$qa_user:rwx $TEST_DIR/$seq-dir" +su $qa_user -c "mkdir $TEST_DIR/$seq-dir/subdir2" + +# Both subdirs should have inherited sgid +_ls_l $TEST_DIR/$seq-dir/ | _filter_test_dir | awk '{print $1,$NF}' + +status=0 +exit diff --git a/tests/generic/314.out b/tests/generic/314.out new file mode 100644 index 0000000..326a929 --- /dev/null +++ b/tests/generic/314.out @@ -0,0 +1,3 @@ +QA output created by 314 +drwxr-sr-x. TEST_DIR/314-dir/subdir +drwxrwsr-x+ TEST_DIR/314-dir/subdir2 diff --git a/tests/generic/group b/tests/generic/group index bd443c1..d5ec8d5 100644 --- a/tests/generic/group +++ b/tests/generic/group @@ -115,3 +115,4 @@ 310 auto 311 auto metadata log 312 auto quick prealloc enospc +314 auto quick acl _______________________________________________ xfs mailing list xfs@xxxxxxxxxxx http://oss.sgi.com/mailman/listinfo/xfs _______________________________________________ xfs mailing list xfs@xxxxxxxxxxx http://oss.sgi.com/mailman/listinfo/xfs