#! /bin/bash # SPDX-License-Identifier: GPL-2.0 # Copyright (c) 2015 Red Hat, Inc. # # FSQA Test No. 087 # # Check if setting the file access and modification times to the current time # (t) and to a specific timestamp (T) is allowed when expected. # # From utime(2): Changing timestamps is permitted when: either the process has # appropriate privileges, or the effective user ID equals the user ID of the # file, or [the process is trying to set the timestamps to the current time] # and the process has write permission for the file. # # Note that the last of these tests will always wrongly succeed over NFSv2. # For NFSv3+, that test will wrongly succeed until kernel commit # "Disable NFSv2 timestamp workaround for NFSv3+". # . ./common/preamble _begin_fstest perms auto quick # Override the default cleanup function. _cleanup() { cd / } # Import common functions. . ./common/filter # real QA test starts here _supported_fs generic _require_test _require_chown QA_FS_PERMS=$here/src/fs_perms cd $TEST_DIR cp $here/src/testx ./testx.file # The owner: $QA_FS_PERMS 600 99 99 99 99 t 1 $QA_FS_PERMS 600 99 99 99 99 T 1 # Other processes with and without write permission: $QA_FS_PERMS 600 99 99 100 99 t 0 $QA_FS_PERMS 600 99 99 100 99 T 0 $QA_FS_PERMS 660 99 99 100 99 t 1 $QA_FS_PERMS 660 99 99 100 99 T 0 rm -f ./testx.file status=0 exit