| #! /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 |