aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZuul <zuul@review.opendev.org>2022-01-31 13:40:20 +0000
committerGerrit Code Review <review@openstack.org>2022-01-31 13:40:20 +0000
commitd84cd121cad5ed30fc87f97d5332f357b7f81e3a (patch)
tree398dc3a8120264dd0d52485bac2692b0a8cedc6b
parent5b2d5881d8182c9532da72c353e10834833777a7 (diff)
parent1fe983df4fafa5a4a8eafe206e4abfaec2418da1 (diff)
downloadkolla-d84cd121cad5ed30fc87f97d5332f357b7f81e3a.tar.gz
kolla-d84cd121cad5ed30fc87f97d5332f357b7f81e3a.zip
Merge "Ensure set_configs sets execute bit on directories"
-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.