Check for all used fd-based functions in shutil.rmdir, closes #15218
diff --git a/Lib/shutil.py b/Lib/shutil.py
index 99e4017..6d80fee 100644
--- a/Lib/shutil.py
+++ b/Lib/shutil.py
@@ -405,8 +405,10 @@
             except os.error:
                 onerror(os.unlink, fullname, sys.exc_info())
 
-_use_fd_functions = (os.unlink in os.supports_dir_fd and
-                     os.open in os.supports_dir_fd)
+_use_fd_functions = ({os.open, os.stat, os.unlink, os.rmdir} <=
+                     os.supports_dir_fd and
+                     os.listdir in os.supports_fd and
+                     os.stat in os.supports_follow_symlinks)
 
 def rmtree(path, ignore_errors=False, onerror=None):
     """Recursively delete a directory tree.