mirror of
https://github.com/linux-apfs/apfstests.git
synced 2026-05-01 15:01:44 -07:00
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 <ebiggers@google.com> Reviewed-by: Eryu Guan <eguan@redhat.com> Signed-off-by: Eryu Guan <eguan@redhat.com>
This commit is contained in:
+34
-20
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user