From: Eric Biggers Date: Wed, 12 Oct 2016 22:03:07 +0000 (-0700) Subject: generic/375: test both regular file and directory X-Git-Tag: v2022.05.01~2328 X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=92846328baeedd9416b710718d678d171c2a1ff2;p=users%2Fhch%2Fxfstests-dev.git generic/375: test both regular file and directory generic/375 previously only tested SGID being cleared on a regular file. It should test SGID being cleared on a directory too. Though this is not required by POSIX, it is the Linux behavior. Signed-off-by: Eric Biggers Reviewed-by: Eryu Guan Signed-off-by: Eryu Guan --- diff --git a/tests/generic/375 b/tests/generic/375 index f8c3260e5..1d523e534 100755 --- a/tests/generic/375 +++ b/tests/generic/375 @@ -52,30 +52,44 @@ _require_runas _require_acls cd $TEST_DIR -testfile=testfile.$seq -rm -f $testfile -touch $testfile -chown 100:100 $testfile +# try with both regular file and directory +for filetype in regular dir; do -echo '*** SGID should remain set (twice)' -chmod 2755 $testfile -_runas -u 100 -g 100 -- chmod 2777 $testfile -stat -c %A $testfile -chmod 2755 $testfile -_runas -u 100 -g 100 -- setfacl -m u::rwx,g::rwx,o::rwx $testfile -stat -c %A $testfile + case $filetype in + regular) + testfile=testfile.$seq + rm -f $testfile + touch $testfile + ;; + *) + testfile=testdir.$seq + rm -rf $testfile + mkdir $testfile + ;; + esac -echo '*** SGID should be cleared (twice)' -chmod 2755 $testfile -_runas -u 100 -g 101 -- chmod 2777 $testfile -stat -c %A $testfile -chmod 2755 $testfile -_runas -u 100 -g 101 -- setfacl -m u::rwx,g::rwx,o::rwx $testfile -stat -c %A $testfile + chown 100:100 $testfile -echo '*** Expected failure' -_runas -u 101 -g 101 -- chmod 2777 $testfile + echo '*** SGID should remain set (twice)' + chmod 2755 $testfile + _runas -u 100 -g 100 -- chmod 2777 $testfile + stat -c %A $testfile + chmod 2755 $testfile + _runas -u 100 -g 100 -- setfacl -m u::rwx,g::rwx,o::rwx $testfile + stat -c %A $testfile + + echo '*** SGID should be cleared (twice)' + chmod 2755 $testfile + _runas -u 100 -g 101 -- chmod 2777 $testfile + stat -c %A $testfile + chmod 2755 $testfile + _runas -u 100 -g 101 -- setfacl -m u::rwx,g::rwx,o::rwx $testfile + stat -c %A $testfile + + echo '*** Expected failure' + _runas -u 101 -g 101 -- chmod 2777 $testfile +done status=0 exit diff --git a/tests/generic/375.out b/tests/generic/375.out index 478d0784c..bb9bc72c4 100644 --- a/tests/generic/375.out +++ b/tests/generic/375.out @@ -7,3 +7,11 @@ QA output created by 375 -rwxrwxrwx *** Expected failure chmod: changing permissions of 'testfile.375': Operation not permitted +*** SGID should remain set (twice) +drwxrwsrwx +drwxrwsrwx +*** SGID should be cleared (twice) +drwxrwxrwx +drwxrwxrwx +*** Expected failure +chmod: changing permissions of 'testdir.375': Operation not permitted