Message ID | 162194964929.4011860.17079665160292202971.stgit@warthog.procyon.org.uk (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Add support for using xfstests to test AFS | expand |
On Tue, May 25, 2021 at 02:34:09PM +0100, David Howells wrote: > The AFS filesystem doesn't do any special handling for the SUID, SGID and > SVTX bits and doesn't perform any sort of propagation. Further, only a > user with cell admin rights can set non-0777 bits. > > Handle this by adding a "_require_sgid_inheritance" clause and labelling > the test with it, thereby skipping for filesystems that don't support it. > > Signed-off-by: David Howells <dhowells@redhat.com> Looks ok, Reviewed-by: Darrick J. Wong <djwong@kernel.org> --D > cc: linux-afs@lists.infradead.org > --- > > common/rc | 9 +++++++++ > doc/requirement-checking.txt | 7 +++++++ > tests/generic/314 | 1 + > 3 files changed, 17 insertions(+) > > diff --git a/common/rc b/common/rc > index 4ffec9a2..4d4b0280 100644 > --- a/common/rc > +++ b/common/rc > @@ -4613,6 +4613,15 @@ _has_mknod() > esac > } > > +_require_sgid_inheritance() > +{ > + case $FSTYP in > + afs) > + _notrun "SGID-based group ID inheritance is not supported on $FSTYP" > + ;; > + esac > +} > + > init_rc > > ################################################################################ > diff --git a/doc/requirement-checking.txt b/doc/requirement-checking.txt > index d31ba3fb..6efc8dc8 100644 > --- a/doc/requirement-checking.txt > +++ b/doc/requirement-checking.txt > @@ -18,6 +18,7 @@ they have. This is done with _require_<xxx> macros, which may take parameters. > _require_exportfs > _require_mknod > _has_mknod > + _require_sgid_inheritance > > (3) System call requirements. > > @@ -106,6 +107,12 @@ _has_mknod > _require_mknod will cause the test to be skipped; _has_mknod returns 0 if > mknod is supported and 1 otherwise. > > +_require_sgid_inheritance > + > + The test required that the $TEST_DEV filesystem supports the inheritance > + of the SGID bit and the GID from a marked directory. The test will be > + skipped if not supported. > + > > ======================== > SYSTEM CALL REQUIREMENTS > diff --git a/tests/generic/314 b/tests/generic/314 > index 540f0feb..8ed08542 100755 > --- a/tests/generic/314 > +++ b/tests/generic/314 > @@ -30,6 +30,7 @@ _supported_fs generic > _require_test > _require_user > _require_chown > +_require_sgid_inheritance > > rm -rf $TEST_DIR/$seq-dir > > >
diff --git a/common/rc b/common/rc index 4ffec9a2..4d4b0280 100644 --- a/common/rc +++ b/common/rc @@ -4613,6 +4613,15 @@ _has_mknod() esac } +_require_sgid_inheritance() +{ + case $FSTYP in + afs) + _notrun "SGID-based group ID inheritance is not supported on $FSTYP" + ;; + esac +} + init_rc ################################################################################ diff --git a/doc/requirement-checking.txt b/doc/requirement-checking.txt index d31ba3fb..6efc8dc8 100644 --- a/doc/requirement-checking.txt +++ b/doc/requirement-checking.txt @@ -18,6 +18,7 @@ they have. This is done with _require_<xxx> macros, which may take parameters. _require_exportfs _require_mknod _has_mknod + _require_sgid_inheritance (3) System call requirements. @@ -106,6 +107,12 @@ _has_mknod _require_mknod will cause the test to be skipped; _has_mknod returns 0 if mknod is supported and 1 otherwise. +_require_sgid_inheritance + + The test required that the $TEST_DEV filesystem supports the inheritance + of the SGID bit and the GID from a marked directory. The test will be + skipped if not supported. + ======================== SYSTEM CALL REQUIREMENTS diff --git a/tests/generic/314 b/tests/generic/314 index 540f0feb..8ed08542 100755 --- a/tests/generic/314 +++ b/tests/generic/314 @@ -30,6 +30,7 @@ _supported_fs generic _require_test _require_user _require_chown +_require_sgid_inheritance rm -rf $TEST_DIR/$seq-dir
The AFS filesystem doesn't do any special handling for the SUID, SGID and SVTX bits and doesn't perform any sort of propagation. Further, only a user with cell admin rights can set non-0777 bits. Handle this by adding a "_require_sgid_inheritance" clause and labelling the test with it, thereby skipping for filesystems that don't support it. Signed-off-by: David Howells <dhowells@redhat.com> cc: linux-afs@lists.infradead.org --- common/rc | 9 +++++++++ doc/requirement-checking.txt | 7 +++++++ tests/generic/314 | 1 + 3 files changed, 17 insertions(+)