#! /bin/bash
# FS QA Test 366
#
# RichACL chown test
#
#-----------------------------------------------------------------------
# Copyright (c) 2016 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

# remove previous $seqres.full before test
rm -f $seqres.full

# real QA test starts here

_supported_fs generic
_supported_os Linux

_require_scratch
_require_scratch_richacl
_require_richacl_prog
_require_runas

_scratch_mkfs_richacl >> $seqres.full
_scratch_mount

cd $SCRATCH_MNT

r()
{
	echo "--- runas -u 99 -g 99 $*"
	_runas -u 99 -g 99 -- "$@"
}

# Create file as root
touch a

# Chown and chgrp with no take ownership permission fails
r chown 99 a
r chgrp 99 a

# Add the take_ownership permission
$SETRICHACL_PROG --set 'u:99:rwpo::allow' a

# Chown and chgrp to a user or group the process is not in fails
r chown 100 a
r chgrp 100 a

# Chown and chgrp to a user and group the process is in succeeds
r chown 99 a
r chgrp 99 a

# success, all done
status=0
exit
