[PATCH 3/9] generic/314, afs: Allow for a filesystem that doesn't honour SGID inheritance

Darrick J. Wong djwong at kernel.org
Tue May 25 09:10:49 PDT 2021


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 at redhat.com>

Looks ok,
Reviewed-by: Darrick J. Wong <djwong at kernel.org>

--D

> cc: linux-afs at 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
>  
> 
> 



More information about the linux-afs mailing list