File: [Development] / xfs-cmds / xfstests / 057 (download)
Revision 1.2, Tue May 29 07:08:24 2001 UTC (16 years, 5 months ago) by tes
Branch: MAIN
CVS Tags: Linux-2_4_5-merge Changes since 1.1: +7 -1
lines
Fix up 057 to test the prior bug in acl_get_fd, acl_get_file.
|
#! /bin/sh
# XFS QA Test No. 057
# $Id: 1.1 $
#
# Test out the different acl_get semantics
#
#-----------------------------------------------------------------------
# Copyright (c) 2000 Silicon Graphics, Inc. All Rights Reserved.
#
# This program is free software; you can redistribute it and/or modify it
# under the terms of version 2 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.
#
# Further, this software is distributed without any warranty that it is
# free of the rightful claim of any third person regarding infringement
# or the like. Any license provided herein, whether implied or
# otherwise, applies only to this software file. Patent licenses, if
# any, provided herein do not apply to combinations of this program with
# other software, or any other product whatsoever.
#
# You should have received a copy of the GNU General Public License along
# with this program; if not, write the Free Software Foundation, Inc., 59
# Temple Place - Suite 330, Boston MA 02111-1307, USA.
#
# Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy,
# Mountain View, CA 94043, or:
#
# http://www.sgi.com
#
# For further information regarding this notice, see:
#
# http://oss.sgi.com/projects/GenInfo/SGIGPLNoticeExplan/
#-----------------------------------------------------------------------
#
# creator
owner=tes@sherman.melbourne.sgi.com
# get standard environment, filters and checks
. ./common.rc
. ./common.filter
. ./common.attr
seq=`basename $0`
echo "QA output created by $seq"
_cleanup()
{
rm -f $tmp.*
rm -rf $TEST_DIR/$seq.dir1
}
here=`pwd`
tmp=/tmp/$$
status=1 # failure is the default!
trap "_cleanup; exit \$status" 0 1 2 3 15
acl_get=$here/src/acl_get
_get_file()
{
_file=$1
ls -ln $_file | awk '{ print $1, $3, $4, $NF }'
echo ""
echo "access, default, irix-semantics"
$acl_get -adi $_file
echo ""
echo "access, default, linux-semantics"
$acl_get -ad $_file
echo ""
echo "access, fd, irix-semantics"
$acl_get -afi $_file
echo ""
echo "access, fd, linux-semantics"
$acl_get -af $_file
echo ""
}
_acl_on()
{
# test if acl_get syscall is operational
# and hence the ACL config has been turned on
touch syscalltest
if $acl_get -l syscalltest 2>&1 | tee -a $here/$seq.full \
| grep 'Function not implemented' >/dev/null
then
cd $here
_notrun "requires kernel ACL support"
fi
}
# real QA test starts here
rm -f $seq.full
_need_to_be_root
[ -x $acl_get ] || _notrun "$acl_get command not found"
[ -x /bin/chacl ] || _notrun "chacl command not found"
# get dir
cd $TEST_DIR
rm -rf $seq.dir1
mkdir $seq.dir1
cd $seq.dir1
_acl_on
touch file1
chmod 752 file1
_get_file file1
# ensure that full blown acls' get/set work, not just minimal ones
_acl_setup_ids
chacl u::rwx,g::rw-,o::---,u:$acl1:r-x,g:$acl1:r--,m::rwx file1 2>&1
chacl -l file1 | _acl_filter_id
_get_file file1 | _acl_filter_id
# success, all done
status=0
exit