Issue #14992: merge from 3.2
diff --git a/Lib/test/test_os.py b/Lib/test/test_os.py
index 5c0b0c8..6219eff 100644
--- a/Lib/test/test_os.py
+++ b/Lib/test/test_os.py
@@ -863,7 +863,10 @@
         try:
             existing_testfn_mode = stat.S_IMODE(
                     os.lstat(support.TESTFN).st_mode)
-            os.chmod(support.TESTFN, existing_testfn_mode | S_ISGID)
+            try:
+                os.chmod(support.TESTFN, existing_testfn_mode | S_ISGID)
+            except PermissionError:
+                raise unittest.SkipTest('Cannot set S_ISGID for dir.')
             if (os.lstat(support.TESTFN).st_mode & S_ISGID != S_ISGID):
                 raise unittest.SkipTest('No support for S_ISGID dir mode.')
             # The os should apply S_ISGID from the parent dir for us, but