[LTP] [RFC PATCH 1/1] fs: Remove acl/tacl_xattr.sh
Andrea Cervesato
andrea.cervesato@suse.com
Wed Oct 8 11:29:56 CEST 2025
Thanks for cleaning up these test.
Acked-by: Andrea Cervesato <andrea.cervesato@suse.com>
On Tue Oct 7, 2025 at 6:05 PM CEST, Petr Vorel wrote:
> Old script which is not using LTP API, not in any runtest file.
>
> It tests acl (getfacl, setfacl) and attr (getfattr, setfattr) tools, but
> both project have their own tests [1] [2]. LTP concentrates on kernel
> part of testing nowadays, therefore remove it. Script is very simple
> that it does not have any benefit for upstream.
>
> [1] https://cgit.git.savannah.gnu.org/cgit/acl.git/tree/test
> [2] https://cgit.git.savannah.gnu.org/cgit/attr.git/tree/test
>
> Signed-off-by: Petr Vorel <pvorel@suse.cz>
> ---
> testcases/kernel/fs/acl/tacl_xattr.sh | 807 --------------------------
> 1 file changed, 807 deletions(-)
> delete mode 100755 testcases/kernel/fs/acl/tacl_xattr.sh
>
> diff --git a/testcases/kernel/fs/acl/tacl_xattr.sh b/testcases/kernel/fs/acl/tacl_xattr.sh
> deleted file mode 100755
> index c2383fdd95..0000000000
> --- a/testcases/kernel/fs/acl/tacl_xattr.sh
> +++ /dev/null
> @@ -1,807 +0,0 @@
> -#!/bin/bash
> -##############################################################
> -#
> -# Copyright (c) International Business Machines Corp., 2003
> -#
> -# 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; either version 2 of the License, or
> -# (at your option) any later version.
> -#
> -# This program is distributed in the hope that it will 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 to the Free Software
> -# Foundation,
> -#
> -# FILE : tacl_xattr.sh
> -# USAGE : ./tacl_xattr.sh
> -#
> -# DESCRIPTION : A script that will test ACL and Extend Attribute on Linux system.
> -# REQUIREMENTS:
> -# 1) Kernel with loop device support
> -# 2) A spare (scratch) disk partition of 100MB or larger.
> -# 3) Kernel with ACL and Extend Attribute function support
> -#
> -# HISTORY :
> -# 10/23/2003 Kai Zhao (ltcd3@cn.ibm.com)
> -# 07/06/2004 Jacky Malcles enable ext3 & clean users home dir.
> -#
> -# CODE COVERAGE:
> -# 76.3% - fs/posix_acl.c
> -# 80.9% - xattr_acl.c
> -# 73.0% - xattr.c
> -#
> -##############################################################
> -
> -CUR_PATH=""
> -CONTENT=""
> -RES=""
> -USER_PERMISSION=""
> -GROUP_PERMISSION=""
> -OTHER_PERMISSION=""
> -ITEM_OWNER=""
> -ITEM_GROUP=""
> -
> -################################################################
> -#
> -# Make sure that uid=root is running this script.
> -# Make sure that loop device is built into the kernel
> -# Make sure that ACL(Access Control List) and Extended Attribute are
> -# built into the kernel
> -#
> -################################################################
> -
> -if [ $UID != 0 ]
> -then
> - echo "FAILED: Must have root access to execute this script"
> - exit 1
> -fi
> -
> -#################################################################
> -#
> -# Prepare Ext2 file system for ACL and Extended Attribute test
> -# Make some directory , file and symlink for the test
> -# Add three users for the test
> -#
> -#################################################################
> -
> -if [ ! -e tacl ]
> -then
> - mkdir -m 777 tacl
> -else
> - echo "FAILED: Directory tacl are exist"
> - exit 1
> -fi
> -
> -dd if=/dev/zero of=tacl/blkext2 bs=1k count=10240
> -chmod 777 tacl/blkext2
> -
> -losetup /dev/loop0 tacl/blkext2 >/dev/null 2>&1
> -if [ $? != 0 ]
> -then
> - printf "\nFAILED: [ losetup ] Must have loop device support by kernel\n"
> - printf "\t to execute this script\n"
> - exit 1
> -fi
> -
> -mount | grep ext2
> -if [ $? != 0 ]
> -then
> - mkfs -t ext3 /dev/loop0
> - mkdir -m 777 tacl/mount-ext2
> - mount -t ext3 -o defaults,acl,user_xattr /dev/loop0 tacl/mount-ext2
> - if [ $? != 0 ]
> - then
> - printf "\nFAILED: [ mount ] Make sure that ACL (Access Control List)\n"
> - printf "\t and Extended Attribute are built into the kernel\n"
> - printf "\t Can not mount ext2 file system with acl and user_xattr options\n"
> - exit 1
> - fi
> -
> -else
> - mkfs -t ext2 /dev/loop0
> - mkdir -m 777 tacl/mount-ext2
> - mount -t ext2 -o defaults,acl,user_xattr /dev/loop0 tacl/mount-ext2
> - if [ $? != 0 ]
> - then
> - printf "\nFAILED: [ mount ] Make sure that ACL (Access Control List)\n"
> - printf "\t and Extended Attribute are built into the kernel\n"
> - printf "\t Can not mount ext2 file system with acl and user_xattr options\n"
> - exit 1
> - fi
> -fi
> -
> -chmod 777 tacl/mount-ext2
> -
> -useradd -d `pwd`/tacl/tacluser1 tacluser1
> -useradd -d `pwd`/tacl/tacluser2 tacluser2
> -useradd -d `pwd`/tacl/tacluser3 tacluser3
> -useradd -d `pwd`/tacl/tacluser4 tacluser4
> -
> -if [ ! -e tacl/mount-ext2/shared ]
> -then
> - mkdir -p -m 777 tacl/mount-ext2/shared
> -fi
> -
> -CUR_PATH=`pwd`
> -
> -su - tacluser1 << TACL_USER1
> -
> - mkdir $CUR_PATH/tacl/mount-ext2/shared/team1
> - touch $CUR_PATH/tacl/mount-ext2/shared/team1/file1
> -
> - cd $CUR_PATH/tacl/mount-ext2/shared/team1
> - ln -sf file1 symlinkfile1
> - cd $CUR_PATH
> -
> - cd $CUR_PATH/tacl/mount-ext2/shared
> - ln -sf team1 symlinkdir1
> - cd $CUR_PATH
> -
> -TACL_USER1
> -
> -su - tacluser2 << TACL_USER2
> -
> - mkdir $CUR_PATH/tacl/mount-ext2/shared/team2
> - touch $CUR_PATH/tacl/mount-ext2/shared/team2/file1
> -
> - cd $CUR_PATH/tacl/mount-ext2/shared/team2
> - ln -sf file1 symlinkfile1
> - cd $CUR_PATH
> -
> - cd $CUR_PATH/tacl/mount-ext2/shared
> - ln -sf team2 symlinkdir2
> - cd $CUR_PATH
> -
> -TACL_USER2
> -
> -#############################################################################################
> -#
> -# The permissions bit limit user's act
> -# lrwxrwxrwx 1 tacluser1 tacluser1 5 Jun 23 13:39 symlinkdir1 -> team1
> -# lrwxrwxrwx 1 tacluser2 tacluser2 5 Jun 23 13:39 symlinkdir2 -> team2
> -# dr-x------ 2 tacluser1 tacluser1 1024 Jun 23 13:39 team1
> -# drwxrwxr-x 2 tacluser2 tacluser2 1024 Jun 23 13:39 team2
> -#
> -#############################################################################################
> -
> -chmod 500 tacl/mount-ext2/shared/team1
> -
> -su - tacluser1 << TACL_USER1
> -
> - touch $CUR_PATH/tacl/mount-ext2/shared/team1/newfil1 2> /dev/null
> - if [ -e $CUR_PATH/tacl/mount-ext2/shared/team1/newfile1 ]
> - then
> - printf "\nFAILED: [ touch ] Create file must be denied by file permission bits\n"
> - printf "\t [ Physical Directory ]\n"
> - else
> - printf "\nSUCCESS: Create file denied by file permission bits [ Physical directory ]\n"
> - fi
> -
> - touch $CUR_PATH/tacl/mount-ext2/shared/symlinkdir1/newfil2 2> /dev/null
> - if [ -e $CUR_PATH/tacl/mount-ext2/shared/team1/newfile2 ]
> - then
> - printf "\nFAILED: [ touch ] Create file must be denied by file permission bits\n"
> - printf "\t [ Symlink Directory ]\n"
> - else
> - printf "\nSUCCESS: Create file denied by file permission bits [ Symlink directory ]\n"
> - fi
> -
> -TACL_USER1
> -
> -#################################################################
> -#
> -# ACL_USER_OBJ are a superset of the permissions specified
> -# by the file permission bits.
> -# The effective user ID of the process matches the user ID of
> -# the file object owner.
> -# Owner's act are based ACL_USER_OBJ
> -#
> -#################################################################
> -
> -setfacl -m u::rx tacl/mount-ext2/shared/team1
> -su - tacluser1 << TACL_USER1
> -
> - cd $CUR_PATH/tacl/mount-ext2/shared/team1/ 2> /dev/null
> - if [ $? != 0 ]
> - then
> - printf "\nFAILED: [ touch ] ACL_USER_OBJ entry already contains the owner execute\n"
> - printf "\t permissions, but operation failed [ Physical Directory ]\n"
> - else
> - printf "\nSUCCESS: ACL_USER_OBJ entry contains the owner execute permissions,\n"
> - printf "\t operation success [ Physical Directory ]\n"
> - fi
> -
> - cd $CUR_PATH/tacl/mount-ext2/shared/symlinkdir1/ 2> /dev/null
> - if [ $? != 0 ]
> - then
> - printf "\nFAILED: [ touch ] ACL_USER_OBJ entry already contains the owner execute\n"
> - printf "\t permissions, but operation failed [ Symlink Directory ]\n"
> - else
> - printf "\nSUCCESS: ACL_USER_OBJ entry contains the owner execute permissions,\n"
> - printf "\t operation success [ Symlink Directory ]\n"
> - fi
> -
> -TACL_USER1
> -
> -setfacl -m u::rwx tacl/mount-ext2/shared/team1
> -
> -su - tacluser1 << TACL_USER1
> -
> - touch $CUR_PATH/tacl/mount-ext2/shared/team1/newfil1 2> /dev/null
> - if [ -e $CUR_PATH/tacl/mount-ext2/shared/team1/newfile1 ]
> - then
> - printf "\nFAILED: [ touch ] ACL_USER_OBJ entry already contains the owner write \n"
> - printf "\t permissions, but operation failed [ Physical Directory ]\n"
> - else
> - printf "\nSUCCESS: ACL_USER_OBJ entry contains the owner write permissions,\n"
> - printf "\t operation success [ Physical Directory ]\n"
> - fi
> -
> - touch $CUR_PATH/tacl/mount-ext2/shared/symlinkdir1/newfil2 2> /dev/null
> - if [ -e $CUR_PATH/tacl/mount-ext2/shared/team1/newfile2 ]
> - then
> - printf "\nFAILED: [ touch ] ACL_USER_OBJ entry already contains the owner write \n"
> - printf "\t permissions, but operation failed [ Symlink Directory ]\n"
> - else
> - printf "\nSUCCESS: ACL_USER_OBJ entry contains the owner write permissions,\n"
> - printf "\t operation success [ Symlink Directory ]\n"
> - fi
> -
> -TACL_USER1
> -
> -#################################################################
> -#
> -# The effective user ID of the process matches the qualifier of
> -# any entry of type ACL_USER
> -# IF the matching ACL_USER entry and the ACL_MASK
> -# entry contain the requested permissions,# access is granted,
> -# ELSE access is denied.
> -#
> -#################################################################
> -
> -setfacl -m u:tacluser3:rwx tacl/mount-ext2/shared/team1
> -
> -su - tacluser3 << TACL_USER3
> -
> - touch $CUR_PATH/tacl/mount-ext2/shared/team1/newfile3 2> /dev/null
> - if [ -e $CUR_PATH/tacl/mount-ext2/shared/team1/newfile3 ]
> - then
> - printf "\nSUCCESS: ACL_USER entry contains the user permissions,\n"
> - printf "\t operation success [ Physical Directory ]\n"
> - else
> - printf "\nFAILED: ACL_USER entry contains the user permissions,\n"
> - printf "\t but operation denied [ Physical Directory ]\n"
> - fi
> -
> - touch $CUR_PATH/tacl/mount-ext2/shared/symlinkdir1/newfile4 2> /dev/null
> - if [ -e $CUR_PATH/tacl/mount-ext2/shared/symlinkdir1/newfile4 ]
> - then
> - printf "\nSUCCESS: ACL_USER entry contains the user permissions,\n"
> - printf "\t operation success [ Symlink Directory ]\n"
> - else
> - printf "\nFAILED: ACL_USER entry contains the user permissions,\n"
> - printf "\t but operation denied [ Symlink Directory ]\n"
> - fi
> -
> -TACL_USER3
> -
> -setfacl -m mask:--- tacl/mount-ext2/shared/team1
> -
> -su - tacluser3 << TACL_USER3
> -
> - touch $CUR_PATH/tacl/mount-ext2/shared/team1/newfile5 2> /dev/null
> - if [ -e $CUR_PATH/tacl/mount-ext2/shared/team1/newfile5 ]
> - then
> - printf "\nFAILED: [ touch ] ACL_USER entry contains the user permissions\n"
> - printf "\t but ACL_MASK are set --- ,\n"
> - printf "\t operation must be denied [ Physical Directory ]\n"
> - else
> - printf "\nSUCCESS: ACL_USER entry contains the user permissions,\n"
> - printf "\t but ACL_MASK are set ___ ,\n"
> - printf "\t operation success [ Physical Directory ]\n"
> - fi
> -
> - touch $CUR_PATH/tacl/mount-ext2/shared/symlinkdir1/newfile6 2> /dev/null
> - if [ -e $CUR_PATH/tacl/mount-ext2/shared/symlinkdir1/newfile6 ]
> - then
> - printf "\nFAILED: [ touch ] ACL_USER entry contains the user permissions\n"
> - printf "\t but ACL_MASK are set --- ,\n"
> - printf "\t operation must be denied [ Symlink Directory ]\n"
> - else
> - printf "\nSUCCESS: ACL_USER entry contains the user permissions,\n"
> - printf "\t but ACL_MASK are set ___ ,\n"
> - printf "\t operation success [ Symlink Directory ]\n"
> - fi
> -
> -TACL_USER3
> -
> -###########################################################################################
> -#
> -# The effective group ID or any of the supplementary group IDs of the process match the
> -# qualifier of the entry of type ACL_GROUP_OBJ, or the qualifier of any entry of type
> -# ACL_GROUP
> -#
> -# IF the ACL contains an ACL_MASK entry, THEN
> -# if the ACL_MASK entry and any of the matching ACL_GROUP_OBJ
> -# or ACL_GROUP entries contain the requested permissions,
> -# access is granted,
> -#
> -# else access is denied.
> -#
> -# ELSE (note that there can be no ACL_GROUP entries without an ACL_MASK entry)
> -# if the ACL_GROUP_OBJ entry contains the requested permis-
> -# sions, access is granted,
> -#
> -# else access is denied.
> -#
> -###########################################################################################
> -
> -setfacl -m g:tacluser2:rwx tacl/mount-ext2/shared/team1
> -
> -su - tacluser2 << TACL_USER2
> - touch $CUR_PATH/tacl/mount-ext2/shared/team1/newfile7 2> /dev/null
> - if [ -e $CUR_PATH/tacl/mount-ext2/shared/team1/newfile7 ]
> - then
> - printf "\nSUCCESS: ACL_GROUP entry contains the group permissions,\n"
> - printf "\t option success [ Physical Directory ]\n"
> - else
> - printf "\nFAILED: [ touch ] ACL_GROUP entry already contains the group permissions,\n"
> - printf "\t but option success [ Physical Directory ]\n"
> - fi
> -
> - touch $CUR_PATH/tacl/mount-ext2/shared/symlinkdir1/newfile8 2> /dev/null
> - if [ -e $CUR_PATH/tacl/mount-ext2/shared/symlinkdir1/newfile8 ]
> - then
> - printf "\nSUCCESS: ACL_GROUP entry contains the group permissions,\n"
> - printf "\t option success [ Symlink Directory ]\n"
> - else
> - printf "\nFAILED: [ touch ] ACL_GROUP entry already contains the group permissions,\n"
> - printf "\t but option success [ Symlink Directory ]\n"
> - fi
> -
> -TACL_USER2
> -
> -setfacl -m mask:--- tacl/mount-ext2/shared/team1
> -
> -su - tacluser2 << TACL_USER2
> - touch $CUR_PATH/tacl/mount-ext2/shared/team1/newfile9 2> /dev/null
> - if [ -e $CUR_PATH/tacl/mount-ext2/shared/team1/newfile9 ]
> - then
> - printf "\nFAILED: [ touch ] ACL_GROUP entry contains the group permissions\n"
> - printf "\t and ACL_MASK entry are set ---,\n"
> - printf "\t option must no be success [ Physical Directory ]\n"
> - else
> - printf "\nSUCCESS: ACL_GROUP entry already contains the group permissions\n"
> - printf "\t and ACL_MASK entry are set ---,\n"
> - printf "\t option success [ Physical Directory ]\n"
> - fi
> -
> - touch $CUR_PATH/tacl/mount-ext2/shared/symlinkdir1/newfile10 2> /dev/null
> - if [ -e $CUR_PATH/tacl/mount-ext2/shared/symlinkdir1/newfile10 ]
> - then
> - printf "\nFAILED: [ touch ] ACL_GROUP entry contains the group permissions\n"
> - printf "\t and ACL_MASK entry are set ---,\n"
> - printf "\t option must no be success [ Symlink Directory ]\n"
> - else
> - printf "\nSUCCESS: ACL_GROUP entry already contains the group permissions\n"
> - printf "\t and ACL_MASK entry are set ---,\n"
> - printf "\t option success [ Symlink Directory ]\n"
> - fi
> -
> -TACL_USER2
> -
> -setfacl -m g::rwx tacl/mount-ext2/shared/team1
> -usermod -g tacluser1 tacluser2
> -
> -su - tacluser2 << TACL_USER2
> -
> - touch $CUR_PATH/tacl/mount-ext2/shared/team1/newfile11 2> /dev/null
> - if [ -e $CUR_PATH/tacl/mount-ext2/shared/team1/newfile11 ]
> - then
> - printf "\nSUCCESS: ACL_GROUP_OBJ entry contains the group owner permissions,\n"
> - printf "\t option success [ Physical Directory ]\n"
> - else
> - printf "\nFAILED: [ touch ] ACL_GROUP_OBJ entry already contains the group owner,\n"
> - printf "\t but option denied [ Physical Directory ]\n"
> - fi
> -
> - touch $CUR_PATH/tacl/mount-ext2/shared/symlinkdir1/newfile12 2> /dev/null
> - if [ -e $CUR_PATH/tacl/mount-ext2/shared/symlinkdir1/newfile12 ]
> - then
> - printf "\nSUCCESS: ACL_GROUP_OBJ entry contains the group owner permissions,\n"
> - printf "\t option success [ Symlink Directory ]\n"
> - else
> - printf "\nFAILED: [ touch ] ACL_GROUP_OBJ entry already contains the group owner,\n"
> - printf "\t but option denied [ Symlink Directory ]\n"
> - fi
> -
> -TACL_USER2
> -
> -setfacl -m mask:--- tacl/mount-ext2/shared/team1
> -
> -su - tacluser2 << TACL_USER2
> - touch $CUR_PATH/tacl/mount-ext2/shared/team1/newfile13 2> /dev/null
> - if [ -e $CUR_PATH/tacl/mount-ext2/shared/team1/newfile13 ]
> - then
> - printf "\nFAILED: [ touch ] ACL_GROUP_OBJ entry contains the group owner permissions\n"
> - printf "\t and ACL_MASK entry are set ---,\n"
> - printf "\t option must no be success [ Physical Directory ]\n"
> - else
> - printf "\nSUCCESS: ACL_GROUP_OBJ entry already contains the group owner permissions\n"
> - printf "\t and ACL_MASK entry are set ---,\n"
> - printf "\t option success [ Physical Directory ]\n"
> - fi
> -
> - touch $CUR_PATH/tacl/mount-ext2/shared/symlinkdir1/newfile14 2> /dev/null
> - if [ -e $CUR_PATH/tacl/mount-ext2/shared/symlinkdir1/newfile14 ]
> - then
> - printf "\nFAILED: [ touch ] ACL_GROUP_OBJ entry contains the group owner permissions\n"
> - printf "\t and ACL_MASK entry are set ---,\n"
> - printf "\t option must no be success [ Symlink Directory ]\n"
> - else
> - printf "\nSUCCESS: ACL_GROUP_OBJ entry already contains the group owner permissions\n"
> - printf "\t and ACL_MASK entry are set ---,\n"
> - printf "\t option success [ Symlink Directory ]\n"
> - fi
> -
> -TACL_USER2
> -
> -usermod -g tacluser2 tacluser2
> -
> -###################################################################################
> -#
> -# IF the ACL_OTHER entry contains the requested permissions, access is granted
> -#
> -###################################################################################
> -
> -setfacl -m o::rwx tacl/mount-ext2/shared/team1
> -
> -su - tacluser4 << TACL_USER4
> -
> - touch $CUR_PATH/tacl/mount-ext2/shared/team1/newfile15 2> /dev/null
> - if [ -e $CUR_PATH/tacl/mount-ext2/shared/team1/newfile15 ]
> - then
> - printf "\nSUCCESS: ACL_OTHER entry contains the user permissions,\n"
> - printf "\t operation success [ Physical Directory ]\n"
> - else
> - printf "\nFAILED: ACL_OTHER entry contains the user permissions,\n"
> - printf "\t but operation denied [ Physical Directory ]\n"
> - fi
> -
> - touch $CUR_PATH/tacl/mount-ext2/shared/symlinkdir1/newfile16 2> /dev/null
> - if [ -e $CUR_PATH/tacl/mount-ext2/shared/symlinkdir1/newfile16 ]
> - then
> - printf "\nSUCCESS: ACL_OTHER entry contains the user permissions,\n"
> - printf "\t operation success [ Symlink Directory ]\n"
> - else
> - printf "\nFAILED: ACL_OTHER entry contains the user permissions,\n"
> - printf "\t but operation denied [ Symlink Directory ]\n"
> - fi
> -
> -TACL_USER4
> -
> -setfacl -m mask:--- tacl/mount-ext2/shared/team1
> -
> -su - tacluser4 << TACL_USER4
> -
> - touch $CUR_PATH/tacl/mount-ext2/shared/team1/newfile17 2> /dev/null
> - if [ -e $CUR_PATH/tacl/mount-ext2/shared/team1/newfile17 ]
> - then
> - printf "\nSUCCESS: [ touch ] ACL_OTHER do not strick by ACL_MASK [ Physical Directory ]\n"
> - else
> - printf "\nFAILED: ACL_OTHER do not strick by ACL_MASK [ Physical Directory ]\n"
> - fi
> -
> - touch $CUR_PATH/tacl/mount-ext2/shared/symlinkdir1/newfile18 2> /dev/null
> - if [ -e $CUR_PATH/tacl/mount-ext2/shared/symlinkdir1/newfile18 ]
> - then
> - printf "\nSUCCESS: [ touch ] ACL_OTHER do not strick by ACL_MASK [ Symlink Directory ]\n"
> - else
> - printf "\nFAILED: ACL_OTHER do not strick by ACL_MASK [ Symlink Directory ]\n"
> - fi
> -
> -TACL_USER4
> -
> -############################################################################
> -#
> -# OBJECT CREATION AND DEFAULT ACLs
> -# The new object inherits the default ACL of the containing directory as its access ACL.
> -#
> -############################################################################
> -
> -rm -f tacl/mount-ext2/shared/team1/newfil*
> -
> -#
> -# Test ACL_USER_OBJ default ACLs
> -#
> -setfacl -m d:u::r -m d:g::r -m d:o::r tacl/mount-ext2/shared/team1
> -
> -su - tacluser1 << TACL_USER1
> -
> - MASK=`umask`
> - umask 0
> - touch $CUR_PATH/tacl/mount-ext2/shared/team1/newfile1
> - umask $MASK > /dev/null
> -
> -TACL_USER1
> -
> -CONTENT=""
> -CONTENT=`ls -l tacl/mount-ext2/shared/team1/newfile1`
> -RES=`echo $CONTENT | grep ".r--r--r--" | awk '{print $1}'`
> -
> -if [ $RES != "" ]
> -then
> - printf "\nSUCCESS: With default ACLs set, new file permission set correct.\n"
> -else
> - printf "\nFAILED: With default ACLs set, new file permission set not correct\n"
> -fi
> -
> -
> -
> -#
> -# Test ACL_USER and ACL_GROUP defaults ACLs
> -#
> -setfacl -m d:u:tacluser3:rw -m d:g:tacluser3:rw tacl/mount-ext2/shared/team1
> -su - tacluser3 << TACL_USER3
> -
> - MASK=`umask`
> - umask 0
> - touch $CUR_PATH/tacl/mount-ext2/shared/team1/newfile2
> - umask $MASK > /dev/null
> -
> -TACL_USER3
> -
> -CONTENT=""
> -CONTENT=`ls -l tacl/mount-ext2/shared/team1/newfile2`
> -RES=`echo $CONTENT | grep ".r--rw-r--" | awk '{print $1}'`
> -
> -if [ $RES != "" ]
> -then
> - printf "\nSUCCESS: With default ACLs set, new file permission set correct.\n"
> -else
> - printf "\nFAILED: With default ACLs set, new file permission set not correct\n"
> -fi
> -
> -#
> -# Test ACL_GROUP default ACLs
> -#
> -
> -setfacl -m d:u::rwx -m d:g::rwx -m d:o::rwx tacl/mount-ext2/shared/team1
> -su - tacluser3 << TACL_USER3
> -
> - MASK=`umask`
> - umask 0
> - touch $CUR_PATH/tacl/mount-ext2/shared/team1/newfile3
> - umask $MASK > /dev/null
> -
> -TACL_USER3
> -
> -CONTENT=""
> -CONTENT=`ls -l tacl/mount-ext2/shared/team1/newfile3`
> -RES=`echo $CONTENT | grep ".rw-rw-rw-" | awk '{print \$1}'`
> -
> -if [ $RES != "" ]
> -then
> - printf "\nSUCCESS: With default ACLs set, new file permission set correct.\n"
> -else
> - printf "\nFAILED: With default ACLs set, new file permission set not correct\n"
> -fi
> -
> -
> -#################################################################################
> -#
> -# Chmod also change ACL_USER_OBJ ACL_GROUP_OBJ and ACL_OTHER permissions
> -#
> -#################################################################################
> -su - tacluser3 << TACL_USER3
> - MASK=`umask`
> - umask 0
> -
> - chmod 777 $CUR_PATH/tacl/mount-ext2/shared/team1/newfile3
> - umask $MASK > /dev/null
> -TACL_USER3
> -
> -CONTENT=""
> -CONTENT=`getfacl tacl/mount-ext2/shared/team1/newfile3`
> -
> -USER_PERMISSION=`echo $CONTENT | awk '{print \$10}'`
> -
> -GROUP_PERMISSION=`echo $CONTENT | awk '{print \$12}'`
> -OTHER_PERMISSION=`echo $CONTENT | awk '{print \$15}'`
> -
> -if [ $USER_PERMISSION = "user::rwx" ]
> -then
> - if [ $GROUP_PERMISSION = "group::rwx" ]
> - then
> - if [ $OTHER_PERMISSION = "other::rwx" ]
> - then
> - printf "\nSUCCESS: Chmod with ACL_USER_OBJ ACL_GROUP_OBJ and ACL_OTHER are correct\n"
> - else
> - printf "\nFAILED: Chmod with ACL_USER_OBJ ACL_GROUP_OBJ and ACL_OTHER are not correct\n"
> - fi
> - else
> - printf "\nFAILED: Chmod with ACL_USER_OBJ ACL_GROUP_OBJ and ACL_OTHER are not correct\n"
> - fi
> -else
> - printf "\nFAILED: Chmod with ACL_USER_OBJ ACL_GROUP_OBJ and ACL_OTHER are not correct\n"
> -fi
> -
> -
> -#####################################################################################
> -#
> -# Chown only change object owner and group
> -#
> -#####################################################################################
> -
> -chown tacluser2.tacluser2 tacl/mount-ext2/shared/team1/newfile2
> -CONTENT=""
> -CONTENT=`getfacl tacl/mount-ext2/shared/team1/newfile2`
> -
> -ITEM_OWNER=`echo $CONTENT | awk '{print \$6}'`
> -ITEM_GROUP=`echo $CONTENT | awk '{print \$9}'`
> -
> -if [ $ITEM_OWNER = "tacluser2" ]
> -then
> - if [ $ITEM_GROUP = "tacluser2" ]
> - then
> - printf "\nSUCCESS: Chown correct\n"
> - else
> - printf "\nFAILED: Chown are not correct\n"
> - fi
> -else
> - echo "FAILED: Chown are not correct"
> -fi
> -
> -#####################################################
> -#
> -# Test ACLs backup and restore
> -#
> -#####################################################
> -
> -getfacl -RL tacl/mount-ext2/ > tacl/tmp1
> -setfacl -m u::--- -m g::--- -m o::--- tacl/mount-ext2/shared/team1
> -setfacl --restore tacl/tmp1
> -getfacl -RL tacl/mount-ext2/ > tacl/tmp2
> -
> -if [ `diff tacl/tmp1 tacl/tmp2` ]
> -then
> - printf "\nFAILED: ACLs backup and restore are not correct\n"
> -else
> - printf "\nSUCCESS: ACLs backup and restore are correct\n"
> -fi
> -
> -printf "\n\tEnd ACLs Test\n"
> -
> -#####################################################
> -#
> -# Now begin Extend Attribute test
> -#
> -#####################################################
> -
> -printf "\nNow begin Extend Attribute Test\n"
> -
> -# dir
> -printf "\nAttach name:value pair to object dir\n\n"
> -attr -s attrname1 -V attrvalue1 tacl/mount-ext2/shared/team2
> -if [ $? != 0 ]
> -then
> - echo "FAILED: Attach name:value pair to object dir"
> -fi
> -
> -#file
> -echo
> -echo "Attach name:value pair to object file "
> -echo ""
> -attr -s attrname2 -V attrvalue2 tacl/mount-ext2/shared/team2/file1
> -if [ $? != 0 ]
> -then
> - echo "FAILED: Attach name:value pair to object file"
> -fi
> -
> -#symlink file
> -echo
> -echo "Attach name:value pair to object symlink file"
> -echo ""
> -attr -s attrname3 -V attrvalue3 tacl/mount-ext2/shared/team2/symlinkfile1
> -if [ $? != 0 ]
> -then
> - echo "INFO: Can't attach name:value pair to object symlink file"
> -fi
> -
> -echo ""
> -ls -lRt tacl/mount-ext2/shared/team2
> -
> -echo
> -echo "get extended attributes of filesystem objects"
> -echo ""
> -
> -echo "Dump the values"
> -getfattr -d tacl/mount-ext2/shared/team2
> -if [ $? != 0 ]
> -then
> - echo "FAILED: getfattr: Dump the values"
> -fi
> -
> -echo "Recursively dump the values"
> -getfattr -dR tacl/mount-ext2/*
> -if [ $? != 0 ]
> -then
> - echo "FAILED: getfattr: Recursively Dump the values"
> -fi
> -
> -echo "Do not follow symlinks."
> -echo "but extended user attributes are disallowed for symbolic links"
> -getfattr -h --no-dereference tacl/mount-ext2/shared/team2/symlinkfile1
> -if [ $? != 0 ]
> -then
> - echo "FAILED: getfattr: Do not follow symlinks."
> -fi
> -echo
> -
> -echo "Logical walk, follow symbolic links"
> -getfattr -L tacl/mount-ext2/shared/team2/*
> -if [ $? != 0 ]
> -then
> - echo "FAILED: getfattr: Logical walk"
> -fi
> -
> -echo "Physical walk, skip all symbolic links"
> -getfattr -P tacl/mount-ext2/shared/team2/*
> -if [ $? != 0 ]
> -then
> - echo "FAILED: getfattr: Physical walk"
> -fi
> -
> -echo "attr -g to search the named object"
> -attr -g attrname1 tacl/mount-ext2/shared/team2
> -if [ $? != 0 ]
> -then
> - echo "FAILED: attr: to search the named object"
> -fi
> -echo
> -
> -echo "attr -r to remove the named object"
> -attr -r attrname2 tacl/mount-ext2/shared/team2/file1
> -if [ $? != 0 ]
> -then
> - echo "FAILED: attr: to remove the named object"
> -fi
> -
> -
> -#################################
> -#
> -# Backup and Restore
> -#
> -#################################
> -getfattr -dhR -m- -e hex tacl/mount-ext2 > tacl/backup.ea
> -setfattr -h --restore=tacl/backup.ea
> -
> -getfattr -dhR -m- -e hex tacl/mount-ext2 > tacl/backup.ea1
> -if [ `diff tacl/backup.ea1 tacl/backup.ea` ]
> -then
> - printf "\nFAILED: EAs backup and restore are not correct\n"
> -else
> - printf "\nSUCCESS: EAs backup and restore are correct\n"
> -fi
> -
> -printf "\n\tEnd EAs Test\n"
> -
> -
> -
> -#####################################################
> -#
> -# Clean up
> -#
> -#####################################################
> -
> -userdel tacluser1
> -userdel tacluser2
> -userdel tacluser3
> -userdel tacluser4
> -umount -d tacl/mount-ext2
> -rm -rf tacl
--
Andrea Cervesato
SUSE QE Automation Engineer Linux
andrea.cervesato@suse.com
More information about the ltp
mailing list