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 <ebiggers@xxxxxxxxxx> --- tests/generic/375 | 54 ++++++++++++++++++++++++++++++++------------------- tests/generic/375.out | 8 ++++++++ 2 files changed, 42 insertions(+), 20 deletions(-) diff --git a/tests/generic/375 b/tests/generic/375 index f8c3260..1d523e5 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 478d078..bb9bc72 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 -- 2.8.0.rc3.226.g39d4020 -- To unsubscribe from this list: send the line "unsubscribe fstests" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html