diff --git a/meshroom/core/node.py b/meshroom/core/node.py index f9191ad4d6..d5cc86c015 100644 --- a/meshroom/core/node.py +++ b/meshroom/core/node.py @@ -6,6 +6,7 @@ import json import logging import os +import stat import platform import re import shutil @@ -569,6 +570,7 @@ def saveStatusFile(self): statusFilepath = self.getStatusFile() folder = os.path.dirname(statusFilepath) os.makedirs(folder, exist_ok=True) + os.chmod(folder, os.stat(folder).st_mode | stat.S_ISGID) # Add setgid on folder statusFilepathWriting = getWritingFilepath(statusFilepath) with open(statusFilepathWriting, 'w') as jsonFile: @@ -611,6 +613,7 @@ def saveStatistics(self): statisticsFilepath = self.getStatisticsFile() folder = os.path.dirname(statisticsFilepath) os.makedirs(folder, exist_ok=True) + os.chmod(folder, os.stat(folder).st_mode | stat.S_ISGID) # Add setgid on folder statisticsFilepathWriting = getWritingFilepath(statisticsFilepath) with open(statisticsFilepathWriting, 'w') as jsonFile: json.dump(data, jsonFile, indent=4) @@ -1650,6 +1653,7 @@ def upgradeStatusFile(self): statusFilepath = self.nodeStatusFile folder = os.path.dirname(statusFilepath) os.makedirs(folder, exist_ok=True) + os.chmod(folder, os.stat(folder).st_mode | stat.S_ISGID) # Add setgid on folder statusFilepathWriting = getWritingFilepath(statusFilepath) with open(statusFilepathWriting, 'w') as jsonFile: json.dump(data, jsonFile, indent=4) diff --git a/meshroom/ui/graph.py b/meshroom/ui/graph.py index 9c0bfb5333..3840d9b185 100644 --- a/meshroom/ui/graph.py +++ b/meshroom/ui/graph.py @@ -3,6 +3,7 @@ import logging import os import re +import stat import json from enum import Enum from threading import Thread, Event, Lock @@ -490,8 +491,10 @@ def loadGraph(self, filepath): g = Graph("") if filepath: g.load(filepath) - if not os.path.exists(g.cacheDir): - os.mkdir(g.cacheDir) + cacheDir = g.cacheDir + if not os.path.exists(cacheDir): + os.mkdir(cacheDir) + os.chmod(cacheDir, os.stat(cacheDir).st_mode | stat.S_ISGID) # Add setgid on folder self.setGraph(g) @Slot(str)