| #! /bin/bash |
| # SPDX-License-Identifier: GPL-2.0 |
| # Copyright (c) 2016 Red Hat, Inc. All Rights Reserved. |
| # |
| # FS QA Test 368 |
| # |
| # RichACL ctime test |
| # |
| . ./common/preamble |
| _begin_fstest auto quick richacl perms |
| |
| # Import common functions. |
| |
| # real QA test starts here |
| |
| _supported_fs generic |
| |
| _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 -- "$@" |
| } |
| |
| touch a |
| |
| # Without write access, the ctime cannot be changed |
| r touch a |
| |
| $SETRICHACL_PROG --set 'u:99:rw::allow' a |
| |
| # With write access, the ctime can be set to the current time, but not to |
| # any other time |
| r touch a |
| r touch -d '1 hour ago' a |
| |
| $SETRICHACL_PROG --set 'u:99:rwA::allow' a |
| |
| # With set_attributes access, the ctime can be set to an arbitrary time |
| r touch -d '1 hour ago' a |
| |
| # success, all done |
| status=0 |
| exit |