aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--docker/base/set_configs.py10
-rw-r--r--releasenotes/notes/set_config-directory-execute-permission-8ab919b7b17025d2.yaml5
2 files changed, 15 insertions, 0 deletions
diff --git a/docker/base/set_configs.py b/docker/base/set_configs.py
index 0cb0e414c..e624f29ba 100644
--- a/docker/base/set_configs.py
+++ b/docker/base/set_configs.py
@@ -20,6 +20,7 @@ import logging
import os
import pwd
import shutil
+import stat
import sys
@@ -369,6 +370,15 @@ def handle_permissions(config):
perm = ''.join([perm[:1], 'o', perm[1:]])
perm = int(perm, base=0)
+ # Ensure execute bit on directory if read bit is set
+ if os.path.isdir(path):
+ if perm & stat.S_IRUSR:
+ perm |= stat.S_IXUSR
+ if perm & stat.S_IRGRP:
+ perm |= stat.S_IXGRP
+ if perm & stat.S_IROTH:
+ perm |= stat.S_IXOTH
+
try:
os.chmod(path, perm)
except OSError:
diff --git a/releasenotes/notes/set_config-directory-execute-permission-8ab919b7b17025d2.yaml b/releasenotes/notes/set_config-directory-execute-permission-8ab919b7b17025d2.yaml
new file mode 100644
index 000000000..04a047629
--- /dev/null
+++ b/releasenotes/notes/set_config-directory-execute-permission-8ab919b7b17025d2.yaml
@@ -0,0 +1,5 @@
+---
+fixes:
+ - |
+ Fixes set_configs.py configuring same permission for directories and files,
+ causing directories lacking execute permission if not set for files.